Wie bereits in einem anderen Thread erwähnt, möchte ich euch ein DIY-Projekt vorstellen, welches mich die letzten Wochen stark beschäftig hatte. Es geht hier um einen Barcode-Scanner auf ESP32-Basis, der die Einkaufsliste füllt.
Einleitung:
Im Web gibt es bereits ähnliche Projekte, aber keines war wirklich brauchbar - zumal viele Projekte aufgrund Änderungen in ESPHome nicht mehr funktionierten. Außerdem funktionierten die “alten” Lösungen bisher nur soweit begrenzt, dass man hauptsächlich nur Lebensmittel scannen konnte. Wenn ein Lebensmittel nicht erkannt wurde, stand “unknown” in der Einkaufsliste - was nicht sonderlich hilfreich war.
Es musste also eine neue Lösung her. Und wenn man schon eine neue Lösung baut, dann überlegt man natürlich vorher, was man denn alles als Features haben möchte.
Ziel:
Ich wollte einen Barcode-Scanner, der folgendes konnte:
- Produkte scannen und automatische Eintragung in die Einkaufsliste von Home Assistant und in die Bring!-App
- Aufbau einer Produktdatenbank für Produkte, die nicht erkannt wurden. Mit dieser Datenbank werden kann künftige Produkte beim ersten Scan direkt erkannt. Als Datenbank habe ich “Grocy” als eigenständigen Docker verwendet.
- Scan-Möglichkeit per Barcodescanner und/oder Smartphone
- Lager-Modus –> man soll Bestände ins Lager einbuchen können
- Multiscan-Funktion –> Es soll möglich sein, dass man (wie an der Kasse) mehrere Produkte gleichzeitig scannen kann
- “Beep”-Ausgabe bei erfolgreichem Scan
- Anzeige des Barcodes und Produktnamen an einem Display
- automatische Beleuchtung beim Scanvorgang (damit der Barcode gut gelesen werden kann)
- Maximale Flexibilität: Alles soll mit ESPHome und Home-Assistant Automationen funktionieren
Die Ziele waren also gesetzt, die Aufgabe somit groß!
Materialien:
Zuerst überlegte ich mir, welche Hardware ich dafür verwenden werde. Meine Wahl fiel auf einen ESP32-S3, da dieser sehr leistungsstark ist und er eine Menge geeigneter PINs für die vielen Sensoren besitzt.
Neben den ESP32-S3 habe ich verwendet:
- GM60-Barcodescanner
- passiver Piezo Buzzer
- 1.77” TFT-Display
- Taster
- leuchtstarke LED
- eine Status-LED-Platine (KY-016 FZ0455)
- Ultraschall-Sensor (HC-SR04)
- Lochrasterplatine 5x7cm
- jede Menge Dupont-Kabel
- ein paar Stift- und Buchsenleisten (2,54mm)
Umsetzung:
Alle Ziele wurden erreicht. Der Scanner macht alles so, wie gewünscht. Er “beept” beim Scanvorang, die LED leuchtet, das Display zeigt alles an. Die Einkaufslisten werden gefüllt, die Grocy-Datenbank wächst. Der Lagermodus füllt den Bestand… Ich bin glücklich ![]()
Das “Endprodukt” wochenlanger Tüftlerei sieht nun so aus:
Video zur Funktion (inkl. Kurzbeschreibung):
Fazit
Es war ein - für mich - extrem kniffliges Projekt, vor allem die Software hat 90% der gesamten Arbeitszeit verlangt… Ich möchte gar nicht mehr überlegen, wieviele Stunden es tatsächlich waren - aber es waren sehr viele… ![]()
Fragen?
Gerne bei mir melden!











