Battery powered rfid reader

I'm just looking for some advice on creating a battery powered RFID reader. The reader would read a passive RFID bracelet when a user touches the reader with the bracelet. It needs to be battery-powered and last a minimum of 2 months. I've got everything working but am stuck on how to keep the amps to a minimum. I have been trying out some ideas:

  • pir sensor that turns on my esp32 from deep sleep and then powers the RFID for a few seconds to see if the person that came near it reads their bracelet. If nothing is read in 5 seconds, shut back down. Problem: pir is slow and there may be a lot of people around, so it could go on more than needed. I only need short range.
  • esp32 that goes into deep sleep and then powers up reader every second to see if a tag is near the reader. Problem: I've got this working using this code: Power down modes? · Issue #269 · miguelbalboa/rfid · GitHub, but it's reading a lot more amps than that person found and it only reads about 50% of the time (maybe I can improve).
  • ir sensor/break beam sensor. Problem: uses too much power
  • getting the RFID reader to be in a low power mode and wake the esp32 when it detects a tag. Problem: From what I can tell, RFID readers (mfrc-522 and pn532) can't read a passive tag in low power mode.
  • use a reed (magnetic) switch and attach a magnet to the bracelet. When the bracelet comes close, I power on the esp32 with the switch and then read the tag. Problem: haven't tried yet, but worried the magnet will interfere with reading the RFID tag and would prefer to use an unmodified RFID bracelet.

None of these solutions seem ideal does anyone have any other ideas? I'm thinking maybe a momentary switch on the front of the device that they push their bracelet against, but this seems awkward.

Thanks for any input.