Alexa-gesteuerter LED-Weihnachtsbaum: DIY-Anleitung
Komponenten und Materialien
![]() |
Amazon Alexa Amazon Echo | × | 1 |
![]() |
Arduino Yun | × | 1 |
![]() |
Jumper wires (generic) | × | 1 |
| WS2811 LED Strand | × | 1 |
Über dieses Projekt
Hier finden Sie den Quellcode für einen benutzerdefinierten Alexa-Skill, der einen LED-Strang an einem Weihnachtsbaum steuert. Das Repository enthält:
- Java-Code für eine AWS Lambda-Funktion, die als Endpunkt für den Alexa-Skill dient
- Einen Arduino-Sketch, der zwischen AWS IoT und einem WS2811-LED-Strang vermittelt. Der Sketch ist für den Arduino Yun optimiert.
Hardware-Aufbau
Um Ihren eigenen Alexa-gesteuerten Weihnachtsbaum zu bauen, benötigen Sie folgende Hardware:
- 1 × Arduino Yun mit Linino OS
- 2 × WS2811 LED-Stränge mit jeweils 50 LEDs
- 3 × Jumper wires
- 1 × Netzteiladapter und 2,1 mm × 5,5 mm DC-Stecker
- 1 × Micro-USB auf USB-Kabel
- 1 × Amazon Echo, Amazon Dot oder Amazon Tap
Software-Lösung
Die folgende Abbildung veranschaulicht einen typischen Ablauf zur Verarbeitung einer Sprachbenutzeranfrage.

Die Lösung nutzt diverse AWS-Cloud-Dienste, um mit der Hardware-Backend (dem Weihnachtsbaum) zu kommunizieren. Im Wesentlichen müssen Sie nur die Lambda-Funktion, einen S3-Bucket für MP3-Dateien und eine IAM-Rolle mit AWS IoT- und DynamoDB-Berechtigungen einrichten. Die DynamoDB-Tabelle sowie der Thing Shadow in AWS IoT werden bei der ersten Skill-Aufrufung automatisch erstellt.
So verarbeitet das System eine Sprachanfrage an ein Alexa-Gerät:
- Der Nutzer spricht „
open the christmas tree“ zu Alexa. ASR und NLU erfolgen in der Alexa-Cloud. - Ein Intent wird an den Skill-Code in AWS Lambda übergeben (Code im Repository).
- Wenn der Nutzer eine Aktion wie „
turn on the tree“ oder „start the show“ ohne Farbangabe äußert, liest der Skill die zuletzt gesetzte Farbe aus DynamoDB. Wird eine Farbe genannt, wird diese in der gleichen Tabelle gespeichert. So „merkt“ sich Alexa die letzte Farbe. Anschließend werden Aktion und Farbbefehl in einen Thing Shadow in AWS IoT geschrieben. - Bei Aktualisierung des Shadows wird eine MQTT-Nachricht an das Delta-Topic des entsprechenden Things gesendet. Der Arduino Yun ist auf dieses Topic abonniert. Hinweis: Der Name des vom Skill erstellten Things entspricht der Skill-ID (Punkte durch Bindestriche ersetzt).
- Der Arduino fragt das Delta-Topic zyklisch ab und empfängt die Befehle als JSON-MQTT-Nachricht. Die Informationen werden extrahiert und der Sketch steuert den LED-Strang entsprechend (neue Farbe, Weihnachtsshow, an, aus).
- Der Arduino sendet eine MQTT-Nachricht an das Update-Topic des AWS IoT Things, um die ausgeführte Aktion zu bestätigen.
- Die Nachricht wird vom AWS IoT-Dienst verarbeitet und der enthaltene Status als reported State in den Thing Shadow zurückgeschrieben. Alternativ könnte der Skill den letzten Baumzustand direkt aus dem Thing Shadow lesen; der Fallback auf DynamoDB dient der Zuverlässigkeit, da MQTT asynchron ist und keine sofortige Antwort garantiert.
- Dieser Schritt erfolgt direkt nach Schritt 3, da der Skill bewusst vom Hardware-Backend entkoppelt ist. Nach Aktualisierung des Thing Shadows gibt der Skill-Code den Ausgabetext und optional ein SSML-Audio-Tag zurück. Die MP3-Dateien (Weihnachtssounds) liegen in einem AWS S3-Bucket.
- Alexa liest den zurückgegebenen Text vor und spielt das Audio ab.
Statusanzeige
Während der Arduino arbeitet, signalisiert er seinen aktuellen Zustand über die erste LED im Strang:
- einmaliges rotes Blinken: AWS IoT Verbindungsaufbau fehlgeschlagen
- zweimaliges rotes Blinken: fehlgeschlagener AWS IoT Verbindungsversuch
- dreimaliges rotes Blinken: fehlerhafte AWS IoT Verbindungskonfiguration
- grünes Aufleuchten: erfolgreiche Verbindung zu AWS IoT
- blaues Aufleuchten: konstantes Pollen des AWS IoT Topics
- gelbes Aufleuchten: Fehler beim Pollen des AWS IoT Topics
Beim Start können rote Blinksignale erscheinen, solange der Arduino eine WLAN-Verbindung aufbaut. Nach erfolgreicher WLAN-Verbindung folgt das grüne Aufleuchten, danach ein durchgehend blinkendes blaues Licht – der Baum ist bereit für Befehle.
Blinkt die LED gelb, konnte das AWS IoT Topic nicht erreicht werden. Der Arduino versucht es neun weitere Male, bevor er automatisch einen erneuten Verbindungsversuch startet. Nach zehn gelben Blinksignalen sollten rote/grüne Blinksignale den Wiederverbindungsfortschritt anzeigen. Sobald WLAN und AWS IoT wieder erreichbar sind, erscheinen wieder blaue Blinksignale.
Code
GitHub-Repository: Alexa-powered Christmas tree
Schaltplan

Herstellungsprozess
- Die Kunst und Industrie von Geschenkpapier: Von der Geschichte zur Produktion
- Wie IoT den Weihnachtsmanns Betrieb dieses Weihnachten transformiert
- Alexa Integration beschleunigen mit Developer Kits und Reference Designs
- Warum 2017 zum Jahr der Sprachinterfaces wurde
- Chromecast mit Amazon Alexa per Raspberry Pi und Python steuern
- Alexa-gesteuerter ARDrone 2.0: Sprachaktivierte Drohne mit Raspberry Pi & Hologram Nova
- Weihnachtsdekoration neu gedacht: OMNI CNCs Verleimter Holzbaumständer & Lasergravierte Ornamente
- Fehlerbaumanalyse (FTA) erklärt: Zweck, Prozess & praktische Umsetzung
- Deckenventilator per Alexa steuern – Schritt-für-Schritt-Anleitung
- Freude verbreiten: Sure Controls' Weihnachtsgeist & Gemeinschaftsengagement


