ESP8266ioBroker

RFID MusicBox mit EchoDot, ESP8266 und ioBroker

In diesem Artikel zeige ich Dir, wie ich eine einfache MusicBox mit EchoDot, einem ESP8266 Mikrocontroller und ioBroker realisiert habe. 

In diesem kleinen Projekt steuere ich den Amazon echo Dot Lautsprecher über verschiedene RFID-Tags.

Bevor wir nun mit dem Aufbau der Hardware, der Programmierung und der Einrichtung in ioBroker beginnen, hier die Liste der verwendeten Materialen:

Creativ Schatzkiste

Preis: 8,04 €

Funktionsweise

Im folgenden Schaubild wird die Funktionsweise der RFID MusicBox erklärt. Mittels dem RFID-Scanner werden am ESP8266 Mikroprozessor die Tags gelesen und per MQTT an ioBroker übertragen. ioBroker wertet die empfangenen Tags aus und gibt dann per Script eine entsprechende Anweisung an den Amazon echo dot. An dieser Stelle können natürlich auch andere Aktionen definiert werden (z.B. Ausgaben über SONOS, etc.).

 

Aufbau der Schaltung

Im ersten Schritt bauen wir nun die Schaltung nach folgender Pin-Belegung auf:

RFID-RC522ESP8266 NodeMCU
3,3V3,3V
GNDGND
RSTD3
SDAD8
SCKD5
MOSID7
MISOD6
IRQ

Die LED an Port D4 ist optional, und in der aktuellen Form der Implementierung noch nicht berücksichtigt. Über die LED soll später der RFID-Lesevorgang signalisiert werden. Auf dem Breadboard schaut der Schaltungsaufbau nun folgendermaßen aus:

 

Programmierung des ESP8266

Nach dem wir nun die Schaltung aufgebaut haben, können wir nun mit der Implementierung beginnen.
Den Sketch stelle ich aufgrund des Umfangs hier als Download zur Verfügung.

RFIDMusicBoxSketch (649 Downloads)

Nun zur Erklärung des Sketchs. Unterhalb der Include-Anweisungen ist der Definitionsbereich der Umgebung.

Über die Konstante ssid wird der Name des WLAN-Netzwerks definiert. Die Konstante password enthält das WLAN-Kennwort der Verbindung. Über die Konstante mqtt_server wird die IP-Adresse des MQTT-Brokers (in unserem Fall die ioBroker IP-Adresse) eingestellt.

In der Methode setupWifi() wird die WLAN-Verbindung hergestellt. Die Methode MQTTCallback() wird derzeit noch nicht verwendet. In der loop() Methode wird der RFID-Sensor gehandelt. Nach dem wir nun den Sketch per ArduinoIDE auf den ESP8266 geladen haben, können wir nun einen ersten Test starten. Wenn wir eine RFID-Tag über das Lesegerät halten, wird der Tag über die serielle Schnittstelle ausgegeben. Zudem wird in ioBroker über den MQTT-Broker ein Datenpunkt erstellt.

Integration in ioBroker

In den Objekten im Bereich „mqtt.0“ ist nun ein neuer Ordner „MusicBox“ mit dem Datenpunkt „rfid“ vorhanden. In diesen Datenpunkt wird der gelesene RFID-Tag gespeichert.

Im Bereich „Skripte“ legen wir uns nun ein neues JavaScript Script „MusicBox“ an. Im Script wird der neue RFID-Tag ermittelt und überprüft. Je nach Tag wird hier nun per Funktionsaufruf setState() der Amazon Echo Dot angesteuert um eine Playlist oder einen Radiosender abzuspielen.

on({id: "mqtt.0.MusicBox.rfid", change: "ne"}, function (obj) {
 var value = obj.state.val;
 log(value, 'info');    

 if ( value == "0979105d" ) {
  setState('alexa2.0.Echo-Devices.ID.Music-Provider.TuneIn', 'Spiele radio 107,7' );
  setState('alexa2.0.Echo-Devices.ID.Player.volume', 30 );
 }

 if ( value == "47cb708b" ) {
  setState('alexa2.0.Echo-Devices.ID.Music-Provider.Amazon-Music-Playlist', 'Spiele Playlist Maximilian' );
  setState('alexa2.0.Echo-Devices.ID.Player.volume', 30 );
 }
});

Einbau in ein Gehäuse und erster Test

Nach dem finalen Aufbau habe ich die Elektronik zunächst in ein kleines Holzgehäuse eingebaut. Hier kann man sich später auch per 3D-Drucker ein passendes Gehäuse drucken. Die Stromversorgung habe ich provisorisch über zwei AA Batterien gelöst. Für einen ersten Test war das so völlig ausreichend.

 

 

 
 
 
 
 
Sieh dir diesen Beitrag auf Instagram an
 
 
 
 
 
 
 
 
 

 

MusicBox in Aktion ? #arduino #esp8266 #mqtt #rfid #iobroker #amazon #amazonecho #echodot #diy #musicbox #bastelspaß

Ein Beitrag geteilt von Smarthome-tricks.de (@smarthometricks) am

Ich hoffe Dir gefällt der Artikel ? Ich freue mich über Deinen Kommentar!

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.

11 Gedanken zu „RFID MusicBox mit EchoDot, ESP8266 und ioBroker

  • Andreas

    Super coole Idee. Da wir hier gerade komplett einsteigen wollen und noch wenig Ahnung haben, könnten Sie vielleicht noch einmal genauer auf das Löten der Hardware Teile eingehen.

    Antwort
  • Pingback: briefkasten melder – Notizbuch

  • Pingback: briefkasten melder – Notizbuch

  • Raimund

    Hi Matthias,
    Dein Script funktioniert bis auf das Anlegen des Datenpunktes in ioBroker. Das Auslesen der Transponder funktioniert. Ich kann die entsprechende Nummer über den Seriellen Monitor auslesen.
    Was kann es sein, das der Datenpunkt im ioBroker nicht angelegt wird?
    Wäre für Deine Hilfe dankbar, weil mich dieser Artikel sehr interessiert.

    Antwort
  • Raimund

    Nachtrag:
    Verbindung zum MQTT-Server (ioBroker) auf Port 1883 besteht (true).
    Benütze Raspberrymatic (RPi 3 B+) und ioBroker (RPi 4 B)

    Antwort
  • Maximilian Mayer

    Hallo,

    klappt fast alles super, bis auf das die MQTT verbindung nach 15 Minuten getrennt wird. Gibt es dafür irgendeine Lösung?

    Viele Grüße und vielen Dank!

    Antwort
  • Hallo, ich habe den gleichen Fehler wie Max Meyer, allerdings dauert es bei mir maximal 30 Sekunden bis die Verbindung zum MQTT Server weg ist. Danach hilft nur der Neustart.

    Antwort
    • Matthias Korte

      Hallo Björn,

      schau mal in die Kommentare, das liegt an einem fehlenden Reconnect im Sketch.

      LG Matthias

      Antwort
      • Hallo Matthias,

        bin durch Zufall auf diesen Beitrag gestoßen und finde das System total klasse.

        Leider habe ich ebenfalls den Reconnect Fehler – wäre es möglich das Du uns zeigst was wo im Code geändert werden muss? Das wäre der Knaller.

        Vielen Dank

        Grüße

        Netty

        Antwort
  • Hardy

    Zum Code des ESP8266+RFID-Lesers wäre es hilfreich, wenn die verwendeten Bibliotheken dabei stünden.

    Antwort

Schreibe einen Kommentar

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