smarthome-tricks.de

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: 7,39 €

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 (654 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.

 

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

Die mobile Version verlassen