INHOUDSOPGAWE:
- Stap 1: Materiaalbewys
- Stap 2: DS18B20 Temperatuursensor
- Stap 3: Koppel die sensors aan NodeMCU
- Stap 4: Die installering van die toepaslike biblioteke
- Stap 5: Toets die sensors
- Stap 6: Gebruik Blynk
- Stap 7: Gevolgtrekking
Video: IoT eenvoudig gemaak: monitering van verskeie sensors: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
'N Paar weke gelede het ek hier 'n handleiding gepubliseer oor die monitering van temperatuur met behulp van 'n DS18B20, 'n digitale sensor wat via 'n 1-draads bus kommunikeer, en data via die internet stuur met NodeMCU en Blynk:
IoT eenvoudig gemaak: monitering van temperatuur oral
Maar wat ons gemis het tydens die verkenning, was een van die groot voordele van hierdie soort sensor, wat die moontlikheid is om veelvuldige data te versamel, van verskeie sensors wat aan dieselfde 1-draadbus gekoppel is. En nou is dit tyd om dit ook te ondersoek.
Ons sal dit wat op die laaste tutoriaal ontwikkel is, uitbrei en nou twee DS18B20 -sensors monitor, die een in Celcius en die ander in Fahrenheit. Die data sal na 'n Blynk -app gestuur word, soos getoon in die blokdiagram hierbo.
Stap 1: Materiaalbewys
- NodeMCU ESP 12-E (*)
- 2 X DS18B20 Temperatuursensor
- Weerstand 4.7K ohm
- Broodbord
- Bedrading
(*) Enige tipe ESP -toestel kan hier gebruik word. Die algemeenste is die NodeMCU V2 of V3. Albei werk altyd goed.
Stap 2: DS18B20 Temperatuursensor
Ons sal in hierdie tutoriaal 'n waterdigte weergawe van die DS18B20 -sensor gebruik. Dit is baie handig vir afgeleë temperatuur in nat toestande, byvoorbeeld op 'n vogtige grond. Die sensor is geïsoleerd en kan metings neem tot 125oC (Adafrut beveel nie aan om dit meer as 100oC te gebruik nie as gevolg van die kabel -PVC -omhulsel).
Die DS18B20 is 'n digitale sensor wat dit goed maak om selfs oor lang afstande te gebruik! Hierdie 1-draads digitale temperatuursensors is redelik presies (± 0,5 ° C oor 'n groot deel van die reeks) en kan tot 12 stukkies presisie van die ingeboude digitaal-na-analoog-omskakelaar gee. Hulle werk uitstekend met die NodeMCU met behulp van 'n enkele digitale pen, en u kan selfs verskeie aan dieselfde pen koppel; elkeen het 'n unieke 64-bis-ID wat by die fabriek ingebrand is om dit te onderskei.
Die sensor werk van 3.0 tot 5.0V, wat beteken dat dit direk vanaf een van die 3.3V NodeMCU -penne kan werk.
Die sensor het 3 drade:
- Swart: GND
- Rooi: VCC
- Geel: 1-draad data
Hier vind u die volledige data: DS18B20 -datablad
Stap 3: Koppel die sensors aan NodeMCU
- Koppel die 3 drade van elke sensor op die mini -broodbord soos op die foto hierbo getoon. Ek het spesiale verbindings gebruik om die sensor se kabel beter daaraan vas te maak.
-
Let daarop dat beide sensors parallel is. As u meer as 2 sensors het, moet u dieselfde doen.
- Rooi ==> 3.3V
- Swart ==> GND
- Geel ==> D4
- Gebruik 'n weerstand van 4.7K ohm tussen VCC (3.3V) en Data (D4)
Stap 4: Die installering van die toepaslike biblioteke
Om die DS18B20 behoorlik te gebruik, is twee biblioteke nodig:
- OneWire
- Dallas temperatuur
Installeer albei biblioteke in u Arduino IDE -biblioteek.
Let daarop dat die OneWire -biblioteek die spesiale een moet wees wat aangepas is om saam met ESP8266 gebruik te word, anders kry u 'n fout tydens die opstel. U vind die laaste weergawe op die skakel hierbo.
Stap 5: Toets die sensors
Laai die onderstaande lêer van my GitHub af om die sensors te toets:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Meervoudige temperatuur sender -toets**2 x OneWire -sensor: DS18B20*gekoppel aan NodeMCU D4 (of Arduino Pin 2)**Ontwikkel deur Marcelo Rovai - 25 Augustus 2017 **************** **********************************************/ #insluit # sluit #define ONE_WIRE_BUS 2 // DS18B20 in op NodeMCU -pen D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); ongeldige opstelling () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Toets van dubbele sensor data"); } leemte lus () {float temp_0; vlot temp_1; DS18B20.versoekTemperature (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 sal Temp vang in Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 sal Temp opneem in Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); vertraging (1000); }
As ons na die kode hierbo kyk, moet ons opmerk dat die belangrikste reëls die volgende is:
temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 sal die temperatuur in Celcius opneem
temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 neem Temp in Fahrenheit vas
Die eerste een gee 'n waarde van Sensor [0] (kyk na die "indeks (0)") in Celcius terug (kyk na die gedeelte van die kode: "getTempC". Die tweede reël hou verband met Sensor [1] en sal data terugstuur in Fahrenheit. U kan hier 'n 'sensors hê, aangesien u 'n ander' indeks 'vir elkeen het.
Laai nou die kode in u NodeMCU op en monitor die temperatuur met behulp van die Serial Monitor.
Bogenoemde foto toon die verwagte resultaat. Hou elkeen van die sensors in u hand; u moet die temperatuur sien styg.
Stap 6: Gebruik Blynk
As u eers temperatuurdata begin opneem, is dit tyd om dit oral te sien. Ons doen dit met behulp van Blynk. Alle vasgelegde data word dus intyds op u mobiele toestel vertoon, en ons bou ook 'n historiese bewaarplek daarvoor.
Volg die onderstaande stappe:
- Skep 'n nuwe projek.
- Gee dit 'n naam (in my geval 'Dual Temperature Monitor')
- Kies 'n nuwe toestel - ESP8266 (WiFi) as 'My toestelle'
- Kopieer die AUTH TOKEN wat in die kode gebruik moet word (u kan dit na u e -pos stuur).
-
Bevat twee "Gauge" widgets, wat definieer:
- Virtuele pen wat met elke sensor gebruik moet word: V10 (Sensor [0]) en V11 (Sensor [1])
- Die temperatuurreeks: -5 tot 100 oC vir sensor [0]
- Die temperatuurreeks: 25 tot 212 oC vir sensor [1]
- Die frekwensie om data te lees: 1 sekonde
- Bevat 'n widget "History Graph" wat V10 en V11 definieer as virtuele penne
- Druk "Speel" (die driehoek in die regter boonste hoek)
Die Blynk -app sal u natuurlik laat weet dat die NodeMCU vanlyn is. Dit is tyd om die volledige kode na u Arduino IDE op te laai. U kan dit hier kry:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Verander die "dummy data" met u eie geloofsbriewe.
/ * Blynk geloofsbriewe */
char auth = "U BLYNK AUTH CODE HIER"; / * WiFi geloofsbriewe */ char ssid = "U SSID"; char pass = "U WAGwoord";
En dit is dit!
Lees die volledige kode. Dit is basies die vorige kode, waar ons met Blynk -parameters en spesifieke funksies ingevoer het. Let op die twee laaste reëls van die kode. Dit is die belangrikste hier. As u meer sensors het wat data versamel, moet u ook dieselfde lyne hê as dié (met relevante nuwe virtuele penne gedefinieer).
/**************************************************************
* IoT meervoudige temperatuurmonitor met Blynk * Blynk -biblioteek is gelisensieer onder MIT -lisensie * Hierdie voorbeeldkode is in die openbare domein. **Veelvuldige OneWire -sensor: DS18B20*Ontwikkel deur Marcelo Rovai - 25 Augustus 2017 ********************************** ***************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Comment this out to deaktiveer afdrukke en bespaar ruimte / * Blynk geloofsbriewe * / char auth = "U BLYNK AUTH CODE HIER"; / * WiFi geloofsbriewe */ char ssid = "U SSID"; char pass = "U WAGwoord"; / * TIMER */ #sluit SimpleTimer -timer in; / * DS18B20 Temperatuursensor */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 op arduino pin2 stem ooreen met D4 op fisiese bord OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; ongeldige opstelling () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Toets van dubbele sensor data"); } leemte -lus () {timer.run (); // Begin SimpleTimer Blynk.run (); } /************************************************ ****Stuur sensor data na Blynk ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 sal Temp vang in Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 sal Temp opneem 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); // virtuele pen V10 Blynk.virtualWrite (11, temp_1); // virtuele pen V11}
As die kode opgelaai en uitgevoer is, kyk na die Blynk -app. Dit behoort nou ook te werk soos aangedui op die boonste druk van my iPhone.
Stap 7: Gevolgtrekking
Soos altyd, hoop ek dat hierdie projek ander kan help om hul weg te vind in die opwindende wêreld van elektronika, robotika en IoT!
Besoek my GitHub vir opgedateerde lêers: NodeMCU Dual Temp Monitor
Besoek my blog vir meer projekte: MJRoBot.org
Groete uit die suide van die wêreld!
Sien jou by my volgende instruksies!
Dankie, Marcelo
Aanbeveel:
DHT -monitering van temperatuur en humiditeit met behulp van die ESP8266 en die AskSensors IoT -platform: 8 stappe
DHT -monitering van temperatuur en humiditeit met behulp van die ESP8266 en die AskSensors IoT -platform: In 'n vorige instruksie het ek 'n stap -vir -stap -gids aangebied om aan die gang te kom met die ESP8266 -nodeMCU en die AskSensors IoT -platform. In hierdie tutoriaal verbind ek 'n DHT11 -sensor na die nodus MCU. Die DHT11 is 'n algemeen gebruikte temperatuur en humidi
Monitering van 'n akkedis -terrarium met behulp van Adosia IoT WiFi -beheerder + bewegingsopsporing: 17 stappe (met foto's)
Monitering van 'n akkedis -terrarium met behulp van Adosia IoT WiFi -beheerder + bewegingsopsporing: in hierdie tutoriaal sal ons jou wys hoe om 'n eenvoudige hagedis -terrarium te bou vir 'n handjievol skink -eiers wat ons per ongeluk gevind en versteur het tydens tuinwerk buite. Ons wil hê die eiers moet veilig uitbroei, so al wat ons sal doen is om 'n veilige ruimte te skep met behulp van 'n plastiek
Die beheer van verskeie LED's met Python en die GPIO -penne van u Framboos Pi: 4 stappe (met foto's)
Die beheer van verskeie LED's met Python en die GPIO -penne van u Raspberry Pi: Hierdie instruksie demonstreer hoe u meer GPIO -penne op u RaspberryPi kan beheer om 4 LED's aan te dryf. Dit sal u ook kennis maak met parameters en voorwaardelike stellings in Python. Ons vorige instruksies met behulp van die GPIO -penne van u Raspberry Pi om
Monitering van sonpanele met behulp van deeltjiesfoton: 7 stappe
Monitering van sonpanele met behulp van deeltjiesfoton: Die doel van die projek is om die doeltreffendheid van sonpanele te verbeter. Die projek is ontwerp om toesig te hou oor fotovoltaïese kragopwekking van sonkrag om die prestasie, monitering en onderhoud van die sonkragaanleg te verbeter
Monitering van luggehalte met behulp van deeltjiesfoton: 11 stappe (met foto's)
Monitering van luggehalte met behulp van deeltjiefoton: In hierdie projek word PPD42NJ deeltjesensor gebruik om die luggehalte (PM 2.5) in die lug met Particle Photon te meet. Dit wys nie net die data op deeltjiekonsole en dweet.io nie, maar dui ook die luggehalte aan met behulp van RGB LED deur dit te verander