ESP32 Tutorial 52/55 - WS2812 CheerLights MQTT Globale Synchronisation mit LCD | SunFounder ESP32 IoT-Kit

ESP32 Tutorial 52/55 - WS2812 CheerLights MQTT Globale Synchronisation mit LCD | SunFounder ESP32 IoT-Kit

In diesem Tutorial werden wir ein CheerLights-Projekt mit dem ESP32 erstellen, das Farben global über MQTT synchronisiert. Dieses Projekt wird nicht nur die Farben basierend auf Eingaben von anderen Benutzern ändern, sondern auch die aktuelle Farbe und wie oft sie aktualisiert wurde, auf einem LCD-Bildschirm anzeigen. Das Ergebnis ist eine unterhaltsame Demonstration der IoT-Fähigkeiten, die zeigt, wie Geräte interagieren und Benutzer über Entfernungen hinweg verbunden bleiben können. Zur weiteren Veranschaulichung schauen Sie sich das Video an (im Video bei 00:00).

esp32-52-cheer-light-lcd-haupt

Hardware erklärt

Um dieses Projekt zu bauen, benötigen Sie einen ESP32-Mikrocontroller, einen WS2812-LED-Streifen und ein LCD-Display. Der ESP32 dient als das Gehirn des Betriebs und nutzt seine integrierten Wi-Fi-Fähigkeiten, um sich mit dem Internet zu verbinden und MQTT-Nachrichten zu empfangen. Dadurch sind Echtzeitaktualisierungen der LED-Farben basierend auf einem globalen Eingangs von anderen Benutzern möglich.

Der WS2812 LED-Streifen ist eine beliebte Wahl für Projekte, die adressierbare RGB-LEDs erfordern. Jede LED kann unabhängig gesteuert werden, was reichhaltige Farbdarstellungen ermöglicht. Das LCD wird eine visuelle Bestätigung der aktuellen Farbe und der Anzahl der Änderungen bieten, was die Benutzerinteraktion verbessert.

cheeLights_LCD

Technische Daten

Hersteller SunFounder
Teilenummer ESP32
Logik/IO-Spannung 3,3 V
Versorgungsspannung 5 V
Ausgangsstrom (pro Kanal) 20 mA
Spitzenstrom (pro Kanal) 60 mA
PWM-Frequenzrichtlinie 400 Hz
Eingangsschwellwerte 0,15 V (niedrig), 0,8 V (hoch)
Spannungsabfall / RDS(on)/ Sättigung 0,2 V
Thermische Grenzen 85 °C
Paket ESP32-Modul
Notizen / Varianten Eingebautes Wi-Fi und Bluetooth enthalten.

  • Stellen Sie die ordnungsgemäße Stromversorgung für den ESP32 (5 V) und den WS2812-Streifen (5 V) sicher.
  • Verwenden Sie einen gemeinsamen Masseanschluss zwischen dem ESP32 und dem LED-Streifen.
  • Implementieren Sie einen ordentlichen MQTT-Broker für die Farbsynchronisation.
  • Achten Sie auf die Daten-Pin-Verbindung für den WS2812 (Pin 14 gemäß dem Code).
  • Sei vorsichtig mit der Anzahl der LEDs; das Überschreiten der Leistungsgrenzen erfordert zusätzliche Stromquellen.

Verdrahtungsanweisungen

ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring

Um die Komponenten zu verdrahten, beginnen Sie mit dem Anschließen des WS2812 LED-Streifens. Verbinden Sie den Massepin (normalerweise schwarz) des LED-Streifens mit dem Massepin des ESP32. Verbinden Sie dann den VCC-Pin (normalerweise rot) des LED-Streifens mit dem 5V-Ausgang des ESP32. Verbinden Sie schließlich den Datenpin (häufig gelb) mit dem GPIO-Pin 14 des ESP32.

Für das LCD verbinden Sie den Erdungspin (oft schwarz) mit der Erde am ESP32. Der VCC-Pin (in der Regel rot) sollte mit dem 5V-Ausgang verbunden werden. Der SDA-Pin (typischerweise grau) wird mit dem GPIO-Pin 21 verbunden, während der SCL-Pin (in der Regel weiß) mit dem GPIO-Pin 22 verbunden wird. Diese Konfiguration ermöglicht es dem ESP32, mit dem LCD zu kommunizieren und Informationen nach Bedarf anzuzeigen.

Codebeispiele und Anleitung

In der Setup-Funktion initialisieren wir das LCD und verbinden uns mit Wi-Fi. Der folgende Code zeigt, wie man die erforderlichen Bibliotheken definiert und das LCD einrichtet:

#include  
#include 
LiquidCrystal_I2C lcd(0x27, 16,2);  // set the LCD address
void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
}

Dies initialisiert das LCD zur Verwendung, sodass es Nachrichten anzeigen kann. Der nächste Abschnitt zeigt, wie die Wi-Fi-Verbindung hergestellt wird:

void setup_wifi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    lcdConnect(); //for LCD
    delay(500);
  }
  Serial.println("WiFi connected");
}

Diese Funktion stellt eine Verbindung zum angegebenen Wi-Fi-Netzwerk her und zeigt während der Verbindung eine Nachricht auf dem LCD an. Schließlich wird die Logik für den Farbwechsel in der Callback-Funktion behandelt:

void callback(char* topic, byte* message, unsigned int length) {
  String messageTemp;
  for (int i = 0; i < length; i++) {
    messageTemp += (char)message[i];
  }
  if (String(topic) == "cheerlights") {
    setColor(messageTemp);
  }
}

Diese Funktion lauscht auf eingehende Nachrichten zum Thema "cheerlights" und aktualisiert die Farbe entsprechend. Der vollständige Code wird unter dem Artikel geladen, also stellen Sie sicher, dass Sie ihn zur vollständigen Implementierung überprüfen.

Demonstration / Was Sie erwarten können

Nach Abschluss des Projekts können Sie erwarten, dass der LED-Streifen die Farben basierend auf Eingaben von einem globalen MQTT-Feed ändert. Das LCD wird den aktuellen Farbnamen und die Anzahl der Änderungen anzeigen. Wenn Sie das Internet trennen, zeigt das LCD "Verbindung wird hergestellt..." an, bis eine Verbindung wiederhergestellt ist (im Video um 12:30).

Häufige Fallstricke sind die Sicherstellung, dass die richtigen Pins für Datenverbindungen verwendet werden, und die Überprüfung, ob die Wi-Fi-Anmeldeinformationen korrekt sind. Bei Unstimmigkeiten im SSID oder Passwort wird der ESP32 keine Verbindung herstellen, und das LCD wird weiterhin die Verbindungsmeldung anzeigen.

Video-Zeiten

  • 00:00 Start
  • 1:59 Einführung in das Projekt
  • 6:16 Verkabelung erklärt
  • 8:13 Arduino-Code erklärt
  • 14:26 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
  • 16:07 CheerLight-Demonstration mit LCD

Bilder

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
esp32-52-cheer-light-lcd-main
esp32-52-cheer-light-lcd-main
cheeLights_LCD
cheeLights_LCD
853-ESP32 Tutorial 52/55- CheerLight MQTT and LCD
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.