ESP32 Tutorial 50/55 - Steuere RGB-LEDs von überall auf der Welt | SunFounder's ESP32-Kit
In diesem Tutorial werden wir lernen, wie man die Farbe einer RGB-LED mit dem ESP32-Mikrocontroller über WLAN steuert, indem wir das MQTT-Protokoll und den Adafruit IO-Dienst nutzen. Dieses Setup ermöglicht es Ihnen, die Farbe der RGB-LED von überall auf der Welt zu ändern, was eine praktische Anwendung der IoT-Technologie darstellt. Wir werden auch untersuchen, wie man Schieberegler und einen Farbwähler verwendet, um die gewünschte Farbe auszuwählen.

Der ESP32 ist ein leistungsstarker Mikrocontroller mit integrierten Wi-Fi- und Bluetooth-Funktionen, was ihn ideal für IoT-Projekte macht. In diesem Projekt werden wir eine RGB-LED mit dem ESP32 verbinden und ihre Farbe über einen MQTT-Broker von Adafruit steuern. Das Tutorial führt Sie durch die Hardware-Einrichtung, die Verkabelungsanweisungen und den Code, der notwendig ist, um alles nahtlos zum Laufen zu bringen (im Video um 00:00).
Hardware erklärt
Für dieses Projekt sind die Hauptkomponenten, die wir verwenden werden, der ESP32-Mikrocontroller und die RGB-LED. Der ESP32 ist in der Lage, sich mit Wi-Fi-Netzwerken zu verbinden, was ihm ermöglicht, mit dem Adafruit IO-Dienst zu kommunizieren. Die RGB-LED enthält drei einzelne LEDs (rot, grün und blau), die gemischt werden können, um eine Vielzahl von Farben zu erzeugen.
Die RGB-LED arbeitet nach dem Prinzip der gemeinsamen Anode oder gemeinsamen Kathode, was bedeutet, dass die Anode (positiv) oder die Kathode (negativ) der einzelnen LEDs richtig verbunden sein muss, damit sie funktionieren. Jede Farbe kann mithilfe der Pulsweitenmodulation (PWM) gesteuert werden, die die Helligkeit jeder LED durch Variieren des Tastverhältnisses anpasst.
Datenblattdetails
| Hersteller | SunFounder |
|---|---|
| Teilenummer | RGB-LED |
| Durchlassspannung (V)F) | 2,0-3,4 V |
| Vorlaufstrom (IF) | 20 mA |
| Spitzenwellenlänge (nm) | Rot: 620, Grün: 525, Blau: 465 |
| Paket | Standard 4-Pin |
| Hinweise / Varianten | Verfügbare Optionen mit gemeinsamer Anode oder gemeinsamem Katenode |
- Verwenden Sie 220-Ohm-Widerstände für jede LED-Farbe, um den Strom zu begrenzen.
- Sorgen Sie für die korrekte Verkabelung für die gemeinsame Anoden- oder Kathoden-Konfiguration.
- Überprüfen Sie die Stromversorgung des ESP32, um Spannungseinbrüche zu vermeiden.
- Halten Sie die PWM-Frequenz innerhalb der Grenzen für sanfte Farbübergänge.
- Stellen Sie sicher, dass die WLAN-Zugangsdaten korrekt sind, um eine Verbindung zum Adafruit IO-Dienst herzustellen.
Verdrahtungsanleitungen

Um die RGB-LED mit dem ESP32 zu verbinden, beginnen Sie damit, die Pins an der RGB-LED zu identifizieren. Der längste Pin ist der gemeinsame Pin. Bei einer gemeinsamen Anodenkonfiguration verbinden Sie diesen Pin mit der positiven Spannungsversorgung (3,3 V). Die anderen drei Pins entsprechen den roten, grünen und blauen LEDs. Verbinden Sie den roten Pin mit GPIO 27, den grünen Pin mit GPIO 26 und den blauen Pin mit GPIO 25. Jede dieser Verbindungen sollte über einen 220-Ohm-Widerstand erfolgen, um den Strom, der durch die LEDs fließt, zu begrenzen.
Verbinden Sie als nächstes den Ground (GND) des ESP32 mit der Ground-Leitung Ihres Schaltkreises. Stellen Sie sicher, dass die Verkabelung sicher ist, um zwischenzeitliche Verbindungen zu vermeiden. Wenn Sie eine RGB-LED mit gemeinsamer Kathode verwenden, verbinden Sie den gemeinsamen Pin stattdessen mit Ground und schließen Sie die einzelnen Farbpins über die Widerstände an die positive Versorgungsspannung an. Überprüfen Sie alle Verbindungen, bevor Sie den Schaltkreis mit Strom versorgen.
Code-Beispiele & Anleitung
Im Arduino-Code beginnen wir damit, die Pins für die roten, grünen und blauen LEDs mit den Bezeichnern zu definieren.redPin,greenPin, undbluePin. Darüber hinaus definieren wir die PWM-Kanäle für jede Farbe mitredChannel,greenChannel, undblueChannelDie PWM-Frequenz ist auf 5000 Hz bei einer 8-Bit-Auflösung eingestellt.
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
const int redChannel = 0;
const int greenChannel = 1;
const int blueChannel = 2;In dersetup()Funktion, wir initialisieren die PWM-Kanäle und verbinden die entsprechenden Pins. Wir verbinden uns auch mit dem WLAN-Netzwerk unter Verwendung der definierten Anmeldedaten und richten den MQTT-Client für die Kommunikation mit Adafruit IO ein.
void setup() {
ledcSetup(redChannel, freq, resolution);
ledcAttachPin(redPin, redChannel);
// Connect to WiFi
WiFi.begin(WLAN_SSID, WLAN_PASS);
}Die Hauptschleife überprüft die MQTT-Verbindung und verarbeitet eingehende Nachrichten. Außerdem werden die aktuellen RGB-Werte im seriellen Monitor ausgegeben. Die Farbe der LED wird basierend auf den über MQTT-Abonnements empfangenen Werten aktualisiert.
void loop() {
MQTT_connect();
mqtt.processPackets(500);
setColor();
}Für weitere Details zum vollständigen Code beziehen Sie sich bitte auf den vollständigen Code, der unter dem Artikel geladen ist.
Demonstration / Was zu erwarten ist
Sobald alles eingerichtet ist und der Code hochgeladen wurde, sollten Sie sehen, dass die RGB-LED auf Farbänderungen reagiert, die über das Adafruit IO-Dashboard vorgenommen werden. Wenn Sie die Regler für Rot, Grün und Blau anpassen, sollte die LED ihre Farbe entsprechend ändern. Wenn Sie auf Probleme stoßen, stellen Sie sicher, dass die Wi-Fi-Verbindung stabil ist und dass die MQTT-Themennamen mit denen übereinstimmen, die im Code definiert sind (im Video bei 17:30).
Häufige Fehlerquellen sind falsche Verkabelung, nicht übereinstimmende Themenbezeichnungen und das Vergessen, die richtigen Wi-Fi-Zugangsdaten einzugeben. Wenn die LED nicht leuchtet, überprüfen Sie die Widerstandsanbindungen und stellen Sie sicher, dass das ESP32 korrekt mit Strom versorgt wird.
Video-Zeitstempel
- 00:00 Start
- 2:23 Einführung in das Projekt
- 4:43 Was ist MQTT
- 7:55 Adafruit IO Einrichtung
- 14:09 Verkabelung erklärt
- 16:07 Code erklärt
- 27:03 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
- 29:12 Projektvorführung
- Was ist RGB-LED?
- 35:26 RGB-Farbe
Common Course Links
Common Course Files
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Keine Dateien verfügbar.