Beim Kochen das richtige Gewürz zu suchen, kann erstaunlich lange dauern. Meine intelligente Gewürzschublade mit ESP32 markiert deshalb das passende Glas mit WS2812B-LEDs – inzwischen zuverlässig über ein lokales Webinterface statt über eine eigensinnige Bluetooth-Tastatur.
Kurz zusammengefasst
Die intelligente Gewürzschublade nutzt einen ESP32, ein lokales Webinterface und WS2812B-LEDs, um das gesuchte Gewürz direkt im richtigen Fach zu markieren. Der aktuelle Aufbau enthält 66 Gewürzgläser. Farben, Helligkeit, Fachanzahl und LEDs pro Fach lassen sich im Browser konfigurieren. Ein LCD1602 zeigt den Suchbegriff und die Trefferzahl an. Alle Einstellungen werden lokal gespeichert; eine Cloud ist nicht erforderlich.

Schnellnavigation
- Die Idee hinter der Gewürzschublade
- Warum Bluetooth zuerst sinnvoll klang
- Die Probleme mit der Bluetooth-Verbindung
- Warum die Suche jetzt über das Webinterface läuft
- So funktioniert die Gewürzsuche
- Konfiguration im Browser
- WS2812B-LEDs und ihre Tücken
- LCD1602 als Statusanzeige
- Verwendete Hardware
- Software und Speicherung
- Was ich aus dem Projekt gelernt habe
- Fazit
- Weitere passende Projekte
Die Idee hinter der intelligenten Gewürzschublade
Es gibt Probleme, die objektiv betrachtet keine Probleme sind.
Zum Beispiel dieses hier:
Man steht am Herd, das Essen kocht, die Pfanne zischt, irgendwo läuft ein Timer und man sucht Paprika. Nicht irgendein Paprika, sondern natürlich genau den einen Paprika, der sich zwischen 65 anderen Gewürzgläsern (bezahlter Link) versteckt.
Man zieht ein Glas heraus.
Koriander.
Das nächste:
Kreuzkümmel.
Dann Chili.
Dann etwas, dessen Beschriftung man irgendwann einmal für ausreichend deutlich gehalten hat.
Und während man noch denkt: „Ich hatte doch definitiv Paprika gekauft“, ist das Nudelwasser verkocht, die Sauce hat sich am Topfboden festgeschweißt und selbst das Salz wirkt enttäuscht.
Also musste eine technische Lösung her.
Nicht etwa eine bessere Beschriftung. Das wäre zu einfach gewesen.
Stattdessen entstand eine intelligente Gewürzschublade mit ESP32 (bezahlter Link), Webinterface und mehreren hundert adressierbaren LEDs.
In der Schublade befinden sich insgesamt 66 Gewürzgläser. Jedes Glas hat einen festen Platz in einem transparent gedruckten Halter. Unter jedem Platz sitzen mehrere WS2812B-LEDs (bezahlter Link).
Über eine Suchfunktion wird der gewünschte Gewürzname eingegeben. Anschließend leuchten die LEDs unter allen passenden Gläsern auf.
Bei der Eingabe:
pa
könnten beispielsweise folgende Gewürze markiert werden:
Paprika schwarz
Paprika edelsüß
Weißer Paprika
Dabei wird nicht einfach irgendwo im Namen nach der Buchstabenfolge gesucht. Der Treffer muss am Anfang eines Wortes stehen.
Dadurch wird:
Weißer Paprika
gefunden, aber:
Irgendwasmitpaprika
nicht.
Das wäre vermutlich kein realistischer Gewürzname, aber Software sollte auch auf Fälle vorbereitet sein, die nur entstehen, weil jemand testen möchte, ob sie wirklich funktioniert.
Warum Bluetooth zuerst sinnvoll klang
Ursprünglich sollte eine kleine Bluetooth-Tastatur direkt mit dem ESP32 verbunden werden.
Zum Einsatz kam eine Rii K06 Mini-Tastatur mit Touchpad (bezahlter Link). Der klassische ESP32-WROOM-32 eignet sich dafür grundsätzlich gut, weil er sowohl Bluetooth Classic als auch Bluetooth Low Energy unterstützt.
Die Tastatur wurde korrekt als BLE-HID-Gerät erkannt:
K06 BLE Keyboard
UUID: 0x1812
Der HID-Service mit der UUID 0x1812 ist genau das, was man bei einer Bluetooth-Tastatur sehen möchte.
Als Softwarebasis diente zunächst das offizielle ESP-IDF-Beispiel esp_hid_host. Darauf aufbauend entstand eine eigene Tastaturauswertung mit:
- Buchstaben und Zahlen
- Shift-Unterstützung
- deutschem QWERTZ-Layout
- Backspace
- Escape zum Löschen
- Enter
- Umlautbehandlung
- Unterdrückung mehrfacher Tastenausgaben
- Ignorieren des Touchpads
Das funktionierte zunächst erstaunlich gut.
Man konnte tatsächlich auf der kleinen Tastatur paprika eingeben und der ESP32 baute den Suchtext korrekt auf.
Die Probleme mit der Bluetooth-Verbindung
Das Problem war nicht die erste Verbindung.
Das Problem war alles danach.
Schaltete sich die Tastatur aus oder ging nach einiger Zeit in den Energiesparmodus, wollte sie sich nicht zuverlässig wieder mit dem ESP32 verbinden.
Teilweise musste erneut der Pairing-Modus aktiviert werden, teils wurde die Tastatur erkannt, aber nicht geöffnet und manchmal wurde sie geöffnet, aber erst nach mehreren Suchläufen.
Die serielle Ausgabe sah dann ungefähr so aus:
Bluetooth-HID-Verbindung getrennt
Automatische Wiederverbindung ist aktiv
Bluetooth-HID-Scan gestartet
Gespeichertes Bluetooth-Gerät wurde nicht gefunden
Bluetooth-HID-Scan gestartet
Währenddessen wurden in der Küche Geräte gefunden, die überhaupt nichts mit Gewürzen zu tun hatten:
- Tuya-Geräte
- Govee-Leuchten
- Smartphones
- irgendwelche Geräte namens
UNPAIRED
Nur die Tastatur, um die es eigentlich ging, hatte gerade keine Lust.
Das ist ein wenig so, als würde man nach dem Salz fragen und die gesamte Nachbarschaft antwortet, nur das Salz nicht.
Reconnect, Scans und zufällige BLE-Adressen
Die Tastatur verwendete eine zufällige BLE-Adresse. Das ist bei BLE nicht ungewöhnlich, machte die Wiederverbindung aber nicht gerade einfacher.
Also wurde die Firmware erweitert:
- Bluetooth-Geräte konnten im Webinterface gesucht werden.
- Gefundene HID-Geräte wurden angezeigt.
- Ein Gerät konnte per Klick ausgewählt werden.
- Die Auswahl wurde dauerhaft im NVS gespeichert.
- Nach Verbindungsabbruch startete eine automatische Wiederverbindung.
- Der Reconnect wurde von einem vollständigen Bluetooth-Scan auf einen kurzen BLE-Scan reduziert.
Das half.
Aber es blieb eine gewisse Verzögerung. Die Tastatur musste häufig erst durch einen Tastendruck aufgeweckt werden. Anschließend musste sie senden, der ESP32 musste sie finden und danach die Verbindung herstellen.
Für eine technische Demonstration war das durchaus interessant.
Beim Kochen war es eher so:
Tastatur einschalten
Taste drücken
warten
noch einmal drücken
Verbindung abwarten
Gewürz suchen
feststellen, dass die Nudeln inzwischen eine neue Aggregatform erreicht haben
Warum die Suche jetzt über das Webinterface läuft
Irgendwann kam die offensichtliche Frage auf:
Warum überhaupt eine eigene Tastatur?
Fast jeder hat beim Kochen ohnehin sein Smartphone in der Nähe. Das Webinterface existierte bereits, weil die Gewürzplätze, Farben und LED-Bereiche darüber konfiguriert werden sollten.
Also wurde Bluetooth vollständig entfernt.
Nicht nur deaktiviert.
Richtig entfernt:
- kein BLE
- kein Bluetooth Classic
- kein HID-Host
- kein Pairing
- kein Reconnect
- kein Scannen nach Geräten
- keine zufälligen Adressen
- keine Tastatur, die sich ausgerechnet dann schlafen legt, wenn man sie braucht
Die Suche läuft nun vollständig über das lokale Webinterface.
Das ist heute ohnehin sinnvoller, denn ein Smartphone ist beim Kochen meistens schon in Reichweite. Die Schublade benötigt dadurch keine zusätzliche Eingabehardware und ist mit Smartphone, Tablet oder PC bedienbar.
So funktioniert die Gewürzsuche
Der ESP32 stellt eine kleine Website im Heimnetz bereit.
Dort befindet sich ein großes Suchfeld. Während der Eingabe wird der Suchbegriff direkt an den ESP32 gesendet und die LEDs werden aktualisiert.

