Turinys:

„IoT Made Simple“: kelių jutiklių stebėjimas: 7 žingsniai
„IoT Made Simple“: kelių jutiklių stebėjimas: 7 žingsniai

Video: „IoT Made Simple“: kelių jutiklių stebėjimas: 7 žingsniai

Video: „IoT Made Simple“: kelių jutiklių stebėjimas: 7 žingsniai
Video: Часть 5 — Аудиокнига Эдит Уортон «Дом веселья» (книга 2 — главы 06–10) 2024, Liepa
Anonim
„IoT Made Simple“: kelių jutiklių stebėjimas
„IoT Made Simple“: kelių jutiklių stebėjimas
„IoT Made Simple“: kelių jutiklių stebėjimas
„IoT Made Simple“: kelių jutiklių stebėjimas

Prieš kelias savaites čia paskelbiau pamoką apie temperatūros stebėjimą naudojant DS18B20-skaitmeninį jutiklį, kuris bendrauja per 1 laido magistralę, siunčia duomenis internetu su „NodeMCU“ir „Blynk“:

„IoT Made Simple“: temperatūros stebėjimas bet kur

Tačiau tai, ko mes praleidome tyrinėdami, buvo vienas iš didžiausių tokio tipo jutiklių privalumų, tai yra galimybė surinkti kelis duomenis iš kelių jutiklių, prijungtų prie tos pačios 1 laidų magistralės. Ir dabar atėjo laikas tai ištirti.

Mes išplėsime tai, kas buvo sukurta paskutinėje pamokoje, dabar stebime du DS18B20 jutiklius, sukonfigūruotus vieną pagal Celsijų ir kitą pagal Farenheitą. Duomenys bus siunčiami į „Blynk“programą, kaip parodyta aukščiau esančioje blokinėje diagramoje.

1 žingsnis: Sąrašas medžiagos

  • „NodeMCU ESP 12-E“(*)
  • 2 X DS18B20 temperatūros jutiklis
  • Rezistorius 4,7K omai
  • Bandomoji Lenta
  • Laidai

(*) Čia galima naudoti bet kokio tipo ESP įrenginius. Dažniausiai yra „NodeMCU V2“arba „V3“. Abu visada veiks gerai.

2 žingsnis: DS18B20 temperatūros jutiklis

DS18B20 temperatūros jutiklis
DS18B20 temperatūros jutiklis

Šioje pamokoje naudosime neperšlampamą DS18B20 jutiklio versiją. Tai labai naudinga esant nuotolinei temperatūrai drėgnomis sąlygomis, pavyzdžiui, drėgnoje dirvoje. Jutiklis yra izoliuotas ir gali atlikti matavimus iki 125oC („Adafrut“nerekomenduoja jo naudoti aukštesnėje nei 100oC temperatūroje dėl kabelio PVC apvalkalo).

„DS18B20“yra skaitmeninis jutiklis, todėl jį patogu naudoti net ir dideliais atstumais! Šie 1 laidų skaitmeniniai temperatūros jutikliai yra gana tikslūs (± 0,5 ° C didelėje diapazono dalyje) ir gali suteikti iki 12 bitų tikslumo iš įmontuoto skaitmeninio-analoginio keitiklio. Jie puikiai veikia su „NodeMCU“, naudojant vieną skaitmeninį kaištį, ir jūs netgi galite prijungti kelis prie to paties kaiščio, kiekvienas turi unikalų 64 bitų ID, įrašytą gamykloje, kad juos atskirtų.

Jutiklis veikia nuo 3,0 iki 5,0 V, o tai reiškia, kad jis gali būti maitinamas tiesiogiai iš vieno iš 3,3 V „NodeMCU“kaiščių.

Jutiklis turi 3 laidus:

  • Juoda: GND
  • Raudona: VCC
  • Geltona: 1 laido duomenys

Čia galite rasti visus duomenis: DS18B20 duomenų lapas

3 veiksmas: jutiklių prijungimas prie „NodeMCU“

Jutiklių prijungimas prie „NodeMCU“
Jutiklių prijungimas prie „NodeMCU“
  1. Prijunkite 3 laidus iš kiekvieno jutiklio prie mini duonos lentos, kaip parodyta aukščiau esančioje nuotraukoje. Norėdami geriau pritvirtinti jutiklio kabelį, naudoju specialias jungtis.
  2. Atminkite, kad abu jutikliai yra lygiagrečiai. Jei turite daugiau nei 2 jutiklius, turėtumėte daryti tą patį.

    • Raudona ==> 3.3V
    • Juoda ==> GND
    • Geltona ==> D4
  3. Naudokite 4,7 K omų rezistorių tarp VCC (3,3 V) ir duomenų (D4)

4 veiksmas: paskirstytų bibliotekų diegimas

Norint tinkamai naudoti DS18B20, reikės dviejų bibliotekų:

  1. „OneWire“
  2. Dalaso temperatūra

Įdiekite abi bibliotekas į „Arduino IDE“bibliotekos saugyklą.

Atminkite, kad „OneWire“biblioteka TURI būti speciali, pakeista naudoti su ESP8266, kitaip kompiliavimo metu gausite klaidą. Paskutinę versiją rasite aukščiau esančioje nuorodoje.

5 žingsnis: jutiklių bandymas

Jutiklių testavimas
Jutiklių testavimas

Norėdami išbandyti jutiklius, atsisiųskite žemiau esantį failą iš „GitHub“:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

*Kelių temperatūrų siuntėjo testas**2 x „OneWire“jutiklis: DS18B20*Prijungtas prie „NodeMCU D4“(arba „Arduino Pin 2“)**Sukūrė Marcelo Rovai - 2017 m. Rugpjūčio 25 d. **************** ************************************************ įtraukti #define ONE_WIRE_BUS 2 // DS18B20 ant „NodeMCU“kaiščio D4 „OneWire oneWire“(ONE_WIRE_BUS); „DallasTemperature DS18B20“(„& oneWire“); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println („Dviejų jutiklių duomenų tikrinimas“); } void loop () {float temp_0; plūdės temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Jutiklis 0 fiksuos temperatūrą Celsijaus temp_1 = DS18B20.getTempFByIndex (1); // Jutiklis 0 užfiksuos temperatūrą Farenheito serijos.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); vėlavimas (1000); }

Žvelgdami į aukščiau pateiktą kodą, turėtume pastebėti, kad svarbiausios eilutės yra šios:

temp_0 = DS18B20.getTempCByIndex (0); // Jutiklis 0 fiksuos temperatūrą Celsijaus laipsniais

temp_1 = DS18B20.getTempFByIndex (1); // Jutiklis 0 fiksuos temperatūrą Farenheitu

