# Technische Details ## Hardware ### LED-Leiste Die LED-Leiste besteht aus SK6812-LEDs, die einzeln angesteuert werden können. Jede LED enthält vier LED-Chips in verschiedenen Farben: rot, grün, blau und (neutral-)weiß. Es gibt auch Varianten mit warm- und kaltweiß zu kaufen, die neutralweiße hat jedoch den Vorteil, dass die Farbtemperatur der weißen LED ziemlich gut dem Sonnenlicht entspricht und sich damit gut zur Farbmischung eignet. Die Leiste ist 5m lang und enthält 300 LEDs. ### Mikrocontroller Zur Ansteuerung der LED-Leiste kommt ein ESP32 zum Einsatz. Dabei handelt es sich um einen netzwerkfähigen Dual-Core-Mikrocontroller. Netzwerkfähig heißt in diesem Fall, dass er WLAN, Bluetooth Low Energy und auch Ethernet unterstützt. Außerdem hat er genug Rechenleistung, um auch auf dem Mikrocontroller direkt Animationen für die LEDs berechnen zu können. Die Firmware ist in C++ mit dem Arduino-Framework und der PlatformIO-IDE programmiert. Der Code kann [auf meinem Gitea](https://git.tkolb.de/Public/esp32-sk6812/src/branch/bnb) heruntergeladen werden (der Git-Branch `bnb` enthalt die für’s ZAM relevanten Anpassungen). ## Ansteuerung im Netzwerk ### Adresse Die LED-Leiste ist unter der Adresse **zamusiclight.im.zam.haus** im ZAM-Netzwerk erreichbar. ### Dienste Folgende Dienste laufen auf dem ESP32: - Ein HTTP-Server, über den die fest einprogrammierten Funktionen gesteuert werden können (Animationswechsel, Anzeige einfacher Farben) => [http://zamusiclight.im.zam.haus/](http://zamusiclight.im.zam.haus/) - Ein UDP-Server, der die Echtzeitansteuerung ermöglicht. Dieser wird weiter unten genauer beschrieben. **⚠️ Wichtig: Eine Ansteuerung über UDP „gewinnt“ immer gegenüber den Einstellungen auf dem HTTP-Server.** Sobald ein Kommando über UDP empfangen wurde, wird die interne Animation unterbrochen und das „Live-Bild“ angezeigt. Die interne Animation wird fortgesetzt, wenn für 3 Sekunden kein UDP-Paket empfangen wurde. #### Der HTTP-Server Der ESP32 stellt per HTTP eine sehr spartanische Startseite bereit, auf der einige vordefinierte Animationen umgeschaltet werden können. Da die Firmware ursprünglich für einen anderen Aufbau geschrieben wurde, sind manche Animationen noch nicht an den Aufbau im ZAM angepasst, also bitte nicht wundern, wenn mal etwas komisch aussieht. Zusätzlich bietet der HTTP-Server eine API an, die z.B. das Setzen von Farben für die ganze Leiste ermöglicht, z.B. setzt folgendes ein hübsches Frühlingsgrün: [http://zamusiclight.im.zam.haus/api/color?color=20800010](http://zamusiclight.im.zam.haus/api/color?color=20800010) Es gibt auch eine API für Textanzeige, die aber am ZAM-Aufbau nicht sinnvoll umsetzbar ist: [http://zamusiclight.im.zam.haus/api/text?text=Hallo%20ZAM!&color=20800010](http://zamusiclight.im.zam.haus/api/text?text=Hallo%20ZAM!&color=20800010) #### Echtzeit-Ansteuerung über UDP Der ESP32 wartet auf **Port 2703** auf Kommandos. Ein Kommando ist wie folgt aufgebaut:
**Byte** | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
**Bedeutung** | Kommandotyp | Strip-Index | LED-Index | Rot-Wert | Grün-Wert | Blau-Wert | Weiß-Wert |