Tippt man:
pf
leuchten beispielsweise:
Pfeffer schwarz
Pfeffer weiß
Cayenne-Pfeffer
Die Suchlogik ignoriert Groß- und Kleinschreibung und normalisiert deutsche Sonderzeichen.
Intern werden unter anderem folgende Ersetzungen vorgenommen:
ä → ae
ö → oe
ü → ue
ß → ss
Dadurch kann sowohl nach:
Kümmel
als auch nach:
kuemmel
gesucht werden.
Die Suche arbeitet wortweise. Jeder Suchbestandteil muss am Anfang eines Wortes stehen.
Die Eingabe:
pap ed
findet beispielsweise:
Paprika edelsüß
Weißer Paprika edelsüß
Konfiguration direkt im Browser
Das Webinterface dient nicht nur der Suche. Darüber wird die gesamte Gewürzschublade konfiguriert.
Einstellbar sind:
- Anzahl der Gewürzfächer
- Anzahl LEDs pro Fach
- Name jedes Gewürzes
- Aktivstatus
- Trefferfarbe
- Helligkeit pro Fach
- WLAN-Zugang
- direkter LED-Test pro Gewürzplatz
Die Zahl der Fächer ist inzwischen frei einstellbar. Mein eigener Aufbau verwendet aktuell 66 Gewürzgläser.
Bei fünf LEDs pro Fach ergeben sich automatisch folgende Bereiche:
Fach 1 → LEDs 1–5
Fach 2 → LEDs 6–10
Fach 3 → LEDs 11–15
und so weiter.
Jede Gewürzkachel besitzt einen eigenen Testbutton. Beim Anklicken leuchtet ausschließlich der dazugehörige LED-Block für drei Sekunden auf.
Das ist besonders hilfreich, wenn man nach dem Löten von mehreren hundert Verbindungen nicht mehr ganz sicher ist, ob LED 286 wirklich dort gelandet ist, wo LED 286 landen sollte.
WS2812B-LEDs und ihre Tücken
In der Theorie sind WS2812B sehr einfach:
5 V
GND
DATA

