NeoPixel am ESP32 mit WLED steuern
Ergänzend zur direkten Steuerung von Neopixel am ESP32 mit Micropython, möchte ich heute die Steuerung des Neopixel-Rings mit WLED ausprobieren. WLED ist eine Webanwendung zur Steuerung von LED-Strips für den ESP32 und den ESP8266. Halt man WLED auf dem Microcontroller installiert, kann man die daran angeschlossenen LED-Strips mit dem Browser oder mit der WLED-App steuern.
Wir schließen den Neopixel-Ring wie folgt an:
- NeoPixel-Ring-Power an ESP-3V3-Pin
- NeoPixel-Ring-GND an ESP-GND
- NeoPixel-Data-Input an ESP-GPIO-16
Bei längeren LED-Strips benötigt man evtuell ein externes Netzteil.
Für WLED gibt es fertige Images für den ESP32, die man hier herunterladen kann.
Wenn man den ESP32 vorher noch nicht oder z.B. mit Micropython genutzt hat, muss man zunächst den Bootloader flashen. Hierzu lädt man die Datei https://github.com/Aircoookie/WLED/releases/download/v0.13.1/esp32_bootloader_v4.bin runter und überträgt diese dann mit esptool
auf den ESP32, dabei muss man ggf. die Boot-Taste drücken.
esptool.py write_flash 0x0 ~/Downloads/esp32_bootloader_v4.bin
Für den ESP32 nutze ich das Image WLED_0.x.x_ESP32.bin. Das Image wird dann ebenfalls mit dem esptool auf den ESP32 übertragen, dabei muss man ggf. die Boot-Taste drücken.
esptool.py write_flash 0x10000 ~/Downloads/WLED_0.13.3_ESP32.bin
Wenn das Image erfolgreich übertragen wurde, leuchten die Neopixel in orange.
Der ESP stellt nach der Installation einen WLAN-Access-Point namens WLED-AP
mit dem Passwort wled1234
bereit. Verbindet man sich mit einem beliebigen Gerät mit diesem WLAN kann man mit dem Browser die Adresse http://4.3.2.1/ aufrufen und dann
- die WLAN-Einstellungen anpassen
- die Neopixel direkt steuern.
Man kann nun die Daten eines vorhandenen WLANs eintragen, der ESP32 verbindet sich dann mit diesem WLAN und ist unter http://wled-wled/ oder unter der (ggf. vom Router vergebenen) IP-Adresse erreichar.
Über das WLED-Frontend (Browser oder App) kann man:
- die Farben bzw. Farbpaletten festlegen
- Effekte festlegen
- den Streifen in Bereiche aufteilen und für diese separate Festlegungen treffen
- Voreinstellungen speichern
Detaillierte Informationen sind in der WLED-Doku zu finden.
Man kann WLED auch von anderen Geräten aus über die HTTP-API oder die JSON-API steuern. Hier findet man weitere Informationen
https://tynick.com/blog/01-28-2020/controlling-wled-with-raspberry-pi-using-the-wled-api/ https://kno.wled.ge/interfaces/json-api/
Den Neopixel-Ring habe ich in einen kleinen Bilderrahmen mit mattierter Plexiglasscheibe eingelegt: