Sisukord:
- Samm: materjali arve
- 2. samm: temperatuuriandur DS18B20
- 3. samm: andurite ühendamine NodeMCU -ga
- 4. samm: eraldatud raamatukogude installimine
- Samm: andurite testimine
- 6. samm: Blynk'i kasutamine
- Samm 7: Järeldus
Video: IoT on lihtne: mitme anduri jälgimine: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Mõni nädal tagasi avaldasin siin õpetuse temperatuuri jälgimise kohta, kasutades digitaalset andurit DS18B20, mis suhtleb 1-juhtmelise bussi kaudu, saates andmeid Interneti kaudu koos NodeMCU ja Blynkiga:
IoT on lihtne: temperatuuri jälgimine kõikjal
Kuid see, millest me uurimisel ilma jäime, oli seda tüüpi andurite üks suur eelis, mis on võimalus koguda mitut teavet ühelt traadiga siinile ühendatud mitmelt andurilt. Ja nüüd on aeg seda ka uurida.
Laiendame eelmises juhendis väljatöötatut, jälgides nüüd kahte DS18B20 andurit, millest üks on konfigureeritud Celsiuse järgi ja teine Fahrenheiti järgi. Andmed saadetakse rakendusse Blynk, nagu on näidatud ülaltoodud plokkskeemil.
Samm: materjali arve
- SõlmMCU ESP 12-E (*)
- 2 X DS18B20 temperatuuriandur
- Takisti 4,7K oomi
- BreadBoard
- Juhtmestik
(*) Siin saab kasutada mis tahes tüüpi ESP -seadmeid. Kõige tavalisemad on NodeMCU V2 või V3. Mõlemad töötavad alati hästi.
2. samm: temperatuuriandur DS18B20
Selles õpetuses kasutame DS18B20 anduri veekindlat versiooni. See on väga kasulik kaugtemperatuuri korral märgades tingimustes, näiteks niiskel pinnasel. Andur on isoleeritud ja seda saab mõõta kuni 125 oC (Adafrut ei soovita seda kasutada üle 100 oC kaabli PVC ümbrise tõttu).
DS18B20 on digitaalne andur, mis teeb selle kasutamiseks hea isegi pikkade vahemaade tagant! Need 1-juhtmelised digitaalsed temperatuuriandurid on üsna täpsed (± 0,5 ° C suurel osal vahemikust) ja võivad pardal oleva digitaalse-analoogmuunduri abil anda kuni 12 bitti täpsust. Nad töötavad suurepäraselt koos NodeMCU-ga, kasutades ühte digitaalset tihvti, ja saate isegi ühendada mitu sama nööpnõelaga, igal neist on nende eristamiseks tehases põletatud unikaalne 64-bitine ID.
Andur töötab vahemikus 3,0 kuni 5,0 V, mis tähendab, et seda saab toita otse ühest 3,3 V NodeMCU kontaktist.
Anduril on 3 juhet:
- Must: GND
- Punane: VCC
- Kollane: 1-juhtmelised andmed
Siit leiate täielikud andmed: DS18B20 andmeleht
3. samm: andurite ühendamine NodeMCU -ga
- Ühendage iga leivalaua iga anduri 3 juhtmest, nagu on näidatud ülaltoodud fotol. Anduri kaabli paremaks kinnitamiseks kasutasin spetsiaalseid pistikuid.
-
Pange tähele, et mõlemad andurid on paralleelsed. Kui teil on rohkem kui 2 andurit, peaksite seda tegema.
- Punane ==> 3.3V
- Must ==> GND
- Kollane ==> D4
- Kasutage VCC (3.3V) ja andmete (D4) vahel 4,7K oomi takistit
4. samm: eraldatud raamatukogude installimine
DS18B20 nõuetekohaseks kasutamiseks on vaja kahte raamatukogu:
- OneWire
- Dallas Temperatuur
Installige mõlemad teegid oma Arduino IDE raamatukogu hoidlasse.
Pange tähele, et OneWire'i teek PEAB olema eriline, muudetud kasutamiseks koos ESP8266 -ga, vastasel juhul saate kompileerimise ajal vea. Viimase versiooni leiate ülaltoodud lingilt.
Samm: andurite testimine
Andurite testimiseks laadige minu GitHubist alla järgmine fail:
SõlmMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Mitu temperatuuri saatja test**2 x OneWire andurit: DS18B20*Ühendatud NodeMCU D4 (või Arduino Pin 2)**Arendanud Marcelo Rovai - 25. august 2017 **************** ********************************************/ #sisalda # lisada #define ONE_WIRE_BUS 2 // DS18B20 NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.algus (); Serial.println ("Kahe anduri andmete testimine"); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Andur 0 lööb temperatuuri Celsiuse järgi temp_1 = DS18B20.getTempFByIndex (1); // Andur 0 lööb Fahrenheiti seerias.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); viivitus (1000); }
Vaadates ülaltoodud koodi, peaksime märkama, et kõige olulisemad read on järgmised:
temp_0 = DS18B20.getTempCByIndex (0); // Andur 0 võtab temperatuuri Celsiuse järgi
temp_1 = DS18B20.getTempFByIndex (1); // Andur 0 võtab temperatuuri Fahrenheiti järgi
Esimene tagastab väärtuse andurilt [0] (vaadake "indeksit (0)") Celsiuse järgi (vaadake koodi osa: "getTempC". Teine rida on seotud anduriga [1] ja tagastab andmed Fahrenheiti kraadides. Siin võiks olla "n" andureid, kuna teil on igaühe jaoks erinev "indeks".
Laadige nüüd kood oma NodeMCU -sse üles ja jälgige jadamonitori abil temperatuuri.
Ülaltoodud foto näitab oodatud tulemust. Hoidke kõiki andureid käes, peaksite nägema temperatuuri tõusu.
6. samm: Blynk'i kasutamine
Kui hakkate temperatuuri andmeid jäädvustama, on aeg neid kõikjalt näha. Teeme seda Blynki abil. Niisiis, kõik salvestatud andmed kuvatakse teie mobiilseadmes reaalajas ja me ehitame selle jaoks ajaloolise hoidla.
Järgige alltoodud samme.
- Loo uus projekt.
- Andke sellele nimi (minu puhul "Dual Temperature Monitor")
- Valige "Minu seadmed" uus seade - ESP8266 (WiFi)
- Kopeerige koodis kasutatav AUTH TOKEN (saate selle oma e -posti aadressile saata).
-
Sisaldab kahte mõõdiku vidinat, mis määratlevad:
- Iga anduriga kasutatav virtuaalne tihvt: V10 (andur [0]) ja V11 (andur [1])
- Temperatuuri vahemik: -5 kuni 100 oC anduri [0] jaoks
- Temperatuuri vahemik: 25 kuni 212 oC anduri jaoks [1]
- Andmete lugemise sagedus: 1 sekund
- Sisaldab vidinat "Ajaloo graafik", mis määratleb V10 ja V11 virtuaalsete nööpnõeltena
- Vajutage nuppu Esita (kolmnurk paremas ülanurgas)
Loomulikult ütleb Blynk App teile, et NodeMCU on võrguühenduseta. On aeg laadida üles täielik kood oma Arduino IDE -sse. Saate selle siit:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Muutke "näivandmeid" oma mandaadiga.
/ * Blynk volikirjad */
char auth = "SINU BLYNK AUTHI KOOD SIIN"; / * WiFi volikirjad */ char ssid = "SINU SSID"; char pass = "SINU PAROOL";
Ja see ongi kõik!
Allpool on täielik kood. Põhimõtteliselt on see eelmine kood, kuhu sisestasime Blynk parameetrite ja spetsiifiliste funktsioonidega. Pange tähele koodi kahte viimast rida. Need on siin kõige olulisemad. Kui teil on rohkem andureid, mis koguvad andmeid, peaks teil olema samad uued read kui neil (koos asjakohaste uute virtuaalsete tihvtidega).
/**************************************************************
* Ily mitme temperatuuri jälgija koos Blynkiga * Blynk raamatukogu on litsentsitud MIT litsentsi alusel **Mitu OneWire andurit: DS18B20*Arendanud Marcelo Rovai - 25. august 2017 ********************************* ****************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Kommenteerige seda keela prindid ja säästa ruumi / * Blynk mandaat * / char auth = "YOUR BLYNK AUTH CODE SIIT"; / * WiFi volikirjad */ char ssid = "SINU SSID"; char pass = "SINU PAROOL"; / * TIMER */ #sisaldab SimpleTimer taimerit; / * DS18B20 temperatuuriandur */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 arduino pin2 -l vastab D4 -le füüsilisel tahvlil 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.algus (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Kahe anduri andmete testimine"); } void loop () {timer.run (); // Algatab SimpleTimer Blynk.run (); } /*********************************************** ****Saada anduri andmed Blynkile ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Andur 0 lööb temperatuuri Celsiuse järgi temp_1 = DS18B20.getTempFByIndex (1); // Andur 0 lööb Fahrenheiti seerias.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // virtuaalne pin V10 Blynk.virtualWrite (11, temp_1); // virtuaalne tihvt V11}
Kui kood on üles laaditud ja käivitatud, kontrollige rakendust Blynk. See peaks nüüd töötama ka nii, nagu on näidatud minu iPhone'i ülaltoodud prindiekraanil.
Samm 7: Järeldus
Nagu alati, loodan, et see projekt aitab teistel leida tee elektroonika, robootika ja asjade põnevas maailmas!
Palun külastage minu GitHubi värskendatud failide jaoks: NodeMCU Dual Temp Monitor
Rohkemate projektide jaoks külastage palun minu ajaveebi: MJRoBot.org
Tervitused maailma lõunaosast!
Kohtumiseni minu järgmisel juhendamisel!
Aitäh, Marcelo
Soovitan:
Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)
Jälgi ja jälgi väikestele poodidele: see on süsteem, mis on loodud väikestele kauplustele, mis peaksid olema paigaldatud e-jalgratastele või e-motorolleritele lühikese vahemaaga kohaletoimetamiseks, näiteks pagaritöökoda, mis soovib saiakesi tarnida. Mida tähendab jälgimine ja jälgimine? Jälgimine ja jälgimine on süsteem, mida kasutavad ca
MITME ANDURI ÜHENDAMINE ÜHE ARDUINO UNO SERIAL PORT -iga: 4 sammu
MITME ANDURI ÜHENDAMINE ÜHE ARDUINO UNO SERIAL PORT -iga: Selles õpetuses laiendame ühte Arduino UNO UART (Rx/Tx) jadapordi, et saaks ühendada mitu Atlase andurit. Laiendamine toimub 8: 1 jadapordi laiendusplaadi abil. Arduino sadam on laiendajaga seotud pärast seda, kui
UbiDots-ESP32 ühendamine ja mitme anduri andmete avaldamine: 6 sammu
UbiDots-ESP32 ühendamine ja mitme anduri andmete avaldamine: ESP32 ja ESP 8266 on IoT valdkonnas väga tuttavad SoC-d. Need on omamoodi õnnistuseks asjade Interneti projektidele. ESP 32 on integreeritud WiFi ja BLE -ga seade. Lihtsalt sisestage oma SSID, parool ja IP -konfiguratsioonid ning integreerige asjad
Anduri väärtuse reaalajas jälgimine kõikjal maailmas: 4 sammu
Anduri väärtuse reaalajas jälgimine kõikjalt maailmast: sain sõnumi tehnikute WhatsAppi numbri kohta, mis puudutas abi ühe projekti tegemisel. Projekt pidi mõõtma rõhuandurile avaldatavat survet ja kuvama selle nutitelefonis. Nii aitasin seda projekti teha ja otsustasin teha juhendaja
Tfcd 3D -liikumise jälgimine läbi mahtuvusliku anduri ja LED -väljundi: 6 sammu (piltidega)
Tfcd 3D -liikumise jälgimine läbi mahtuvusanduri ja LED -väljundi: selles juhendis selgitatakse, kuidas käe liikumist saab 3D -ruumis jälgida, kasutades mahtuvusliku tuvastamise põhimõtet. Kui muudate laetud alumiiniumfooliumi ja käe vahelist kaugust, muutub kondensaatori võimsus