Barcodescanner für die Küche

Inventarverwaltung mit ESP8266, MQTT und Sensorik, die Hardware

Ein Barcodescanner für die Küche klingt erst mal nach Overkill.
Ist es auch. Aber ein kontrollierter, durchdachter Overkill – und genau das macht ihn interessant.

Die Idee hinter dem Projekt ist simpel:
Lebensmittel scannen, Bestände automatisch verwalten und daraus später Einkaufslisten generieren, ohne jedes Mal Zettel, Apps oder das eigene Gedächtnis zu bemühen.

In diesem ersten Teil geht es noch nicht um Software-Logik oder smarte Einkaufsalgorithmen, sondern um das Fundament: die Hardware. Denn bevor irgendwas automatisch einkauft, muss erst mal zuverlässig gescannt werden – und zwar so, dass es auch im Küchenalltag funktioniert.

Barcodescanner für die Küche – Hardware-Prototyp

Die Komponenten

Das Herzstück: das Barcode-Scanner-Modul

Ohne Scanner keine Abfragen. Klingt banal, ist aber einer der entscheidenden Punkte dieses Projekts.

Zum Einsatz kommt ein DollaTek UART Serial Embedded 2D Barcode Scanner v3.0* – ein kompaktes, industriell angehauchtes Scan-Modul, das nicht selbstständig scannt, sondern explizit über einen Taster aktiviert werden muss.

Das ist ein wichtiger Punkt, denn dieses Modul arbeitet nicht wie ein dauerhaft aktiver Kassenscanner. Stattdessen verhält es sich eher wie eine Kamera mit Auslöser:

  • kein permanentes Scannen
  • keine Dauerbelastung
  • keine zufälligen Fehlscans

Erst wenn der Trigger aktiv ist, wird der Scan-Vorgang gestartet und der erkannte Code als reine Textzeile über UART ausgegeben.

Aus Sicht des Controllers ist das angenehm simpel: Zeichen rein, Zeilenumbruch, fertig. Kein USB-HID, keine Tastatur-Emulation, keine Treiber, kein Betriebssystem.

Genau dieser Trigger-Zwang ist der Grund, warum später im Aufbau nicht einfach ein mechanischer Taster, sondern ein Time-of-Flight (ToF) Modul verwendet wird – dazu kommen wir weiter unten beim Thema Abstandssensor.


Das Gehirn: ESP8266 D1 Mini

Ein Scanner allein ist nur ein sehr motiviertes Eingabegerät. Die eigentliche Intelligenz sitzt im ESP8266 D1 Mini*.

Warum der ESP8266?

  • WLAN direkt an Bord
  • klein, günstig, erprobt
  • riesiges Ökosystem
  • MQTT? Kein Problem.

Der D1 Mini übernimmt mehrere Aufgaben gleichzeitig:

  • Auslesen des Barcode-Scanners per UART
  • Steuerung von Display und LEDs
  • Kommunikation mit dem MQTT-Broker
  • Web-UI für Konfiguration (WLAN, MQTT, Rolle)

Kurz gesagt: Ein Mikrocontroller, der genau weiß, was er kann – und was nicht. Und genau deshalb hier perfekt passt.


Abstand statt Chaos: VL53L0X Time-of-Flight Sensor

Küchen sind chaotisch. Hände, Verpackungen, Tiere, Menschen.
Ein Scanner, der dauerhaft feuert, wäre… nervig.

Die Lösung: ein VL53L0X ToF-Sensor (bezahlter Link).

Der Sensor misst den Abstand vor dem Scanner und steuert damit eine Trigger-/Hold-Logik:

  • Objekt nah dran → Scanner aktiv
  • Objekt weg → Scanner aus
  • Timeout → automatische Entspannung

Das verhindert Doppelscans, Dauerfeuer und ungewollte Erfassungen. Außerdem fühlt es sich erstaunlich „richtig“ an: Hand hin, scannen, Hand weg, fertig.

Technik, die unsichtbar ist, ist die beste Technik.


Visuelles Feedback: WS2812B LED-Ring

Ein Scanner ohne Feedback ist wie ein Toaster ohne Klick. Zwar macht das Scanner-Modul bereits „piep“, aber wir wollen es nerdig haben.

Deshalb sitzt vorne ein WS2812B RGB LED-Ring mit 12 LEDs (bezahlter Link).

Der Ring zeigt:

  • Grün oder Rot im Idle-Zustand (IN / OUT Modus)
  • ein Lauflicht, solange der ToF-Trigger aktiv ist
  • einen kurzen Flash, wenn ein Scan erfolgreich war

Keine Textwüste, keine Icons, kein UI-Overkill. Nur Farben und Bewegung – das Gehirn versteht den Rest von selbst… Und es sieht cool aus.


