ioBroker Signalgeber mit einem ESP8266
In diesem Artikel zeige ich Dir, wie ich einen einfachen Signalgeber für ioBroker mit einem ESP8266 entwickelt habe.
Für ein anderes ESP8266-Projekt hatte ich das DFPlayer Mini Arduino Modul für die Wiedergabe von MP3-Dateien eingesetzt. Während der Programmierung kam mir die Idee, das Modul auch im Smart-Home Umfeld in Verbindung mit ioBroker nutzen zu können.
Die Idee war hierbei, das Audio-Modul für wichtige Informationen zu verwenden und zudem noch 4 LEDs zu verbauen, mit denen Informationen auch visuell, also per leuchtender LED dargestellt werden können. Die Kommunikation zwischen dem ESP8266 und ioBroker soll später über das MQTT-Protokoll erfolgen.
Das DFPlayerMini Modul habe ich in folgendem Artikel bereits beschrieben. In diesem Artikel habe ich auch die Vorbereitung der SD-Karte beschrieben.
Falls Du den Artikel noch nicht gelesen hast, empfehle ich Dir diesen Artikel zu lesen.
Für den Aufbau der Schaltung habe ich die folgenden Produkte verwendet:
Die einzelnen Komponenten habe ich zunächst auf einem Breadboard aufgesteckt und somit die Schaltung sowie auch die Programmierung umgesetzt. Im folgenden Schaltbild wird der Aufbau der Schaltung dargestellt.
Die Schaltung ist relativ einfach aufgebaut, das DFPlayer Mini Modul wird über die 5V Spannung des ESP8266 versorgt (USB). Die Kommunikation erfolgt über die serielle Schnittstelle (TX/RX) über die Pins D1 und D2. Die LEDs habe ich hier ohne Vorwiderstand direkt an die Pins D3, D4, D5 und D6 angeschlossen. Später wird hier ein entsprechender Vorwiderstand für die einzelnen LEDs verwendet.
Im nächsten Schritt können wir mit der Implementierung beginnen. Ich habe den Sketch über die Arduino IDE implementiert. Den Sketch kannst Du hier herunterladen:
Sketch - ioBroker Alarmsirene (956 Downloads)Nach dem Download des Sketch musst Du hier nur die drei Zeilen für die Konfiguration anpassen. Über die Konfiguration wird die Verbindung zum WLAN-Netzwerk (SSID und Kennwort) sowie die IP-Adresse eurer ioBroker Installation eingestellt. Falls Ihr einen anderen MQTT-Broker einsetzt. muss hier natürlich die andere IP-Adresse verwendet werden. Der Port wird ebenfalls für die Kommunikation mit dem MQTT-Broker verwendet.
Für die Nutzung der DFPlayer Klassen in Arduino muss zusätzlich noch die folgende Bibliothek installiert werden. Suche dazu einfach im integrierten Bibliothektsverwalter nach „DFRobotDFPlayerMini“ und installiere die neueste Version. Zum Zeitpunkt der Artikel-Erstellung habe ich die Version 1.0.5 installiert.
Nach dem Kompilieren können wir den Sketch auf den ESP8266 hochladen. Wichtig ist hierbei, dass der ESP8266 nach dem Flashen nochmals aus- und eingesteckt werden muss.
In ioBroker findest Du nun im MQTT-Adapter die folgenden Datenpunkte:
Über den Datenpunkt mqtt.0.AlarmProject.Command kannst Du die folgenden Befehle absetzen und so den Signalgeber steuern:
- play_1
Spielt die erste Datei von der SD-Karte ab (0001.mp3) - play_2
Spielt die zweite Datei von der SD-Karte ab (0002.mp3) - play_3
Spielt die dritte Datei von der SD-Karte ab (0003.mp3) - red_on / red_off
Ein- und ausschalten der entsprechenden LED - green_on / green_off
Ein- und ausschalten der entsprechenden LED - yellow_on / yellow_off
Ein- und ausschalten der entsprechenden LED - blue_on / blue_off
Ein- und ausschalten der entsprechenden LED - change_volume_10
Lautstärke auf 10 setzen (leise) - change_volume_20
Lautstärke auf 20 setzen (mittel) - change_volume_30
Lautstärke auf 30 setzen (lauter)
Der zuletzt abgesetzt Befehl wird über den Datenpunkt mqtt.0.AlarmProject.LastCommand zurückgegeben.
Du kannst natürlich an dieser Stelle auch Deine eigenen Befehle in Arduino implementieren und damit steuern.
Mit dem Signalgeber können wir nun die unterschiedlichsten Szenarien darstellen. Ich nutze den Signalgeber derzeit für den Briefkasten „die Post ist da!“.
Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂
Hallo Matthias,
danke für diese super Idee. Ich bin gerade dabei es umzusetzen. Dabei habe ich mir bereits eine Frage gestellt. Hast du dir bereits ein „schönes“ Gehäuse oder ähnliches dazu gebaut? Wenn ja wie hast du das umgesetzt.
Gruß Alexander
Nochmal Hallo Matthias,
ich habe nun verschiedenes probiert, jedoch bekomme ich keinen Eintrag im mqtt.0
Gruß Alexander
Hallo nochmal,
also mittlerweile konnte ich die Verbindung herstellen und finde auch das „Command“ aber den Datenpunkt „LastCommand“ bekomme ich nicht in den IoBroker und es lässt sich leider auch kein Befehl ausführen.
Muss evtl noch etwas angepasst werden als nur die SSID Passwort und IP/port?
Gruß Alexander
Hallo Alexander,
merkwürdig, nutzt Du den mqtt Broker Adapter? Damit läuft das bei mir wunderbar.
Verwendest Du evtl. eine Authentifizierung an MQTT?
LG Matthias
Hallo Matthias,
Erstmal vielen Dank für Deine Anleitungen die du hier bereit stellst.
Bin blutiger Anfänger in Sachen Smart Home.
Ich habe Verbindungsprobleme mit MQTT da ich den Adapter von sonoff installiert habe.
Gibt es eine Möglichkeit, dass das Projekt auch mit dem sonoff Adapter funktioniert?
Vielen Dank
LG Martin
Hallo Martin,
nein, ich denke mit dem Sonoff-Adapter wird das nicht klappen.
Im Zweifel beide Adapter mit unterschiedlichen Ports betreiben, das sollte klappen.
Evtl. kannst Du auch den MQTT-Adapter für Sonoff verwenden, da bin ich mir aber nicht ganz sicher.
LG Matthias
Pingback: ESP8266: Pinout, Projekte und alles wichtige, was Du wissen musst