Weihnachtsstern aus dem 3D-Drucker: Bunt blinkend und per WLAN steuerbar

Seite 2: Software

Inhaltsverzeichnis

Als Basis für die Software dient die Bibliothek FastLED von Daniel Garcia, die neben der Ansteuerung verschiedener intelligenter LEDs vor allem zahlreiche Effekte unterstützt. Die Konfiguration soll außerdem über eine HTML-Seite erfolgen können. Dazu wird die Bibliothek WebConfig eingesetzt. Wenn der Stern später fertig zusammengeklebt ist, kann der Mikrocontroller nicht mehr über die serielle Schnittstelle programmiert werden. Um trotzdem Updates einspielen zu können, verwenden wir OTA (over the air). So ist eine Programmierung über WLAN möglich. Ich möchte hier nicht genauer auf den Programmcode eingehen. Der ausführlich kommentierte Quelltext sollte euch aber die Möglichkeit zu Änderungen und Erweiterungen bieten und liegt hier zum download bereit.

Um den Sketch kompilieren zu können, sind folgende Pakete und Bibliotheken erforderlich:

  • esp8266 von ESP8266 Community Version 2.7.4
  • FastLED von Daniel Garcia Version 3.3.3
  • WebConfig von Gerald Lechner Version 1.4.0
  • Arduino_JSON von Arduino Version 6.10.1

Nach dem Kompilieren kann der Sketch über einen USB-Adapter auf den ESP8266 geladen werden. Damit der Mikrocontroller in den Flash-Modus versetzt wird, muss GPIO0 beim Start mit GND (Masse) verbunden werden. Das kann mit einer kleinen Drahtbrücke (gelbe Linie im Bild) passieren. Die Drahtbrücke muss nach dem Flashen wieder entfernt werden. Manch ein USB-Adapter hat bereits einen kleinen Schiebeschalter, um GPIO0 mit GND zu verbinden.

USB-Adapter

Nachdem der Sketch geladen wurde, kann die Drahtbrücke entfernt und der Controller neu gestartet werden. Zur Verbindung mit dem lokalen WLAN benötigt das Programm eine SSID und ein Passwort. Da diese zuerst noch nicht bekannt sind, startet das Programm einen Accesspoint mit einer SSID, welche aus der MAC-Adresse des ESP8266 gebildet wird. Mit einem Smartphone kann man sich jetzt mit diesem Accesspoint verbinden. Passwort ist keins erforderlich. Wurde die Verbindung zum Accesspoint hergestellt, kann im Browser mit der URL http://192.168.4.1 die Konfigurationsseite aufrufen werden.

Konfiguration

Die zwei wichtigsten Eingaben sind der Name des lokalen WLANs und das zugehörige Passwort. Das Feld "Wiederholung" gibt an, wie oft eine Farbpalette im Thema Zufall wiederholt wird, ehe eine andere Palette verwendet wird. Die Helligkeit der LEDs kann zwischen 0 und 255 variiert werden. Der Wert 64 hat sich für mich als günstig erwiesen. Schließlich kann noch eines der 10 vordefinierten Themen ausgewählt werden. Mit dem Button "Save" wird die Konfiguration im Flash-Filesystem des ESP8266 gespeichert. Zum Schluss wird über "Restart" der Controller neu gestartet und sollte sich mit dem lokalen WLAN verbinden. Die Konfiguration ist jetzt über die URL LED-Stern.local aufgerubar. In der Arduino IDE sollte bei den Ports nun auch eine Netzwerkschnittstelle angezeigt werden. Mit dieser Schnittstelle kann man Programmänderungen über WLAN an den ESP8266 übertragen.

Netzwerk-Schnittstelle