Finally, I finished my first version of my pantry scanner. Due to camera quality, sometimes it can read the expiry date; sometimes it can’t, but I already tried my best to make it work
What I actually built
–Firmware on ESP32-CAM: press a button, it captures a photo and uploads it over WI-Fi
– A local Python backend that reads the photo, tries OCR for the expiry date, attempts barcode decoding using an external API and saves everything to a database
– A web dashboard showing every scanned item sorted by soonest-expiring first, with edit and remove buttons for fixing up anything the camera couldn’t capture
The hard part
The hardest part is to get the camera to read text and turn it into the dashboard. I went through extensive debugging, more than I have recorded in the devlog. Fixing the lens, dealing with blur, and looking at the barcode-decoding problem, it turned out the camera quality is the major issue.
Next Step
– Use a dedicated barcode scanner instead of relying on the camera
–Create a fixed scanning stand using 3D printing for more consistent capture quality than hand positioning.
– Attach a macro lens attachment for the camera to improve small print in OCR
- 5 devlogs
- 20h build