ESP8266ESP8266 - SmartHome ProjekteioBrokerioBroker Tutorials

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 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

7 Gedanken zu „ioBroker Signalgeber mit einem ESP8266

  • Alexander

    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

    Antwort
  • Alexander

    Nochmal Hallo Matthias,

    ich habe nun verschiedenes probiert, jedoch bekomme ich keinen Eintrag im mqtt.0

    Gruß Alexander

    Antwort
  • 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

    Antwort
    • Matthias Korte

      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

      Antwort
  • Martin

    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

    Antwort
    • Matthias Korte

      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

      Antwort
  • Pingback: ESP8266: Pinout, Projekte und alles wichtige, was Du wissen musst

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.