ESP32 Tutorial 47/55 - WS2812 CheerLights mit MQTT über das Internet | SunFounders ESP32 IoT-Kit
In diesem Tutorial werden wir ein synchronisiertes Beleuchtungssystem mit dem ESP32 und WS2812-LEDs erstellen, das remote über MQTT gesteuert werden kann. Dieses System ermöglicht es mehreren Benutzern, die Farbe der Lichter gleichzeitig zu ändern und ein vernetztes Erlebnis unabhängig vom Standort zu schaffen. Das Projekt nutzt das SunFounder ESP32 IoT-Kit, das einen leistungsstarken Mikrocontroller mit Wi-Fi-Fähigkeiten enthält, wodurch es ideal für IoT-Anwendungen ist.
Im gesamten Video werden wir die notwendige Einrichtung, Verkabelung und Code-Implementierung durchgehen, um diesen Effekt zu erzielen. Wenn Sie weitere Klarstellungen benötigen, sollten Sie das Video zu bestimmten Zeitpunkten (im Video bei mm:ss) überprüfen.
Hardware erklärt
Die Hauptkomponenten dieses Projekts umfassen den ESP32-Mikrocontroller, den WS2812-LED-Streifen und einen MQTT-Broker. Der ESP32 ist ein vielseitiger Mikrocontroller mit integrierten Wi-Fi- und Bluetooth-Funktionen, die es ihm ermöglichen, sich problemlos mit dem Internet zu verbinden. Er dient als das Gehirn unseres Projekts, verwaltet die Kommunikation und steuert den LED-Streifen.
Der WS2812 LED-Streifen besteht aus einzeln adressierbaren RGB-LEDs, die gesteuert werden können, um eine breite Palette von Farben anzuzeigen. Jede LED kann ein- oder ausgeschaltet und auf jede Farbe eingestellt werden, indem eine einzige Datenleitung verwendet wird, was sie perfekt für dynamische Lichteffekte macht. Der MQTT-Broker erleichtert die Kommunikation zwischen verschiedenen Clients und ermöglicht es den Nutzern, Themen zu veröffentlichen und zu abonnieren, die die LED-Farben steuern.
Datenblatt-Details
| Hersteller | Adafruit |
|---|---|
| Teilenummer | WS2812B |
| Logik/IO-Spannung | 3,5 - 5,5 V |
| Versorgungsspannung | 5 V |
| Ausgangsstrom (pro Kanal) | 20 mA |
| Spitzenstrom (pro Kanal) | 60 mA |
| PWM-Frequenzrichtlinien | 400 Hz |
| Eingangsschwellenwerte | 0,2Vcc (niedrig), 0,7Vcc (hoch) |
| Spannungsabfall / RDS(on)/ Sättigung | 0,5 V |
| Thermische Grenzen | Betriebstemperatur: -25 bis 85 °C |
| Paket | Einzelne 5050 SMD |
| Hinweise / Varianten | Verfügbar in verschiedenen Längen und Konfigurationen. |
- Stellen Sie eine angemessene Stromversorgung für den WS2812-Streifen sicher, um Spannungsabfälle zu vermeiden.
- Verwenden Sie einen gemeinsamen Ground zwischen dem ESP32 und dem LED-Streifen.
- Halten Sie die Datenzeilen kurz, um Signalverschlechterungen zu vermeiden.
- Erwägen Sie die Verwendung eines Kondensators (1000μF) über der Stromversorgung, um Spannungsspitzen zu glätten.
- Verwenden Sie geeignete Widerstände an der Datenleitung, um Signalreflexion zu verhindern.
- Achten Sie auf den gesamten Stromverbrauch des LED-Streifens; verwenden Sie bei Bedarf eine externe Stromquelle.
Verdrahtungsanweisungen
Um den ESP32 mit dem WS2812 LEDs-Streifen zu verdrahten, beginnen Sie damit, die Stromversorgung anzuschließen. Schließen Sie den roten Draht des LED-Streifens an eine 5V-Stromquelle und den schwarzen Draht an die Erde an. Verbinden Sie als Nächstes die Datenleitung (gelber Draht) vom WS2812-Streifen mit dem Pin 14 des ESP32. Stellen Sie sicher, dass der ESP32 ebenfalls mit dem gleichen Erdungspunkt wie der LED-Streifen verbunden ist, um einen gemeinsamen Referenzpunkt aufrechtzuerhalten.
Nachdem Sie die Strom- und Datenverbindungen eingerichtet haben, verbinden Sie das ESP32 mit Ihrem Computer über ein Micro-USB-Kabel zur Programmierung. Sie müssen sicherstellen, dass das ESP32 während der Programmierung eingeschaltet ist, um eine Verbindung herzustellen. Sobald es verkabelt ist, können Sie den Code hochladen und das Setup testen.

Codebeispiele und Anleitung
Der Code beginnt mit dem Einfügen der erforderlichen Bibliotheken für die Wi-Fi- und MQTT-Funktionalität. Die Bezeichnerssidundpasswordwerden verwendet, um Ihre Wi-Fi-Anmeldedaten zu speichern, währendmqtt_serverhält die Adresse des MQTT-Brokers.
const char* ssid = "SSID";
const char* password = "PASSWORD";
const char* mqtt_server = "mqtt.cheerlights.com";Als Nächstes definieren wir die unterstützten CheerLights-Farben und ihre entsprechenden RGB-Werte mithilfe von Arrays. Dies ermöglicht es dem Programm, die Farbanpassungen basierend auf der Benutzereingabe leicht abzurufen.
String colorName[] = {"red", "pink", "green", "blue", "cyan", "white", "warmwhite", "oldlace", "purple", "magenta", "yellow", "orange"};
int colorRGB[][3] = { 255, 0, 0, // "red"
255, 192, 203, // "pink" ...};Diesetup()Die Funktion initialisiert die serielle Kommunikation, richtet die WLAN-Verbindung ein und bereitet den MQTT-Client vor. Zudem wird der LED-Streifen gestartet.
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
pixels.begin();
pixels.show();
}Die Hauptschleife überprüft kontinuierlich die MQTT-Verbindung und verarbeitet eingehende Nachrichten, die die LED-Farben steuern. Diecallback()Die Funktion wird ausgelöst, wenn eine Nachricht im abonnierten Thema empfangen wird.
Demonstration / Was zu erwarten ist
Sobald alles eingerichtet ist und der Code hochgeladen wurde, sollten Sie in der Lage sein, die Farbe der WS2812-LEDs zu ändern, indem Sie Nachrichten an das MQTT-Thema senden. Wenn ein anderer Benutzer die Farbe ändert, werden alle verbundenen Geräte die Änderungen gleichzeitig widerspiegeln. Seien Sie vorsichtig bei möglichen Problemen wie umgekehrter Polarität oder falschen Verbindungen, die verhindern könnten, dass die LEDs korrekt funktionieren (im Video bei mm:ss).
Video-Zeitstempel
- 00:00 Start
- 2:00 Einführung
- 3:48 Dokumentationsseite
- 6:33 Verkabelung erklärt
- 7:35 Arduino-Code erklärt
- 15:03 ESP32-Board und COM-Port im Arduino IDE auswählen
- 16:46 CheerLighs Demonstration
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 47/55 - SunFounder-Dokumentsseite für Cheer Lightdocs.sunfounder.com
Dateien📁
Keine Dateien verfügbar.