esprfid / esp-rfid

ESP8266 RFID (RC522, PN532, Wiegand, RDM6300) Access Control system featuring WebSocket, JSON, NTP Client, Javascript, SPIFFS
MIT License
1.37k stars 423 forks source link

Is there a way to retrigger a scan #377

Open eldrik opened 4 years ago

eldrik commented 4 years ago

Hi,

i am using version 1.02 with a rc522 reader.

I hide an esp-rfid reader in the charger housing of my vaccum robot one reader on each floor to identify on which floor the robot is docked for loading the specific robot floor map for the next day.

Actually the last seen rfid card triggers an item on my home control software so I am aware of the floor.

But I also like to force a manual read to determine if there is still a rfid card in front of the reader, is this already possible?

Regards Eldrik

jello1974 commented 4 years ago

That will hapend if you reboot the reader (rfid reader not the esp.....) Tested with a wiegand reader....

eldrik commented 4 years ago

There is no way to reboot the rc522 on its own. I could power cycle it wiring the 3,3v power line through an relay but there is no room left for further equipment. So I am looking for a sw solution. :/

jello1974 commented 4 years ago

From what i understand you do not use the open door relay so you can use the relay pin to restart the rc522 trough the opendoor mqtt command. Define the card as no access in order to not trigger the relay when the robot is docking and define the relay as momentary active high and wire the gnd reader pin to it.

omersiar commented 4 years ago

https://github.com/esprfid/esp-rfid/blob/9469e1033a7d08337c88f3396d27b476f2b56ca8/src/rfid.esp#L18

This makes PICC (rfid tag) to NOT respond further readings (from RC522). This is anti-collusion protection comes from specification. I remember trying to find a workaround for it but unfortunately no hope for detecting a PICC that is still in front of the reader. You should google it, this was 5 years ago.

omersiar commented 4 years ago

@eldrik By any chance you have a Roborock S5 Max?

eldrik commented 4 years ago

@eldrik By any chance you have a Roborock S5 Max?

Hi, yeah its an Roborock S50 with the floor wiping function I don't know if it is a max version.

I also could toggle the robot to leave the station and to return so the card is read again but I'd like to avoid the noise at around Zero o'clock :D

eldrik commented 4 years ago

From what i understand you do not use the open door relay so you can use the relay pin to restart the rc522 trough the opendoor mqtt command. Define the card as no access in order to not trigger the relay when the robot is docking and define the relay as momentary active high and wire the gnd reader pin to it.

yeah I will tinker if this is an practical option thx. Do you mind to post the command that is necessary?

eldrik commented 4 years ago

mfrc522.PICC_HaltA();

maybe it was this thread? https://forum.arduino.cc/index.php?topic=263865.0

There are 2 code examples how this could be achieved. Hmm I think I will try and flash an alternative software might be enough for my use case https://github.com/Fl0ca/MQTT-RFID_MRC522

omersiar commented 4 years ago

Yes, 6 years ago, wow. DrDoom seems to see achieve this

eldrik commented 4 years ago

I now flashed both esp-rfid readers with an alternative sketch where I used the implemented solution from the arduino forum post in combination with an incoming mqtt message for utilizing a manual read checking if there is a reader in front.