Pirmasis grąžins reikšmę iš jutiklio [0] (ieškokite „indekso (0)“) Celsijaus (žiūrėkite kodo dalį: „getTempC“. Antroji eilutė yra susijusi su jutikliu [1] ir grąžins duomenis Fahrenheit. Čia galite turėti „n“jutiklių, nes kiekvienam iš jų yra skirtingas „indeksas“.

Dabar įkelkite kodą į „NodeMCU“ir stebėkite temperatūrą naudodami serijinį monitorių.

Aukščiau pateikta nuotrauka rodo laukiamą rezultatą. Laikykite rankoje kiekvieną jutiklį, matysite kylančią temperatūrą.

6 žingsnis: „Blynk“naudojimas

Naudojant „Blynk“
Naudojant „Blynk“
Naudojant „Blynk“
Naudojant „Blynk“

Kai pradėsite fiksuoti temperatūros duomenis, laikas juos pamatyti iš bet kurios vietos. Mes tai padarysime naudodami „Blynk“. Taigi visi užfiksuoti duomenys bus rodomi realiuoju laiku jūsų mobiliajame įrenginyje, o mes taip pat sukursime istorinį saugyklą.

Atlikite toliau nurodytus veiksmus.

  1. Sukurkite naują projektą.
  2. Suteikite jam pavadinimą (mano atveju „Dvigubas temperatūros monitorius“)
  3. Pasirinkite „Naujas įrenginys - ESP8266 (WiFi)“kaip „Mano įrenginiai“
  4. Nukopijuokite AUTH TOKEN, kuris bus naudojamas kode (galite nusiųsti jį į savo el. Paštą).
  5. Apima du „Gauge“valdiklius, kurie apibrėžia:

    • Virtualus kaištis, naudojamas su kiekvienu jutikliu: V10 (jutiklis [0]) ir V11 (jutiklis [1])
    • Temperatūros diapazonas: nuo -5 iki 100 oC jutikliui [0]
    • Temperatūros diapazonas: nuo 25 iki 212 oC jutikliui [1]
    • Duomenų skaitymo dažnis: 1 sekundė
  6. Apima valdiklį „Istorijos diagrama“, apibrėžiantį V10 ir V11 kaip virtualius kaiščius
  7. Paspauskite „Play“(trikampis dešiniajame kampe)

Žinoma, „Blynk“programa jums pasakys, kad „NodeMCU“yra išjungtas. Atėjo laikas įkelti visą kodą į „Arduino IDE“. Jį galite gauti čia:

„NodeMCU_Dual_Sensor_Blynk_Ext.ino“

Pakeiskite „fiktyvius duomenis“naudodami savo kredencialus.

/ * „Blynk“įgaliojimai */

char auth = "JŪSŲ BLYNK AUTO KODAS ČIA"; / * „WiFi“prisijungimo duomenys */ char ssid = "JŪSŲ SSID"; char pass = "JŪSŲ Slaptažodis";

Štai ir viskas!

Žemiau rasite visą kodą. Iš esmės tai yra ankstesnis kodas, į kurį įvedėme naudodami „Blynk“parametrus ir specifines funkcijas. Atkreipkite dėmesį į 2 paskutines kodo eilutes. Čia jie yra svarbiausi. Jei turite daugiau jutiklių, renkančių duomenis, taip pat turėtumėte turėti lygiavertes naujas eilutes kaip ir tos (su atitinkamais naujais virtualiais kaiščiais).

/**************************************************************

* „IoT Multiple Temperature Monitor“su „Blynk“* „Blynk“biblioteka yra licencijuota pagal MIT licenciją * Šis pavyzdinis kodas yra viešai prieinamas. **Keli „OneWire“jutikliai: DS18B20*Sukūrė Marcelo Rovai - 2017 m. Rugpjūčio 25 d. ********************************* ****************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Komentuok tai išjungti spaudinius ir sutaupyti vietos / * „Blynk“kredencialai * / char auth = "JŪSŲ BLYNK AUTO KODAS ČIA"; / * „WiFi“prisijungimo duomenys */ char ssid = "JŪSŲ SSID"; char pass = "JŪSŲ Slaptažodis"; / * TIMER */ #įtraukti „SimpleTimer“laikmatį; / * DS18B20 temperatūros jutiklis */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 ant arduino pin2 atitinka D4 fizinėje plokštėje 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 („Dviejų jutiklių duomenų tikrinimas“); } void loop () {timer.run (); // Inicijuoja „SimpleTimer“Blynk.run (); } /*********************************************** ****Siųsti jutiklio duomenis į Blynk ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Jutiklis 0 fiksuos temperatūrą Celsijaus temp_1 = DS18B20.getTempFByIndex (1); // Jutiklis 0 užfiksuos temperatūrą Farenheito serijos.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // virtualus kaištis V10 Blynk.virtualWrite (11, temp_1); // virtualus kaištis V11}

Kai kodas bus įkeltas ir paleistas, patikrinkite „Blynk“programą. Dabar jis taip pat turėtų veikti, kaip parodyta aukščiau esančiame „iPhone“spausdinimo ekrane.

7 žingsnis: Išvada

Išvada
Išvada

Kaip visada, tikiuosi, kad šis projektas gali padėti kitiems rasti kelią įdomiame elektronikos, robotikos ir daiktų interneto pasaulyje!

Apsilankykite mano „GitHub“, kad gautumėte atnaujintų failų: „NodeMCU Dual Temp Monitor“

Norėdami gauti daugiau projektų, apsilankykite mano tinklaraštyje: MJRoBot.org

Saludos iš pasaulio pietų!

Iki pasimatymo mano kitoje pamokoje!

Ačiū, Marcelo

Rekomenduojamas: