ESP32 Tutorial 48/55 - Fernüberwachung der Temperatur und LED-Steuerung MQTT | SunFounder's ESP32 IoT-Kit
In diesem Tutorial werden wir untersuchen, wie man das ESP32-Modul in Kombination mit der ESP32-Erweiterungsplatine von SunFounder nutzen kann, um Temperatur und Luftfeuchtigkeit aus der Ferne über die Adafruit IO-Plattform zu überwachen. Darüber hinaus werden wir die Funktionalität implementieren, um eine LED über eine Weboberfläche zu steuern. Am Ende dieses Projekts wird es Ihnen möglich sein, Echtzeitdaten zu Temperatur und Luftfeuchtigkeit einzusehen und eine LED über Ihren Browser ein- und auszuschalten.
Dieses Projekt nutzt das MQTT-Protokoll für eine effiziente Kommunikation zwischen dem ESP32 und dem Adafruit IO-Dienst. MQTT ist leichtgewichtig und gut geeignet für IoT-Anwendungen, was es uns ermöglicht, Sensordaten einfach zu veröffentlichen und Befehle zur LED-Steuerung zu abonnieren. Für weitere Erläuterungen zum Code und zur Verkabelung schauen Sie sich unbedingt das begleitende Video zu diesem Tutorial an (im Video bei :00).
Hardware erklärt
Die Hauptkomponenten für dieses Projekt umfassen den ESP32-Mikrocontroller, einen DHT11-Temperatur- und Feuchtigkeitssensor sowie eine LED. Der ESP32 ist ein leistungsstarker Mikrocontroller, der über integrierte Wi-Fi- und Bluetooth-Funktionen verfügt, wodurch er eine ideale Wahl für IoT-Projekte ist. Er kann mehrere Aufgaben erledigen und nahtlos mit dem Internet verbunden werden.
Der DHT11-Sensor ist verantwortlich für die Messung von Temperatur und Feuchtigkeit. Er gibt digitale Signale aus, die vom ESP32 gelesen werden können. Die LED dient als Indikator und kann aus der Ferne gesteuert werden, um die Effektivität des MQTT-Protokolls bei der Verwaltung von Geräten über das Internet zu demonstrieren.
Datenblattdetails
| Hersteller | Adafruit |
|---|---|
| Teilenummer | DHT11 |
| Logik/IO-Spannung | 3,3 V |
| Versorgungsspannung | 3,3 V |
| Ausgangsstrom (pro Kanal) | 20 mA |
| Spitzenstrom (pro Kanal) | 50 mA |
| PWM-Frequenzleitfaden | N/A |
| Eingangslogikschwellen | 0,3 V (niedrig), 0,7 V (hoch) |
| Spannungsabfall / RDS(on)/ Sättigung | N/A |
| Thermische Grenzen | 0 bis 50 °C |
| Paket | 3-polig |
| Hinweise / Varianten | Verwenden Sie DHT22 für höhere Genauigkeit. |
- Stellen Sie die korrekte Verkabelung sicher, um Schäden zu vermeiden.
- Verwenden Sie einen 220-Ohm-Widerstand mit der LED zur Strombegrenzung.
- Verwenden Sie bei Bedarf Pull-up-Widerstände für den Datenpin des DHT11.
- Überprüfen Sie die Wi-Fi-Anmeldeinformationen auf Groß- und Kleinschreibung.
- Überwachen Sie die serielle Ausgabe zur Fehlersuche bei Verbindungsproblemen.
- Halten Sie MQTT-Themen einzigartig, um Konflikte zu vermeiden.
- Testen Sie die Sensorwerte, um sicherzustellen, dass sie gültig sind.
- Seien Sie vorsichtig mit der Reaktionszeit des DHT11; es kann einige Zeit dauern, bis die Werte stabil sind.
LED= Steuer-LED;temperature= Temperaturdaten veröffentlichen;humidity= veröffentliche Feuchtigkeitsdaten.
Verdrahtungsanweisungen
Um die Komponenten zu verdrahten, beginnen Sie mit der Verbindung des DHT11-Sensors. Verbinden Sie den linken Pin des DHT11 mit der 3,3V-Stromschiene auf dem Breadboard mithilfe eines roten Drahtes. Der mittlere Pin des DHT11 sollte mit Pin 13 des ESP32 mittels eines gelben Drahts verbunden werden. Schließlich verbinden Sie den rechten Pin des DHT11 mit der Masseführung mithilfe eines blauen Drahts.
Als Nächstes verbinden Sie für die LED die Anode (langer Fuß) über einen 220 Ohm Widerstand mit Pin 15 des ESP32. Verbinden Sie die Kathode (kurzer Fuß) direkt mit der Masseleitung auf dem Breadboard. Stellen Sie sicher, dass alle Verbindungen sicher sind, und überprüfen Sie, ob lose Drähte vorhanden sind.
Dashboard einrichten
-
BesuchenAdafruit IO, dann klicken Sie aufJetzt kostenlos startenein kostenloses Konto erstellen.