Wie viel Verkabelung in so einer Schublade verschwindet, hatte ich ebenfalls deutlich unterschätzt. Für Stromversorgung, Datenleitung und zusätzliche Masseführung habe ich am Ende praktisch drei komplette Rollen Einzelader verarbeitet – jeweils rund fünf Meter in Rot, Schwarz und Grün.
Das wären ungefähr 15 Meter Kabel (bezahlter Link) nur für eine Gewürzschublade. Spätestens an diesem Punkt war endgültig klar, dass „ein paar LEDs unter die Gläser kleben“ keine besonders präzise Beschreibung des Projekts mehr war.
In der Praxis lernt man schnell, dass GND nicht einfach nur „irgendwo verbunden“ sein sollte. Bevor die 66 Gläser überhaupt in die Schublade einziehen konnten, bestand ein großer Teil des Projekts deshalb erst einmal aus zugeschnittenen LED-Streifen, Kabeln, Lötzinn und der Frage, warum ausgerechnet LED Nummer 173 jetzt wieder eine andere Meinung zur vorgesehenen Farbe hatte.
Die Datenleitung benötigt eine möglichst nahe Masseführung. Besonders bei längeren Übergängen zwischen einzelnen Stripsegmenten kann es sonst zu sporadischen Fehlern kommen:
- falsche Farben
- einzelne LEDs leuchten
- Blöcke verschieben sich
- Daten werden ab einer bestimmten Stelle unzuverlässig

