Animierter Smart-LED-Strip per Alexa steuern – Arduino-Projekt
Komponenten und Zubehör
| Komponente | Menge | Hinweise |
|---|---|---|
| Arduino UNO (oder Nano/Mega) | 1 | Arduino Nano funktioniert ebenso; Mega für mehr LED-Pixel sinnvoll |
| Raspberry Pi 3 Model B | 1 | Für MQTT-Client und USB-Kommunikation mit Arduino |
| NeoPixel-Strip (WS2812/WS2812B) | 1 | Beliebige adressierbare RGB-LED-Strips nutzbar |
Apps und Online-Dienste
- Arduino IDE – Programmierung des Mikrocontrollers
- AWS Lambda – Python-Skript als Brücke zwischen Alexa und IoT
- Amazon Alexa Skills Kit – Sprachinteraktionsmodell
- AWS IoT Core – Device Shadow für Statusverwaltung
Projektüberblick
Dieses Projekt ermöglicht die sprachgesteuerte Kontrolle eines adressierbaren RGB-LED-Strips über Amazon Alexa. Die Architektur besteht aus mehreren miteinander verbundenen Komponenten:
Systemarchitektur
- Amazon Alexa: Custom Skill „Light Strip“ definiert das Sprachmodell und übersetzt Befehle in Intents für die Lambda-Funktion.
- AWS Lambda (Python): Empfängt Nachrichten von Alexa und sendet Updates an den AWS IoT Service.
- AWS IoT Core: Speichert einen „Device Shadow“ – eine Repräsentation des LED-Strip-Zustands. Bei Änderungen werden abonnierte MQTT-Clients (Raspberry Pi) benachrichtigt.
- Raspberry Pi: Führt einen MQTT-Client aus, empfängt Änderungen vom IoT-Service und sendet Befehle per USB-Seriell an den Arduino.
- Arduino (UNO/Nano/Mega): Führt die ALA-Bibliothek (Arduino Light Animations) aus, steuert den LED-Strip basierend auf seriellen Kommandos.
- WS2812 RGB-LED-Strip: Adressierbare LEDs ermöglichen individuelle Farbsteuerung und komplexe Animationen.

