Wer den ersten Teil verpasst hat, kann ihn sich hier gerne anschauen:
So... nachdem wir also das Pi dazu gebracht haben den Stripe zum Takt der Musik zu steuern, wird es Zeit das Ganze mit einem ESP2866 zu erledigen.
Vorteile:
Ihr seid nicht gezwungen den LED-Stripe in der Nähe des Pis zu verbauen, denn das Pi muss ja unweigerlich in der Nähe eines Verstärkers (sollt er selbst der Player sein) oder einer AudioQuelle (sofern Ihr das Projekt im Ursprung verwendet) sein.
Der ESP ist auch deutlich kleiner und lässt sich leichter irgendwo verstecken als das Pi.
(selbst zwar noch nicht getestet) aber sofern Ihr mehrere LED-Stripes verwenden wollt, was wohl der ein oder andere schon gemacht hat, dann geht das nur über diesem Weg und vor allem auch eben bequemer ohne groß Kabel verlegen zu müssen
Nachteile:
Ein weiteres Gerät (eben das oder mehrere ESPs) werden benötigt, auch wenn der Preis für ein Gerät echt verschwindend gering ist.
Ein weiteres Gerät bedeutet natürlich auch unweigerlich mehr Stromverbrauch! Klar, der wird auch nicht hoch sein aber die Masse macht es ja bekanntlich.
WLAN muss eben gut abgedeckt sein, wie man ja im Video leider erkannt hat.
Vorbereitungen
Ihr benötigt die Software Arduino
Bekommt Ihr hier: https://www.arduino.cc/en/software
Diese muss entsprechend vorbereitet werden.
Datei --> Voreinstellungen --> Zusätzlicher Boardverwalter-URLS: https://arduino.esp8266.com/stable/package_esp8266com_index.json
## Falls schon etwas drin steht einfach mit Komma separieren
Unter Tools --> Boards --> Boardmanager
Nach dem Eintrag "esp8266" suchen und wie im Screenshot auf "ESP8266 Community" klicken und installieren (es hat auch schon mit neueren Versionen funktioniert, einfach probieren):
Sketch --> Bibliothek einbinden --> Bibliotheken verwalten:
Nach "neopixelbus" suchen und installieren (auch hier hat eine neuere Version auch schon geklappt, somit einfach testen):
ESP2866 vorbereiten
Ihr benötigt ein Micro-USB-Kabel, bevor ihr den ESP jedoch an euren PC steckt müsste Ihr vor dem Anstecken den "Flash-Button" drücken. Sobald das Gerät angestöpselt ist, könnt ihr diesen auch schon wieder los lassen.
Werkzeuge --> Board --> auf "Generic ESP2866 Module" stellen:
Werkzeuge --> Port --> (euren COM Port bei mir:) COM3 auswählen:
ESP2866 flashen
In dem vorherigen Beitrag habt ihr von hier: https://github.com/scottlawsonbc/audio-reactive-led-strip
die Zip herunter geladen, darin ist auch entsprechend der Code/Firmware die ihr anpassen und auf den ESP flashen müsst:
Einfach in der Software Arduino öffnen und folgende Zeilen anpassen:
Set const char* ssid to your router's SSID <-- euer WLAN-Name
Set const char* password to your router's password <-- euer WLAN Passwort
Set IPAddress gateway to match your router's gateway <-- die IP eures Routers
Set IPAddress ip to the IP address that you would like your ESP8266 to use (your choice) <-- eine "eigene freie" IP in dem Netz, das Ihr Zuhause habt
Set #define NUM_LEDS to the number of LEDs in your LED strip <-- Anzahl der LEDs welche auch mit dem Script (wie im vorherigen Beitrag) passen muss!
Set Subnet <-- hier eure Subnetz, welches zu eurem Netz passt z.B. 255.255.255.0 (24er Maske)
Danach oben auf den Haken zum Kompilieren und sofern alles geklappt hat oben auf den Pfeil nach rechts (neben dem Haken) um das Ganze auf den ESP zu flashen:
Der Flashvorgang sollte nun bei euch in Prozent (%) hochladen:
Sobald der Vorgang abgeschlossen ist, könnt ihr den LED-Stripe mit seiner Steuerleitung an das ESP anschließen (RX Pin)
(Bildquelle: https://github.com/scottlawsonbc/audio-reactive-led-strip)
Der ESP benötigt jetzt nur noch Strom und ist somit vorbereitet.
Letzte Anpassungen und Test
Hat das Flashen des ESPs funktioniert könnt ihr euch auch wieder auf dem Pi aufschalten und die "config.py" entsprpechend anpassen.
Damit jetzt nicht das Pi selbst die Steuerleitung übernimmt müssen wir im Script "Pi" auskommentieren und stattdessen ESP nutzen. Des Weiteren müssen wir natürlich auch die IP mitgeben, die der ESP nun hat
Ich setze an der Stelle voraus, dass Ihr natürlich den gleichen LED-Stripe (aus Teil1) mit der gleichen Anzahl von LEDs verwendet, ansonsten muss die Anzahl in diesem Script natürlich überein stimmen mit der des ESPs!
Um gleich die Performance zu optimieren, dass das Script den Graphen nicht mit anzeigt habe ich folgendes auf "False" gestellt:
Ich würde jetzt noch eine Probe machen, ob das Pi den ESP auch erreicht und einen "ping <die IP, die ihr dem ESP gegeben habt>" absetzen. Kommt eine Antwort, dann sollte es im Anschluss auch funktionieren.
Jetzt das Ganze wieder wie gehabt mit
python3 /temp/audio-reactive-led-strip-master/python/visualization.py
starten und der ESP sollte munter zum Takt der Musik ausschlagen.
Viel Spaß beim nachbauen.