-
Füllen Sie das Formular aus, um ein Konto zu erstellen.

-
Nachdem Sie ein Adafruit-Konto erstellt haben, müssen Sie Adafruit io erneut öffnen. Klicken Sie auf dieDashboards, dann klicken Sie aufNeues Dashboard.

-
Erstellen Sie einNeues Dashboard.

-
Geben Sie die neu erstellte einDashboardund erstelle einen neuen Block.

-
Erstellen Sie 1UmschaltenBlock.

-
Als nächstes müssen Sie hier ein neues Feed erstellen. Dieser Schalter wird verwendet, um die LED zu steuern, und wir werden dieses Feed "LED" nennen.

-
Überprüfen Sie dieLEDfüttern, dann zum nächsten Schritt übergehen.

-
Vervollständigen Sie die Blockeinstellungen (hauptsächlich Blocktitel, An-Text und Aus-Text), und klicken Sie dann auf dieBlock erstellenTaste unten rechts, um abzuschließen.

-
Wir müssen auch zwei erstellen.Textblöckenächste. Sie werden verwendet, um Temperatur und Luftfeuchtigkeit anzuzeigen. Erstellen Sie also zwei Feeds mit den NamenTemperaturundLuftfeuchtigkeit.

-
Nach der Erstellung sollte Ihr Dashboard ungefähr so aussehen:

-
Sie können das Layout anpassen, indem Sie dieLayout bearbeitenOption auf dem Dashboard.

-
Klicken Sie aufAPI-SCHLÜSSEL, und Sie werden Ihren Benutzernamen sehen undAPI-SCHLÜSSELNotieren Sie diese, da Sie sie für Ihren Code benötigen.

Code Beispiele & Anleitung
Der Code beginnt mit dem Einbinden der notwendigen Bibliotheken, dem Einrichten der WLAN-Zugangsdaten und der Definition der MQTT-Parameter. Wichtige Kennungen wieAIO_USERNAMEundAIO_KEYwerden verwendet, um sich beim Adafruit IO-Dienst zu authentifizieren.
#define AIO_USERNAME "YourUsername"
#define AIO_KEY "YourKey"Diese Zeilen definieren Ihren Adafruit IO-Benutzernamen und -Schlüssel, die für die Verbindung zum MQTT-Broker unerlässlich sind. Stellen Sie sicher, dass diese Werte korrekt sind, um eine erfolgreiche Verbindung herzustellen.
In dersetup()Die Funktion, die Wi-Fi-Verbindung wird initialisiert und der MQTT-Client wird mit dem Root-CA-Zertifikat für eine sichere Kommunikation eingerichtet.
WiFi.begin(WLAN_SSID, WLAN_PASS);
client.setCACert(adafruitio_root_ca);Dieser Code verbindet den ESP32 mit dem angegebenen Wi-Fi-Netzwerk und legt das Root-CA für sichere MQTT-Verbindungen fest. Eine ordnungsgemäße Handhabung dieser Verbindungen ist entscheidend für eine zuverlässige Datenübertragung.
Schließlich, dasloop()Die Funktion verwaltet die MQTT-Verbindung und veröffentlicht Temperatur- und Feuchtigkeitsmessungen in regelmäßigen Abständen.
mqtt.processPackets(5000);Diese Zeile ermöglicht es dem ESP32, eingehende Nachrichten für abonnierte Themen zu verarbeiten, sodass das Gerät auf Befehle, die von der Weboberfläche gesendet werden, reaktionsfähig bleibt.
Für den vollständigen Code verweisen Sie bitte auf das gesamte Programm, das unter dem Artikel geladen ist.
Demonstration / Was Sie erwarten können
Bei erfolgreichem Setup sollten Sie in Ihrem Adafruit IO-Dashboard Echtzeitaktualisierungen der Temperatur und Luftfeuchtigkeit sehen. Sie können auch die LED über die Weboberfläche ein- und ausschalten. Wenn die LED nicht wie erwartet reagiert, überprüfen Sie Ihre Verkabelung und stellen Sie sicher, dass die MQTT-Themenbezeichnungen mit denen im Code definierten übereinstimmen.
Seien Sie sich bewusst, dass bestimmte MQTT-Verbindungsfehler aufgrund abgelaufener Zertifikate auftreten können. Stellen Sie sicher, dass Sie das neueste Root-CA-Zertifikat in Ihrem Code haben, um diese Probleme zu vermeiden (im Video um 15:30).
Video-Zeiten
- 00:00 Start
- 1:50 Einführung in das Projekt
- 3:16 Was ist MQTT
- 6:36 Adafruit IO Einrichtung
- 11:13 Verdrahtung
- 13:38 Arduino-Code erklärt
- 22:03 Auswahl des ESP32-Boards und des COM-Ports
- 23:44 Projektdemonstration
- 27:05 Dashboard wird aktualisiert
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
Dokumentation
Dateien📁
Keine Dateien verfügbar.