Inhaltsverzeichnis:
- Schritt 1: Stückliste
- Schritt 2: DS18B20 Temperatursensor
- Schritt 3: Anschließen der Sensoren an NodeMCU
- Schritt 4: Installieren der entsprechenden Bibliotheken
- Schritt 5: Testen der Sensoren
- Schritt 6: Verwenden von Blynk
- Schritt 7: Fazit
Video: IoT leicht gemacht: Überwachung mehrerer Sensoren - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Vor einigen Wochen habe ich hier ein Tutorial zur Temperaturüberwachung mit einem DS18B20 veröffentlicht, einem digitalen Sensor, der über einen 1-Wire-Bus kommuniziert und Daten über das Internet mit NodeMCU und Blynk sendet:
IoT leicht gemacht: Temperatur überall überwachen
Was wir jedoch bei der Erforschung vermisst haben, war einer der großen Vorteile dieser Art von Sensor, nämlich die Möglichkeit, mehrere Daten von mehreren Sensoren zu sammeln, die an denselben 1-Wire-Bus angeschlossen sind. Und jetzt ist es an der Zeit, es auch zu erkunden.
Wir werden das, was im letzten Tutorial entwickelt wurde, erweitern und jetzt zwei DS18B20-Sensoren überwachen, einen in Celsius und den anderen in Fahrenheit konfiguriert. Die Daten werden an eine Blynk-App gesendet, wie im obigen Blockschaltbild gezeigt.
Schritt 1: Stückliste
- KnotenMCU ESP 12-E (*)
- 2 X DS18B20 Temperatursensor
- Widerstand 4,7K Ohm
- Brotbrett
- Verdrahtung
(*) Hier kann jede Art von ESP-Gerät verwendet werden. Am gebräuchlichsten sind die NodeMCU V2 oder V3. Beides wird immer gut funktionieren.
Schritt 2: DS18B20 Temperatursensor
In diesem Tutorial verwenden wir eine wasserdichte Version des DS18B20-Sensors. Es ist sehr nützlich für abgelegene Temperaturen unter nassen Bedingungen, zum Beispiel auf einem feuchten Boden. Der Sensor ist isoliert und kann bis 125 °C messen (Adafrut empfiehlt aufgrund des PVC-Mantels des Kabels nicht, ihn über 100 °C zu verwenden).
Der DS18B20 ist ein digitaler Sensor, der auch über große Distanzen gut zu verwenden ist! Diese digitalen 1-Draht-Temperatursensoren sind ziemlich genau (±0,5 °C über einen Großteil des Bereichs) und können bis zu 12 Bit Präzision vom integrierten Digital-Analog-Wandler liefern. Sie funktionieren hervorragend mit der NodeMCU mit einem einzigen digitalen Pin, und Sie können sogar mehrere an denselben Pin anschließen. Jeder hat eine einzigartige 64-Bit-ID, die werkseitig eingebrannt ist, um sie zu unterscheiden.
Der Sensor arbeitet von 3,0 bis 5,0 V, was bedeutet, dass er direkt von einem der 3,3 V NodeMCU-Pins mit Strom versorgt werden kann.
Der Sensor hat 3 Drähte:
- Schwarz: GND
- Rot: VCC
- Gelb: 1-Draht-Daten
Hier finden Sie die vollständigen Daten: DS18B20 Datenblatt
Schritt 3: Anschließen der Sensoren an NodeMCU
- Schließen Sie die 3 Drähte von jedem Sensor am Mini-Breadboard an, wie auf dem obigen Foto gezeigt. Ich habe spezielle Stecker verwendet, um das Kabel des Sensors besser daran zu befestigen.
-
Beachten Sie, dass beide Sensoren parallel sind. Wenn Sie mehr als 2 Sensoren haben, sollten Sie dasselbe tun.
- Rot ==> 3.3V
- Schwarz ==> GND
- Gelb ==> D4
- Verwenden Sie einen 4,7K Ohm Widerstand zwischen VCC (3,3V) und Daten (D4)
Schritt 4: Installieren der entsprechenden Bibliotheken
Um das DS18B20 richtig zu verwenden, werden zwei Bibliotheken benötigt:
- OneWire
- DallasTemperatur
Installieren Sie beide Bibliotheken in Ihrem Arduino IDE-Bibliotheksdepot.
Beachten Sie, dass die OneWire-Bibliothek die spezielle sein MUSS, die für die Verwendung mit ESP8266 modifiziert wurde, andernfalls erhalten Sie während der Kompilierung einen Fehler. Die letzte Version finden Sie unter obigem Link.
Schritt 5: Testen der Sensoren
Laden Sie zum Testen der Sensoren die folgende Datei von meinem GitHub herunter:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
* Mehrfachtemperatur-Sendertest * * 2 x OneWire Sensor: DS18B20 * Verbunden mit NodeMCU D4 (oder Arduino Pin 2) * * Entwickelt von Marcelo Rovai - 25. August 2017 **************** **********************************************/ #enthalten # enthalten #define ONE_WIRE_BUS 2 // DS18B20 auf NodeMCU-Pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); Void setup () { Serial.begin (115200); DS18B20.begin(); Serial.println ("Testen von Dual-Sensor-Daten"); aufrechtzuerhalten. Void Schleife () { Float temp_0; Schwimmertemp_1; DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 erfasst Temp in Celsius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 erfasst Temp in Fahrenheit Serial.print ("Temp_0: "); Serial.print (temp_0); Serial.print (" oC. Temp_1: "); Serial.print (temp_1); Serial.println("oF"); Verzögerung (1000); }
Wenn wir uns den obigen Code ansehen, sollten wir feststellen, dass die wichtigsten Zeilen sind:
temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 erfasst die Temperatur in Celsius
temp_1 = DS18B20.getTempFByIndex(1); // Sensor 0 erfasst die Temperatur in Fahrenheit
Die erste gibt einen Wert von Sensor [0] zurück (siehe "index(0)") in Celcius (siehe den Teil des Codes: "getTempC". Die zweite Zeile bezieht sich auf Sensor[1] und gibt Daten zurück in Fahrenheit Sie könnten hier "n" Sensoren haben, da Sie für jeden einen anderen "Index" haben.
Laden Sie jetzt den Code in Ihre NodeMCU hoch und überwachen Sie die Temperatur mit dem Serial Monitor.
Das obige Foto zeigt das erwartete Ergebnis. Halten Sie jeden der Sensoren in der Hand, Sie sollten sehen, wie die Temperatur steigt.
Schritt 6: Verwenden von Blynk
Sobald Sie mit der Erfassung von Temperaturdaten beginnen, ist es an der Zeit, sie von überall aus anzuzeigen. Wir werden dies mit Blynk tun. So werden alle erfassten Daten in Echtzeit auf Ihrem mobilen Gerät angezeigt und wir bauen dafür auch ein historisches Depot.
Befolgen Sie die folgenden Schritte:
- Erstellen Sie ein neues Projekt.
- Geben Sie ihm einen Namen (in meinem Fall "Dual Temperature Monitor")
- Wählen Sie Neues Gerät - ESP8266 (WiFi) als "Meine Geräte"
- Kopieren Sie das im Code zu verwendende AUTH-TOKEN (Sie können es an Ihre E-Mail-Adresse senden).
-
Enthält zwei "Gauge"-Widgets, die Folgendes definieren:
- Mit jedem Sensor zu verwendender virtueller Pin: V10 (Sensor[0]) und V11 (Sensor[1])
- Der Temperaturbereich: -5 bis 100 oC für Sensor [0]
- Der Temperaturbereich: 25 bis 212 oC für Sensor [1]
- Die Häufigkeit zum Lesen von Daten: 1 Sekunde
- Enthält ein Widget "History Graph", das V10 und V11 als virtuelle Pins definiert
- Drücken Sie "Play" (Das Dreieck in der rechten oberen Ecke)
Natürlich teilt Ihnen die Blynk App mit, dass die NodeMCU offline ist. Es ist Zeit, den vollständigen Code in Ihre Arduino-IDE hochzuladen. Sie können es hier bekommen:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Ändern Sie die "Dummy-Daten" mit Ihren eigenen Zugangsdaten.
/* Blyn-Anmeldeinformationen */
char auth = "IHR BLYNK-AUTH-CODE HIER"; /* WLAN-Zugangsdaten */ char ssid = "IHRE SSID"; char pass = "IHR PASSWORT";
Und das ist es!
Unten den vollständigen Code. Es ist im Grunde der vorherige Code, den wir mit Blynk-Parametern und spezifischen Funktionen eingegeben haben. Beachten Sie die 2 letzten Zeilen des Codes. Das sind die wichtigsten hier. Wenn Sie mehr Sensoren haben, die Daten sammeln, sollten Sie auch äquivalente neue Leitungen wie diese haben (mit entsprechenden neuen virtuellen Pins definiert).
/**************************************************************
* IoT Multiple Temperature Monitor mit Blynk * Die Blynk-Bibliothek ist unter der MIT-Lizenz lizenziert * Dieser Beispielcode ist gemeinfrei. * * Mehrere OneWire-Sensoren: DS18B20 * Entwickelt von Marcelo Rovai - 25. August 2017 ********************************* **************************/ /* ESP & Blynk */ #include #include #define BLYNK_PRINT Serial // Auskommentieren an Drucke deaktivieren und Speicherplatz sparen /* Blynk-Anmeldeinformationen */ char auth = "IHR BLYNK-AUTH-CODE HIER"; /* WLAN-Zugangsdaten */ char ssid = "IHRE SSID"; char pass = "IHR PASSWORT"; /* TIMER */ #include SimpleTimer-Timer; /* DS18B20 Temperatursensor */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 auf Arduino Pin2 entspricht D4 auf der physischen Platine OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); int temp_0; int temp_1; Void setup () { Serial.begin (115200); Blynk.begin(auth, ssid, pass); DS18B20.begin(); timer.setInterval(1000L, getSendData); Serial.println(" "); Serial.println ("Testen von Dual-Sensor-Daten"); aufrechtzuerhalten. Void Schleife () {timer.run (); // Initiiert SimpleTimer Blynk.run(); } /**************************************************** *** * Sensordaten an Blynk senden ********************************************* *********/void getSendData() { DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 erfasst Temp in Celsius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 erfasst Temp in Fahrenheit Serial.print ("Temp_0: "); Serial.print (temp_0); Serial.print (" oC. Temp_1: "); Serial.print (temp_1); Serial.println("oF"); Blynk.virtualWrite(10, temp_0); // virtueller Pin V10 Blynk.virtualWrite (11, temp_1); // virtueller Pin V11}
Sobald der Code hochgeladen wurde und ausgeführt wird, überprüfen Sie die Blynk-App. Es sollte jetzt auch auf meinem iPhone laufen, wie auf dem obigen Druckbildschirm gezeigt.
Schritt 7: Fazit
Wie immer hoffe ich, dass dieses Projekt anderen helfen kann, sich in der aufregenden Welt der Elektronik, Robotik und des IoT zurechtzufinden!
Bitte besuchen Sie meinen GitHub für aktualisierte Dateien: NodeMCU Dual Temp Monitor
Für weitere Projekte besuchen Sie bitte meinen Blog: MJRoBot.org
Saludos aus dem Süden der Welt!
Wir sehen uns bei meinem nächsten instructable!
Dankeschön, Marcelo
Empfohlen:
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg
COVID-19-Dashboard (einfach & leicht): 4 Schritte
COVID-19-Dashboard (einfach & leicht): Überall gibt es einen riesigen Ausbruch des neuartigen COVID-19-Virus. Es wurde notwendig, das aktuelle Szenario von COVID-19 im Land im Auge zu behalten. Zu Hause dachte ich an folgendes Projekt: "Ein Informations-Dashboard" - Ein Da
So fügen Sie IOT-Funktionen zu Ihren Projekten hinzu – wikiHow
So fügen Sie Ihren Projekten IOT-Funktionen hinzu: Nichts ist besser, als ein DIY-Projekt zu erstellen, das ein kommerzielles Produkt ersetzt, das Sie für nützlich halten. Nun, eigentlich gibt es etwas Besseres. Hinzufügen von IOT-Fähigkeiten zu Ihrem Projekt. Wenn es um Automatisierung geht, flippen Anfänger in der Regel aus
LTE CAT-M1 GSM IoT Sensors Network T - 15 Minuten.: 5 Schritte
LTE CAT-M1 GSM IoT Sensors Network… T - 15 Minuten.: Am 08. April 2018 gab R&D Software Solutions srl [itbrainpower.net] der Öffentlichkeit die Ankündigung des xyz-mIoT von itbrainpower.net Shield bekannt - das erste und kompakteste IoT-Board, das die Vielseitigkeit der ARM0-Mikrosteuerung kombiniert
Verwendung von Mikrocontrollern zum Betrieb und zur Überwachung des Fernbewässerungssystems : 4 Schritte
Einsatz von Mikrocontrollern zum Betrieb und zur Überwachung des Fernbewässerungssystems : Landwirte und Gewächshausbetreiber für ein kostengünstiges automatisches Bewässerungssystem. In diesem Projekt integrieren wir einen elektronischen Bodenfeuchtesensor mit einem Mikrocontroller, um Pflanzen automatisch ohne menschliches Zutun zu bewässern, wenn der Boden zu trocken ist