2.4 KiB
Dies ist das einfache Beispielprojekt für das Steckergeschenk, was zum zum Zeitpunkt der Übergabe auch darauf lief.
Hardware
Das Geschenk besteht, von der Elektronik her betrachtet Aus einem ESP32 (Das konkrete Board ist ein DOIT ESP32 DEVKIT V1). Kurz gefasst ist der ESP32 ein Mikrocontroller welcher über 2,4GHz-WLAN und Bluetooth verfügt und im einfachsten Fall über das Arduino-Framework programmiert werden kann. Dieser steuert einen Streifen von 24 WS2812b RGB-LEDs. Diese laufen mit 5V, sind adressierbar und werden vom Mikrocontroller über den Pin GPIO13 gesteuert.
Weitere Infos:
- Eine gute Übersicht über den ESP32
- ESP-32 Dokumentation vom Hersteller (Espressif)
- Detaillierte Infos zu den WS2812b
Software
Was hier vorliegt ist ein PlatformIO-Projekt. Dies ist eine Alternative zur Nutzung der (meiner Meinung nach) relativ unbequemen Arduino-IDE.
Wenn PlatformIO installiert ist (gibt es für Windows sowie alle möglichen Linux-Distros - Ich nutze es unter Arch) kann mit dem Befehl platformio run --target upload
das Programm auf den angeschlossenen Mikrocontroller hochgeladen werden. Der Quellcode kann mit einem Editor/ einer IDE der Wahl bearbeitet werden.
Ich würde aufgrund des Stromverbauchs der LEDs ausdrücklich empfehlen das Netzteil mit anzuschließen, da sonst der Rechner die LEDs über USB mit Strom versorgt!
Der Hauptvorteil von PlatformIO ist die vollständige Steuerung über ein Kommandozeilenwerkzeug (platformio
). So können zum Beispiel weitere Bibliotheken aus der Registry mit dem Befehl platformio lib install $LIBRARY_ID
installiert werden ($LIBRARY_ID
ist offensichtlich nur ein Platzhalter für die tatsächliche ID der Bibliothek).
Die verwendete Bibliothek für die LED-Ansteuerung ist SmartLeds. Diese ist auf die Hardware des ESP32 angepasst und nutzt diesen volkommen aus, so dass es keine Timingprobleme gibt.
Beispiele für die Nutzung von WLAN und Bluetooth des ESP-32 im Rahmen des Arduino-Frameworks findet ihr in diesem GitHub Repository.
Falls ihr noch Fragen habt, fragt mich ruhig.