Show HN: Offline ESP32 that displays a new QR code every 30 seconds

2 tomtomistaken 3 6/6/2025, 12:51:31 PM github.com ↗
This is my first microcontroller project: an ESP32 that generates a new QR code every 30 seconds and displays it on an e-paper screen. The idea is to use it for proof-of-presence or location validation. The device is low power and stays completely offline — it syncs time via a GPS module and generates everything locally. I also built a backend service that verifies the scanned QR codes to check if they are valid. The web interface displays device locations on a map and allows adding new devices directly through the site.

Comments (3)

jqpabc123 · 12h ago
30 seconds may be too long.

It's certainly possible to snap a photo and share it with someone off site within a 30 second window.

tomtomistaken · 11h ago
Yes, relay is possible, but I'm not sure if a shorter window solves the issue - you could stream your cam feed.

Another option would be to limit the number of validations in the time window or to introduce a 'cool down' time - the next validation attempt has to wait 3 cycles to be valid. Relay would still be possible, but when the person on spot wants to validate for themself, relay could be more of a hassle. Last but not least, the browser could ask for the the location and calculate the distance to the device (location can be spoofed ..).

jqpabc123 · 10h ago
A stream is generally of lower quality than a photo which should make it significantly more difficult to get a good scan of a QR code from a stream --- particularly if the code is changing every few seconds. I'd probably recommend showing a code for 3 seconds then a black screen for 3 seconds then repeat with a different code.

Cameras need to focus on both ends and the stream has to be scaled to fit the available display parameters. Could easily turn into an exercise in frustration.