Ein 74AHCT125 hebt das 3,3-V-Signal des ESP32 auf ein sauberes 5-V-Niveau an. Zusätzlich befindet sich ein Serienwiderstand in der Datenleitung.
Trotzdem blieb eine Stelle problematisch. Auffällig war, dass der Fehler genau dort begann, wo GND nicht mehr parallel zur Datenleitung geführt wurde.
Die Lösung:
- DATA und GND gemeinsam führen
- möglichst kurze Übergänge
- bei längeren Strecken DATA und GND verdrillen
- zusätzliche 5-V- und GND-Einspeisungen
- beschädigte oder schlecht lötbare Flex-PCB-Stellen ersetzen
Zur Diagnose wurde zwischenzeitlich sogar eine Firmware gebaut, die ausschließlich 5er-Blöcke nacheinander ansteuerte.

Ohne Bluetooth, WLAN, Webserver und Display funktionierte dieser Test perfekt.
Damit war zumindest klar: Die LEDs konnten korrekt arbeiten und die Probleme ließen sich gezielter eingrenzen.
LCD1602 als Statusanzeige
Zusätzlich besitzt die Schublade ein LCD1602 mit I²C-Backpack (bezahlter Link).
Das Display zeigt nur dann etwas an, wenn tatsächlich gesucht wird. Ohne Suchbegriff bleibt es vollständig ausgeschaltet.

