ESP32 Tutorial 47/55 - WS2812 CheerLights mit MQTT über das Internet | SunFounders ESP32 IoT-Kit

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.

WS2812_streifen.EIN

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.

esp32-47-cheer-light-wiring

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

Bilder

WS2812_strip.ON
WS2812_strip.ON
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
848-ESP32 Tutorial 47/55- Arduino code for cheer light
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.