Klartextanzeige: 1,3 Zoll OLED (SH1106)

Manchmal braucht man doch Text. Zum Beispiel für:

  • aktuellen Modus
  • Statusmeldungen
  • MQTT-gesteuerte Hinweise
  • Und für den Software-Teil, der noch kommt

Hier kommt ein 1,3 Zoll OLED Display mit SH1106 Controller (bezahlter Link) zum Einsatz.

Der Text wird automatisch zentriert. Dazu gibt es eine kleine Ring-Grafik, die visuell zum LED-Ring passt. Spielerei? Ja. Aber eine schöne.


Trigger-Ansteuerung: Taster-Bypass (Kontakt nach GND)

Das Scanner-Modul löst den Scan normalerweise über einen Taster aus. Da der Scan in diesem Projekt jedoch per Annäherung gestartet werden soll, wird dieser Tastendruck nicht manuell, sondern per Code simuliert.

Im konkreten Fall ist dieser Taster elektrisch sehr simpel aufgebaut:

  • ein Kontakt liegt fest auf GND
  • der zweite Kontakt wird beim Drücken des Tasters auf GND gezogen
  • dieser Moment reicht aus, um den Scanvorgang zu starten

Genau diesen Mechanismus machen wir uns zunutze – ohne den Taster mechanisch zu betätigen.


Prinzip: ESP8266 simuliert einen Tastendruck nach GND

Der ESP8266 soll den Scan gezielt auslösen können, darf aber nicht direkt mit der Scanner-Elektronik verbunden werden:

  • der ESP8266 arbeitet mit 3,3 V Logik
  • interne Pullups und Schutzbeschaltungen des Moduls sind unbekannt

Deshalb simuliert der ESP8266 den Tastendruck indirekt über einen Transistor.


Aufbau: Transistor zieht den Tasterkontakt auf GND

Der originale Taster bleibt vollständig erhalten und funktionsfähig. Parallel dazu wird folgende Schaltung ergänzt:

  • ein GPIO des ESP8266 steuert die Basis eines NPN-Transistors (z. B. 2N2222, BC547)
  • der Emitter des Transistors liegt auf GND
  • der Kollektor ist mit dem Tasterkontakt verbunden, der normalerweise beim Tastendruck auf GND gezogen wird

Wird der GPIO aktiv, schaltet der Transistor durch und zieht diesen Kontakt zuverlässig auf GND – elektrisch identisch zu einem gedrückten Taster.


Verkabelung (konkret)

  • ESP8266 GPIO → Basis des Transistors über Basiswiderstand (ca. 1 kΩ–4,7 kΩ)
  • Emitter → GND (gemeinsame Masse von ESP und Scanner)
  • Kollektor → Tasterkontakt, der beim Originaltaster auf GND gezogen wird

Mehr ist nicht nötig.

Wichtig:

  • ESP8266 und Scanner müssen dieselbe Masse teilen
  • es wird nur dieser eine Kontakt geschaltet, keine Versorgung, kein Signalpin
  • der mechanische Taster funktioniert weiterhin parallel

Schaltplan

Schaltplan ESP8266 D1 Mini mit Barcode-Scanner und OLED

Zusammenspiel der Komponenten (Code-Auszug)

Der Scanner sendet den Code seriell, der ESP prüft ihn und veröffentlicht ihn per MQTT:

String payload = "{";
payload += "\"ean\":\"" + code + "\",";
payload += "\"qty\":1,";
payload += "\"action\":\"" + String(actionToText()) + "\",";
payload += "\"source\":\"" + String(modeToSource()) + "\",";
payload += "\"uptime_ms\":" + String(millis());
payload += "}";

mqtt.publish(currentTopic(), payload.c_str(), false);

Das Ergebnis landet sauber strukturiert im MQTT-Broker und kann dort weiterverarbeitet werden – Inventar, Statistiken, Einkaufslisten, was auch immer.


Hardware unvermeidliche Kleinzeug

Natürlich besteht ein Barcodescanner für die Küche nicht nur aus den glamourösen Hauptkomponenten.

Am Ende braucht es auch:

Das ist der Teil, der nie in Warenkörben glänzt – aber ohne den nichts funktioniert.


Code & Ausblick

Der komplette Code ist Open Source und auf GitHub verfügbar:

👉 GitHub: KitchenScanner – Barcodescanner für die Küche

In den nächsten Schritten geht es dann um:

  • Bestandslogik
  • automatische Einkaufslisten
  • Integration ins Smart Home
  • und die Frage, wie viel Automatisierung eine Küche eigentlich verträgt

Spoiler: mehr, als man denkt.

Schreibe einen Kommentar