ESP8266 / ESP32 Pixel Controller
WiFi Pixel Controller für WS2812 LED-Stripes und Lichterketten auf Basis der WLED Firmware
Auf der Suche nach einer einfachen Möglichkeit WS2812 / SK6812 „NeoPixel“ LED-Stripes und Lichterketten anzusteuern, stieß ich auf die freie Firmware WLED. Diese bringt zahlreiche Features wie Lichteffekte, Farbpaletten, Segmente und Presets mit. Die Steuerung erfolgt über ein Webinterface. Außerdem ist eine Einbindung in verschiedene Heimautomatisierungen möglich. Egal ob Deko-, Party- oder Weihnachtsbeleuchtung; die Anwendungsmöglichkeiten sind nahezu unbegrenzt. Nach einem kurzen Test auf dem Steckbrett musste eine passende Platine her. Ich entschloss mich für den Selbstbau.
Der ESP8266 Pixel Controller basiert auf einem Wemos D1 Modul. Ein Betrieb mit 5V oder 12V LED-Stripes ist möglich. Die Eingangsspannung muss dabei der des Stripes entsprechen. Die Ausgabe erfolgt entweder als 5V TTL- oder RS485-Signal. Letzteres kann, da es unempfindlich gegen Störungen ist, bei langen Zuleitungen wieder in ein TTL-Signal zurückgewandelt werden, oder aber mit entsprechender Konfiguration der WLED Firmware als DMX-Artnet Interface (Veranstaltungstechnik) verwendet werden. Zusätzlich ist noch ein Micro-SD-Slot vorhanden. Dieser kann derzeit von WLED nicht genutzt werden, ist aber eventuell für eigene Implementierungen interessant. Die äußeren Anschlüsse stellt eine 6-polige steckbare Reihenklemme her. Sie verfügt über Schraubverbindungen und lässt sich zum schnellen Austausch auch komplett aus dem Modul ziehen, ohne alle Kabel wieder zu lösen.
Schaltungsbeschreibung
Am Steckverbinder K1 werden Netzteil und LED-Streifen angeschlossen. Um sowohl 5V als auch 12V LED-Stripes verwenden zu können, muss mit dem Jumper JP1 die passende Ein- und gleichzeitig Ausgangsspannung gewählt werden. Im Fall von 12V LEDs erzeugt der DC-DC Wandler IC1 die nötigen 5V für die restliche Schaltung. Eine Absicherung gegen kurzzeitige Überspannung ist mit den TVS-Dioden D1 und D2 realisiert. Die Selbstrückstellsicherung F2 schützt die Dioden vor Überlastung. Bei einem Kurzschluss spricht die Topfsicherung F1 an.
Das Herz der Schaltung bildet mit IC2 das ESP8266 Modul (Wemos D1 mini) oder ESP32 Modul (Wemos C3 mini). Die Ausgabe des Datensignales der LEDs erfolgt über D4 (GPIO2) beim ESP8266 oder 8 (GPIO8) beim ESP32, eine zusätzliche Leitung für das Taktsignal ist ab v1.1 über D2 (GPIO4) beim ESP8266 oder 6 (GPIO6) beim ESP32 herausgeführt. Das Taktsignal ist nur für bestimmte LED-Varianten (APA102, SK9822, etc.) erforderlich. Als Speichererweiterung für eigene Implementierungen befindet sich auf der Platinenunterseite ein Micro-SD-Kartenhalter K2. Dieser verwendet dieselbe Pinbelegung wie das offizielle Wemos SD Shield.
Die Steckbrücke JP2 wählt zwischen Ausgabe als TTL oder DMX (RS485). Als Puffer und Pegelwandler für die TTL Datensignale zum direkten Betrieb der Stripes werden zwei 74LV1T125 (IC3, IC4) verwendet. Die Wandler auf 5V Logikspannung sind nötig, da die 3.3V des GPIO Ausgangspins nicht in allen Fällen eine fehlerfreie Übertragung gewährleisten. Bei längeren Datenleitungen kann die Ausgabe auch als störungsunempfindliches RS485 Differential-Signal erfolgen. Das RS485 Signal wird dabei von IC5 erzeugt. Da diese Übertragungsart zwei Leitungen benötigt, wird hier nur das Datensignal übertragen. Eine Busterminierung kann mit JP3 aktiviert werden. Das TVS-Array D3 schützt die Datenausgänge vor Überspannung.
Gehäuse
Ein passendes Modulgehäuse wurde mit OpenSCAD gezeichnet. Die STL Datei kann direkt mit einem 3D Drucker gedruckt werden. Sollte kein Micro-SD-Slot gewünscht sein, kann der nötige Ausschnitt und Deckel im Quelltext deaktiviert werden. Der Gehäusedeckel ist mit zwei Schrauben befestigt.
Für den Außenbereich habe ich ein IP65 Gehäuse vom Typ RP1285C gewählt. Darin findet der Pixelcontroller zusammen mit einem Meanwell Schaltnetzteil Platz. Die Kabel sind mit PG-Verschraubungen durchgeführt. Als Schutz gegen Kondenswasser empfiehlt es sich, ein Päckchen Trockenmittel (Silica Gel) hineinzulegen oder einen Klimastopfen im Gehäuse zu verbauen. Der Anschluss an die LED Installation erfolgt über Neutrik NC4 HD Steckverbinder. Diese sind im gesteckten Zustand ebenfalls wasserdicht.
Firmware
Die Installation der Firmware erfolgt über die USB Schnittstelle am Wemos D1 mini. Eine Anleitung dazu findet sich in der WLED Dokumentation unter „Install WLED Binary“. Anschließend ist der Verbindungsaufbau über WLAN zum Accesspoint „WLED-AP“ mit dem Kennwort „wled1234“ möglich. Die Oberfläche ist mit einem Browser zunächst unter http://4.3.2.1/ zu erreichen. Von dort kann dann die Einbindung ins Heimnetz vorgenommen werden. Nach Abschluss der Konfiguration ist der Controller über seine interne IP Adresse im gesamten LAN erreichbar. Eine detaillierte Beschreibung dazu ist im „Getting Started“ Bereich der WLED Dokumentation zu finden.
Der Screenshot zeigt die zahlreichen Farbpaletten und Lichteffekte.
Fehlerkorrekturen
- Version 1.0: Initiale Version
- Version 1.1: Zweiten Kanal für TTL Taktsignal hinzugefügt, Selbstrückstellsicherung vor TVS-Dioden hinzugefügt
Links
- Leiterplatte bei Aisler
- Leiterplatte bei OSH Park
- Gehäuse bei Thingiverse
- WLED Dokumentation (kno.wled.ge)
- WLED Software (GitHub)