- Erforderliche Komponenten
- Schaltplan
- DHT11 Temperatur- und Feuchtigkeitssensor
- Programmieren von NodeMCU ESP8266 Überwachung von Live-Temperatur und Luftfeuchtigkeit
Mikrocontroller verfügen über einen kleinen internen Speicher, der nicht ausreicht, um sensorgenerierte Daten für lange Zeit zu speichern. Entweder müssen Sie ein externes Speichergerät verwenden oder Sie können die Daten in einer Cloud über das Internet speichern. Außerdem wird es manchmal schwierig zu handhaben, wenn der Sensor an einem Ort mit extremen Bedingungen eingesetzt wird, an dem der Mensch ihn nicht erreichen kann, oder wenn es schwierig ist, ihn häufig zu besuchen. Um diese Art von Problemen zu beheben, prüfen wir immer, wie wir die Sensordaten in Echtzeit von jedem Ort aus überwachen möchten, ohne an diesem Ort physisch präsent zu sein.
Die Echtzeitdatenbanken können in diesem Szenario verwendet werden, in dem nur ein Controller angeschlossen werden muss, der mit dem Internet verbunden werden kann und Daten mit dem Cloud-Server austauschen kann. Die Serverdaten können bei der Überwachung des Systemverhaltens in Echtzeit, der Datenbankanalyse, der statistischen Analyse und Verarbeitung sowie der Interpretation für zukünftige Anwendungsfälle hilfreich sein. Zu diesem Zweck stehen zahlreiche IoT-Hardwareplattformen und Cloud-Plattformen zur Verfügung. Wenn Sie Schwierigkeiten haben, die richtige Plattform für Ihre IoT-Anwendung zu finden, folgen Sie dem Link.
Zuvor haben wir bereits ThingSpeak, Adafruit IO und viele andere IoT-Software behandelt. Heute werden wir ein ähnliches Projekt erstellen, bei dem wir einen Temperatur- und Feuchtigkeitssensor DHT11 und ein NodeMCU ESP8266-Modul verwenden, um Temperatur und Luftfeuchtigkeit in Echtzeit auf dem Firebase-Datenbankserver von Google zu protokollieren.
Wir werden das Projekt in zwei Abschnitte unterteilen. Zunächst beginnen wir mit dem Zusammenbau der Hardwarekomponenten und dem Hochladen der Firmware. Und zweitens werden wir Firebase verwenden, um mit NodeMCU den Austausch von Echtzeitdaten einzurichten. Wenn Sie mit ESP8266 oder Firebase noch nicht vertraut sind, befolgen Sie unser vorheriges Tutorial zur Steuerung von LED mit Firebase.
Erforderliche Komponenten
- NodeMCU ESP8266-Modul
- DHT11 Temperatur- und Feuchtigkeitssensor
Schaltplan
DHT11 Temperatur- und Feuchtigkeitssensor
Das DHT11-Modul verfügt über einen Feuchtigkeits- und Temperaturkomplex mit einem kalibrierten digitalen Signalausgang. Das DHT11-Sensormodul ist ein kombiniertes Modul zur Erfassung von Feuchtigkeit und Temperatur, das ein kalibriertes digitales Ausgangssignal liefert. DHT11 gibt uns einen sehr genauen Wert für Luftfeuchtigkeit und Temperatur und gewährleistet eine hohe Zuverlässigkeit und Langzeitstabilität. Dieser Sensor verfügt über eine resistive Feuchtemesskomponente und eine NTC-Temperaturmesskomponente mit einem eingebauten 8-Bit-Mikrocontroller, der schnell reagiert und kostengünstig ist und in einem 4-poligen einreihigen Gehäuse erhältlich ist.
Wir haben zuvor ESP12E verwendet, um die DHT11-Messwerte auf dem Webserver zu aktualisieren. Ansonsten können Sie alle DHT11-basierten Projekte überprüfen, in denen wir DHT11 verwendet haben, um eine Schnittstelle zu vielen anderen Mikrocontrollern wie Arduino, PIC, Raspberry herzustellen und Wetterstationen damit zu bauen.
Programmieren von NodeMCU ESP8266 Überwachung von Live-Temperatur und Luftfeuchtigkeit
Das vollständige Programm mit funktionierendem Video finden Sie am Ende. Hier erklären wir einige wichtige Teile des Codes.
Fügen Sie zunächst die Bibliotheken für die Verwendung von ESP8266 und Firebase hinzu.
#einschließen
Laden Sie die Bibliotheken herunter und installieren Sie sie über die folgenden Links:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Wenn Sie beim Kompilieren die Fehlermeldung erhalten, dass die Bibliothek ArduinoJson.h nicht installiert ist, installieren Sie sie bitte über den oben angegebenen Link.
Wir werden NodeMCU so programmieren, dass es alle 5 Sekunden des Intervalls Messwerte vom DHT11-Sensor auf Firebase überträgt. Wir werden einen Pfad für das Pushen von Daten festlegen. Im Moment zwei Parameter nämlich. Luftfeuchtigkeit und Temperatur werden im selben übergeordneten Pfad und im unterschiedlichen untergeordneten Pfad gesendet.
Diese beiden Parameter sind sehr wichtig für die Kommunikation mit Firebase. Durch Einstellen dieser Parameter wird der Datenaustausch zwischen ESP8266 und Firebase ermöglicht. Um diese Parameter für Ihr Projekt zu finden, folgen Sie unserem vorherigen Tutorial zum Firebase-Setup.
#define FIREBASE_HOST „your-project.firebaseio.com“ // der Projektname Adresse von id Feuerbasis #define FIREBASE_AUTH „Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN“ // der geheime Schlüssel von Feuerbasis erzeugt
Nachdem Sie die Anmeldeinformationen erfolgreich gefunden haben, ersetzen Sie einfach den obigen Code.
Geben Sie Ihre WLAN-SSID und Ihr Kennwort ein, um eine Verbindung mit Ihrem Netzwerk herzustellen.
#define WIFI_SSID "network_name" // Geben Sie Ihren privaten oder öffentlichen WLAN-Namen ein. #define WIFI_PASSWORD "password" // Passwort von wifi ssid
Definieren Sie den DHT-Daten-Pin in NodeMCU. Sie können einen beliebigen digitalen GPIO-Pin in NodeMCU verwenden.
#Definieren Sie DHTPIN D4
Die DHT-Bibliothek wurde für alle DHT-Varianten erstellt und enthält die Option, welchen DHT-Sensor Sie beispielsweise für DHT11 oder DHT22 verwenden möchten. Wählen Sie einfach den richtigen DHT-Sensor und fahren Sie fort.
#define DHTTYPE DHT11 // wähle den dht-Typ als DHT 11 oder DHT22 DHT dht (DHTPIN, DHTTYPE);
Stellen Sie eine Verbindung zum ausgewählten Wi-Fi-Netzwerk her und stellen Sie auch eine Verbindung zum Firebase-Datenbankserver her.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Beginnen Sie mit dem Lesen an Pin D4 der NodeMCU.
dht.begin ();
Nehmen Sie die Feuchtigkeits- und Temperaturwerte vom DHT-Sensor und speichern Sie sie als Float-Wert.
float h = dht.readHumidity (); // Das Ablesen von Temperatur oder Luftfeuchtigkeit dauert ca. 250 Millisekunden! float t = dht.readTemperature (); // Temperatur als Celsius lesen (Standardeinstellung)
Überprüfen Sie einfach , ob der DHT-Sensor ordnungsgemäß verdrahtet oder nicht beschädigt ist und der Controller die Messwerte von ihm ablesen kann. Wenn die Messwerte nicht angezeigt werden, ist der Sensor wahrscheinlich beschädigt. Zeigen Sie einfach eine Fehlermeldung an und kehren Sie zur erneuten Überprüfung zurück, ohne fortzufahren.
if (isnan (h) - isnan (t)) {// Überprüfen Sie, ob Lesevorgänge fehlgeschlagen sind, und beenden Sie das Programm vorzeitig (um es erneut zu versuchen). Serial.println (F ("Fehler beim Lesen vom DHT-Sensor!")); Rückkehr; }}
Drucken Sie die Sensordaten zum Debuggen im seriellen Monitor und speichern Sie die Werte für Temperatur und Luftfeuchtigkeit in Zeichenfolgenform, um diese an die Firebase zu senden. Beachten Sie auch, dass die minimale Verzögerung zwischen zwei Messwerten vom DHT11-Sensor 2 Sekunden beträgt. Verwenden Sie daher immer eine Verzögerung von mehr als 2 Sekunden. Um mehr über den DHT11 zu erfahren, können Sie in das offizielle Datenblatt schauen.
Serial.print ("Luftfeuchtigkeit:"); Serial.print (h); String fireHumid = String (h) + String ("%"); // Ganzzahlige Luftfeuchtigkeit in String-Luftfeuchtigkeit umwandeln Serial.print ("% Temperature:"); Serial.print (t); Serial.println ("° C"); String fireTemp = String (t) + String ("° C"); Verzögerung (4000);
Senden Sie zum Schluss die Temperatur- und Feuchtigkeitsdaten an die Firebase unter dem Pfad "your-project.firebaseio.com/DHT11/Humidity/".
Firebase.pushString ("/ DHT11 / Humidity", fireHumid); // Pfad einrichten und Messwerte senden Firebase.pushString ("/ DHT11 / Temperature", fireTemp); // Pfad einrichten und Messwerte senden
Sie können alle Daten in Ihrem Firebase-Konto sehen. Gehen Sie einfach zum Abschnitt " Datenbank " in " Ihr Projekt " unter " Meine Konsole " in Firebase.
Informationen zum Einrichten von Firebase zum Senden und Überwachen der Daten finden Sie in unserem vorherigen Lernprogramm.
Der vollständige Code und das Video für diese IoT-basierte Temperatur- und Feuchtigkeitsüberwachung sind unten angegeben.