Remove your GPIO.cleanup() lines, this would normally only be called before you exit a program.
At the end any program, it is good practice to clean up any resources
you might have used. This is no different with RPi.GPIO. By returning
all channels you have used back to ...
I would look at MQTT and host the broker on the Pi.
A good intro is Steves Internet Guide
Failing that, you could use sockets programming to link the two together.
Plenty of examples e.g. this one here
Rpi3 NOOBS python 2.7 SimpleMFRC522 cannot read Mifare tag problem.
Part 1 - Using Rpi4B Python 3 and Mfrc522 library to read Maire Blue Tag
I have successfully installed mfrc522 using pip3. I created a reader, wrote something to a tag, and then read back, without any problem.
I am using Rpi4B buster release 2020feb13, ...