Während der Suche erscheinen beispielsweise:
PAP
4 TREFFER
oder bei einem eindeutigen Ergebnis:
PFEFFER
PFEFFER SCHWARZ
Damit bleibt die Schublade im Ruhezustand optisch unauffällig und zeigt nur dann Informationen, wenn sie gebraucht werden.
Verwendete Hardware
Der aktuelle Aufbau verwendet:
- ESP32-WROOM-32 (bezahlter Link)
- WS2812B-LEDs (bezahlter Link)
- 74AHCT125 als Pegelwandler (bezahlter Link)
- LCD1602 mit PCF8574-I²C-Backpack (bezahlter Link)
- 5-V-USB-Netzteil
- transparente 3D-gedruckte Gewürzhalter
- selbst zugeschnittene und verlötete LED-Segmente
Die LEDs werden über GPIO 18 angesteuert.
Das LCD verwendet die üblichen I²C-Pins:
SDA → GPIO 21
SCL → GPIO 22
Software und Speicherung
Die Firmware wurde zunächst mit ESP-IDF entwickelt. Nachdem Bluetooth entfernt war, wurde das Projekt auf die Arduino-ESP32-Plattform übertragen.
Zum Einsatz kommen unter anderem:
WiFi.hWebServer.hPreferences.hWire.h- ArduinoJson
- Adafruit NeoPixel
Die Konfiguration wird dauerhaft im NVS des ESP32 gespeichert.
Wenn keine WLAN-Zugangsdaten vorhanden sind, startet der ESP einen offenen Einrichtungs-Access-Point. Darüber können die WLAN-Daten direkt im Browser hinterlegt werden.
Danach ist die intelligente Gewürzschublade im lokalen Netzwerk erreichbar.
Was ich aus dem Projekt gelernt habe
Die wichtigste Erkenntnis lautet vermutlich:
Nur weil eine Lösung technisch interessanter ist, ist sie nicht automatisch praktischer.
Bluetooth-HID auf einem ESP32 zum Laufen zu bringen war spannend. Die Wiederverbindung, der Energiesparmodus und das Gerätehandling waren technisch lehrreich.
Für eine Gewürzschublade war es trotzdem die falsche Bedienform.
Das Webinterface ist einfacher, schneller und im Alltag zuverlässiger.
Die zweite Erkenntnis:
Wenn adressierbare LEDs zufällig leuchten, liegt es nicht automatisch an der Software. Manchmal ist GND zwar elektrisch vorhanden, aber signaltechnisch ungefähr so hilfreich wie ein Feuerlöscher im Nachbarhaus.
Und die dritte Erkenntnis:
66 Gewürzfächer bedeuten bei fünf LEDs pro Glas 330 LEDs.
330 LEDs bedeuten sehr viele Lötstellen.
Sehr viele Lötstellen bedeuten, dass man irgendwann ernsthaft darüber nachdenkt, ob Salz und Pfeffer nicht doch genug gewesen wären.
Fazit: Gewürze finden, bevor das Nudelwasser anbrennt
Die intelligente Gewürzschublade ist inzwischen genau dort angekommen, wo sie ursprünglich hin sollte:
Man gibt einen Gewürznamen ein, und die passenden Gläser leuchten auf.
Kein Suchen mehr.
Das Durchwühlen der gesamten Schublade hat ein Ende.
Kein versehentlicher Griff zu Kreuzkümmel statt Zimt.
Und vor allem deutlich bessere Chancen, das richtige Gewürz zu finden, bevor selbst das Nudelwasser anbrennt.
Der Quellcode ist als Open-Source-Projekt unter der MIT-Lizenz auf GitHub verfügbar:
smart-spice-drawer
Die Schublade ist damit nicht nur ein praktisches Küchenprojekt, sondern auch ein gutes Beispiel dafür, wie aus einer kleinen Alltagsidee ein Projekt mit ESP32, Webserver, NVS, I²C, LEDs, 3D-Druck und mehreren unerwarteten Abenden am Lötkolben werden kann.
Weitere passende Projekte
Wenn dir die intelligente Gewürzschublade gefällt, findest du auf Prokrastinerd noch weitere Projekte rund um ESP32, Küche und Smart Home. Beim Barcodescanner für die Küche geht es ebenfalls darum, einen alltäglichen Küchenablauf mit eigener Hardware etwas smarter zu machen. Wie sich ein ESP32 auch ganz anders einsetzen lässt, zeigt mein Projekt „Geräte per Geräusch ins Smart Home einbinden: ESP32 erkennt Pieptöne“. Und wer möglichst wenig von Hersteller-Clouds abhängig sein möchte, findet im Beitrag „Smart Home ohne Hersteller-App“ weitere Ideen für lokal kontrollierte Lösungen.
GrayTheZebra ist Entwickler und Betreiber von prokrastinerd.de mit Fokus auf Smart Home ohne Cloud, ESP32 und MQTT-basierte Systeme. Alle Projekte basieren auf praktischer Umsetzung und eigener Hardwareentwicklung.
Autorprofil und Hintergrund:
Über GrayTheZebra

Interessantes Nerd-Thema… 🙂
Meine Ideen dazu:
– Tastatur über ein Touch Display. Ist intuitiver als das mit dem Handy, keine Bluetooth-Probleme
– Power-On bei geöffneter Schublade
– Du bist darauf angewiesen, die Gewürze hinterher exakt wieder da abzulegen, wo Du sie entnommen hast. Besser: NFC-Tags unter die Gläser, dazu ein Netzwerk aus NFC-Antennen, die über einen HF-Multiplexer zum NFC-Reader führen. Der µC weiß direkt, wo welches Gewürz steht (einmal anlernen vorausgesetzt)
– Kleiner integrierter Label-Drucker für die Aufkleber auf den Gläsern
Das ist auf jeden Fall ein spannendes Projekt für den nächsten Winter
Danke, da sind tatsächlich ein paar gefährlich gute Ideen dabei.
Ein Touchdisplay und Einschalten beim Öffnen könnte ich mir wirklich noch gut vorstellen – die WebUI würde ich aber trotzdem parallel behalten.
Die NFC-Idee ist technisch natürlich die Königsklasse. Dann wäre tatsächlich egal, wo ein Glas zurückgestellt wird. Gleichzeitig wäre das genau der Punkt, an dem aus „intelligente Gewürzschublade“ endgültig „kleines automatisiertes Warenlager“ wird.
Und ich fürchte, genau deshalb gefällt mir die Idee ein bisschen zu gut.
Für den nächsten Winter ist damit wohl schon mal für Beschäftigung gesorgt. 😄