Zweiteiliger Aufbau
Das Projekt ist in zwei aufeinander aufbauende Phasen unterteilt:
Phase 1: Hardware-Grundlage (Web-Steuerung)
Basierend auf dem Hackster.io-Projekt „Web-Controlled LED Animations with Raspberry Pi and Arduino“ werden Raspberry Pi, Arduino und LED-Strip verbunden. Am Ende dieser Phase lässt sich der Strip über einen Webbrowser (Smartphone/PC) steuern.
Phase 2: Alexa-Integration (hier beschrieben)
Erweiterung um Sprachsteuerung über Amazon Alexa. Die folgenden Schritte sind sorgfältig auszuführen.
AWS IoT einrichten
IoT Thing erstellen
- Im AWS-Konsole anmelden (kostenloses Konto erstellen falls nötig).
- Region US East (N. Virginia) oder EU (Ireland) wählen.
- Service AWS IoT Core öffnen, „Get Started“ klicken.
- Sicherheitsrichtlinie erstellen: Secure → Policies → Create Policy
- Name:
LightStripPolicy - Action:
* - Resource:
* - Effect: Allow ✓
- Name:
- Thing registrieren: Manage → Things → Register a Thing → Create a single thing
- Name:
LS01 - One-click certificate creation → Zertifikate erstellen
- Alle 3 Gerätezertifikate + Root CA herunterladen (Root CA: Rechtsklick → Speichern)
- Zertifikate aktivieren, Policy
LightStripPolicyanhängen, Thing registrieren
- Name:
- WICHTIG: AWS IoT Endpoint notieren (Settings → Endpoint).
Raspberry Pi für MQTT konfigurieren
# AWS IoT Device SDK für Python installieren
sudo pip3 install AWSIoTPythonSDK
# Repository klonen
mkdir -p /home/pi/LightStrip
cd /home/pi/LightStrip
wget https://github.com/bportaluri/LightStrip/archive/master.zip
unzip master.zip
# Zertifikate in /home/pi/LightStrip/LightStrip-master/pi kopieren
# Konfiguration anpassen
cd /home/pi/LightStrip/LightStrip-master/pi
nano lightstripcfg.py
In lightstripcfg.py folgende Werte eintragen:
AWSIOT: Notierter IoT EndpointROOT_CA: Dateiname des Root-CA-ZertifikatsCERTIFICATE: Dateiname des GerätezertifikatsPRIVATE_KEY: Dateiname des privaten SchlüsselsDEVICE_NAME:LS01(unverändert lassen)
Skript starten (Arduino meist an /dev/ttyACM0):
sudo python3 lightstrip.py /dev/ttyACM0
Erfolgreiche Verbindung zeigt Bestätigung im Terminal. Test via AWS IoT Console: Thing LS01 → Shadow → Edit → JSON eingeben:
{ "desired": { "animation": "101" } }
Der Strip startet die Animation. Farbtest:
{ "desired": { "color": "0066CC" } }
AWS Lambda Funktion
- AWS Console → Lambda → Create Function → Author from scratch
- Name:
LightStrip, Runtime: Python 3.6+ - Role: Custom Role →
lambda_basic_executionerstellen - Lambda ARN notieren (oben rechts)
- Code inline bearbeiten: Handler
lambda_function.lambda_handler - Inhalt von
LightStrip/lambda/lambda_function.pyundala_controller.pyaus GitHub-Repo einfügen - Save klicken
Alexa Skill erstellen
- Amazon Developer Console → Alexa Skills Kit → Add a New Skill
- Skill Information:
- Type: Custom Interaction Model
- Language: English (U.S.) / Deutsch (optional)
- Name:
LightStrip - Invocation Name:
light strip
- Interaction Model → Launch Skill Builder → Code Editor → Inhalt von
LightStrip/alexaskill/lightstrip_skill.jsoneinfügen → Save Model → Build Model - Configuration → Service Endpoint: AWS Lambda ARN → Lambda ARN eintragen → Save
Skill mit Lambda verknüpfen
- Zurück zur Lambda-Funktion → Triggers → Alexa Skills Kit hinzufügen
- Application Id = Skill ID aus Developer Console → Add → Save
Fertig! Sprachbefehle testen
„Alexa, open Light Strip“„Turn on“ / „Turn off“„Set brightness to 50 percent“„Set color to red“ / „Set color to turquoise“„Run an exciting animation“ / „Run a relaxing animation“
Erweiterte Interaktion
Du: Alexa, open Light Strip Alexa: Welcome to LightStrip – LED leuchtet blau Du: Launch an animation Alexa: Relaxing or exciting? Du: Relaxing Alexa: OK – Zufällige Animation startet Du: Next animation Alexa: OK – Nächste Animation
Verbesserungen & Tipps
Autostart beim Boot
lightstrip.py als Systemd-Service oder via crontab @reboot automatisch starten.
Animationen anpassen
In ala_controller.py (ca. Zeile 80) sind 20 Animationen definiert. Eigene Animationen lassen sich durch Anpassung von Preset, Farbpalette und Geschwindigkeit einfach hinzufügen.
Quellcode & Ressourcen
Gesamter Code auf GitHub: https://github.com/bportaluri/LightStrip
Schaltplan

Herstellungsprozess
- Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
- Arduino-basiertes Schalter- & LED-Panel für Microsoft Flight Simulator 2020
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Intelligente selbstschnürende Schuhe mit integrierter Energiegewinnung
- Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung
- Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
- Stufenlose LED-Helligkeitssteuerung mit Bolt IoT und Arduino UNO
- u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
- Intelligenter Arduino-Roboterarm bauen: Einfaches DIY-Tutorial
- Spracherkennung & Sprachsynthese auf Arduino Due meistern