Përmbajtje:

IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë: 7 hapa
IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë: 7 hapa

Video: IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë: 7 hapa

Video: IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë: 7 hapa
Video: Все новые ошибки ChatGPT c которыми ты можешь столкнуться 2024, Nëntor
Anonim
IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë
IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë
IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë
IoT Made Simple: Monitorimi i Sensorëve të Shumëfishtë

Disa javë më parë, unë botova këtu një mësim rreth monitorimit të temperaturës duke përdorur një DS18B20, një sensor dixhital që komunikon mbi një autobus 1-Wire, duke dërguar të dhëna në internet me NodeMCU dhe Blynk:

IoT Made Simple: Monitorimi i Temperaturës Kudo

Por ajo që na mungoi në eksplorim, ishte një nga avantazhet e mëdha të këtij lloj sensori që është mundësia e mbledhjes së të dhënave të shumta, nga sensorë të shumtë të lidhur me të njëjtin autobus me 1 tela. Dhe, tani është koha për ta eksploruar gjithashtu.

Ne do të zgjerojmë atë që është zhvilluar në tutorialin e fundit, duke monitoruar tani dy sensorë DS18B20, të konfiguruar njëri në Celcius dhe tjetri në Fahrenheit. Të dhënat do të dërgohen në një Aplikacion Blynk, siç tregohet në bllok diagramin e mësipërm.

Hapi 1: Fatura e Materialit

  • NodeMCU ESP 12-E (*)
  • 2 Sensori i temperaturës DS18B20
  • Rezistenca 4.7K Ohms
  • Tabela e Bukës
  • Instalime elektrike

(*) Çdo lloj pajisjeje ESP mund të përdoret këtu. Më të zakonshmet janë NodeMCU V2 ose V3. Të dy do të punojnë gjithmonë mirë.

Hapi 2: Sensori i temperaturës DS18B20

Sensori i temperaturës DS18B20
Sensori i temperaturës DS18B20

Ne do të përdorim në këtë tutorial një version të papërshkueshëm nga uji të sensorit DS18B20. Veryshtë shumë e dobishme për temperaturën e largët në kushte të lagështa, për shembull në një tokë të lagësht. Sensori është i izoluar dhe mund të marrë matje deri në 125oC (Adafrut nuk rekomandon përdorimin e tij mbi 100oC për shkak të xhaketës së tij PVC kabllore).

DS18B20 është një sensor dixhital që e bën të mirë të përdoret edhe në distanca të gjata! Këta sensorë dixhitalë të temperaturës me 1 tela janë mjaft të saktë (± 0.5 ° C në pjesën më të madhe të diapazonit) dhe mund të japin deri në 12 bit saktësi nga konvertuesi dixhital në analog në bord. Ata punojnë shkëlqyeshëm me NodeMCU duke përdorur një kunj të vetëm dixhital, dhe madje mund të lidhni shumë prej tyre në të njëjtën pin, secila ka një ID unike 64-bit të djegur në fabrikë për t'i dalluar ato.

Sensori punon nga 3.0 në 5.0V, që do të thotë se mund të mundësohet drejtpërdrejt nga një prej kunjave 3.3V NodeMCU.

Sensori ka 3 tela:

  • E zezë: GND
  • E kuqe: KQV
  • E verdhë: Të dhëna me 1 tela

Këtu, mund të gjeni të dhënat e plota: Fleta e të dhënave DS18B20

Hapi 3: Lidhja e Sensorëve me NodeMCU

Lidhja e sensorëve me NodeMCU
Lidhja e sensorëve me NodeMCU
  1. Lidhni 3 telat nga secili sensor në mini Breadboard siç tregohet në foton e mësipërme. Kam përdorur lidhje speciale për të rregulluar më mirë kabllon e sensorit në të.
  2. Vini re se të dy sensorët janë paralelisht. Nëse keni më shumë se 2 sensorë, duhet të bëni të njëjtën gjë.

    • E kuqe ==> 3.3V
    • E zezë ==> GND
    • E verdhë ==> D4
  3. Përdorni një rezistencë 4.7Khm midis VCC (3.3V) dhe të dhënave (D4)

Hapi 4: Instalimi i Bibliotekave të Përvetësuara

Për të përdorur siç duhet DS18B20, do të nevojiten dy biblioteka:

  1. OneWire
  2. Temperatura Dallas

Instaloni të dy bibliotekat në depozitimin tuaj Arduino IDE Library.

Vini re se biblioteka OneWire DUHET të jetë ajo e veçanta, e modifikuar për t'u përdorur me ESP8266, përndryshe do të merrni një gabim gjatë përpilimit. Versionin e fundit do ta gjeni në lidhjen e mësipërme.

Hapi 5: Testimi i sensorëve

Testimi i sensorëve
Testimi i sensorëve

Për testimin e sensorëve, shkarkoni skedarin më poshtë nga GitHub im:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

*Test i Dërguesit të Temperaturës së Shumëfishtë**2 x OneWire Sensor: DS18B20*I lidhur me NodeMCU D4 (ose Arduino Pin 2)**Zhvilluar nga Marcelo Rovai - 25 Gusht 2017 **************** ****************************************** # #Include # përfshini #define ONE_WIRE_BUS 2 // DS18B20 në kunjin NodeMCU D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.filloj (); Serial.println ("Testimi i të dhënave të sensorit të dyfishtë"); } void loop () {float temp_0; noton temp_1; DS18B20.kërkoTemperaturat (); temp_0 = DS18B20.getTempCByIndex (0); // Sensori 0 do të kapë Temp në Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensori 0 do të kapë Temp në Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); vonesa (1000); }

Duke parë kodin e mësipërm, duhet të vërejmë se linjat më të rëndësishme janë:

temp_0 = DS18B20.getTempCByIndex (0); // Sensori 0 do të kapë Temp në Celcius

temp_1 = DS18B20.getTempFByIndex (1); // Sensori 0 do të kapë Temp në Fahrenheit

E para do të kthejë një vlerë nga Sensori [0] (shikoni "indeksin (0)") në Celcius (shikoni pjesën e kodit: "getTempC". Linja e dytë lidhet me Sensorin [1] dhe do të kthejë të dhëna në Fahrenheit. Këtu mund të keni sensorë "n" pasi keni një "indeks" të ndryshëm për secilin prej tyre.

Ngarko tani kodin në NodeMCU dhe monitoro temperaturën duke përdorur Serial Monitor.

Fotografia e mësipërme tregon rezultatin e pritur. Mbajeni secilin nga sensorët në dorën tuaj, duhet të shihni që temperatura po rritet.

Hapi 6: Përdorimi i Blynk

Duke përdorur Blynk
Duke përdorur Blynk
Duke përdorur Blynk
Duke përdorur Blynk

Pasi të filloni të kapni të dhënat e temperaturës, është koha t'i shihni ato nga kudo. Ne do ta bëjmë këtë duke përdorur Blynk. Pra, të gjitha të dhënat e kapura do të shfaqen në kohë reale në pajisjen tuaj celular dhe gjithashtu ne do të ndërtojmë një depozitë historike për këtë.

Ndiqni hapat e mëposhtëm:

  1. Krijoni një Projekt të Ri.
  2. Jepini një emër (në rastin tim "Monitor i dyfishtë i temperaturës")
  3. Zgjidhni Pajisjen e Re - ESP8266 (WiFi) si "Pajisjet e Mia"
  4. Kopjoni AUTH TOKEN që do të përdoret në kod (mund ta dërgoni në emailin tuaj).
  5. Përfshin dy pajisje shtesë "Gauge", duke përcaktuar:

    • Kunja virtuale që do të përdoret me secilin sensor: V10 (Sensori [0]) dhe V11 (Sensori [1])
    • Gama e temperaturës: -5 deri në 100 oC për Sensorin [0]
    • Gama e temperaturës: 25 deri në 212 oC për Sensorin [1]
    • Frekuenca e leximit të të dhënave: 1 sekondë
  6. Përfshin një widget "Grafiku i Historisë", që përcakton V10 dhe V11 si kunja virtuale
  7. Shtypni "Luaj" (Trekëndëshi në këndin e sipërm të djathtë)

Sigurisht, Aplikacioni Blynk do t'ju tregojë se NodeMCU është jashtë linje. Timeshtë koha për të ngarkuar kodin e plotë në Arduino IDE tuaj. Mund ta merrni këtu:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Ndryshoni "të dhënat fals" me kredencialet tuaja.

/ * Kredencialet e Blynk */

char auth = "KODI YT I BLERNKS I AUTIT KTU"; / * Kredencialet WiFi */ char ssid = "SSID YU"; char pass = "FJALA E TYE E FJALS";

Dhe kjo eshte!

Më poshtë kodi i plotë. Në thelb është kodi i mëparshëm, ku kemi hyrë me parametrat dhe funksionet specifike të Blynk. Vini re 2 rreshtat e fundit të kodit. Këto janë më të rëndësishmet këtu. Nëse keni më shumë sensorë që mbledhin të dhëna, duhet të keni edhe linja të reja ekuivalente si ato (me kunjat e reja virtuale përkatëse të përcaktuara).

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

* IoT Multiple Temperature Monitor me Blynk * Biblioteka Blynk është e licencuar nën licencën MIT * Ky kod shembull është në domenin publik. **Sensori i shumëfishtë OneWire: DS18B20*Zhvilluar nga Marcelo Rovai - 25 Gusht 2017 ******************************** ***************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Komentojeni këtë çaktivizoni printimet dhe kurseni hapësirë / * Kredencialet e Blynk * / char auth = "KODI YT TUAJ BLYNK AUTH K HTU"; / * Kredencialet WiFi */ char ssid = "SSID YU"; char pass = "FJALA E TYE E FJALS"; / * TIMER */ #include SimpleTimer timer; / * Sensori i temperaturës DS18B20 */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 në arduino pin2 korrespondon me D4 në bordin fizik 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.filloj (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Testimi i të dhënave të sensorit të dyfishtë"); } void loop () {timer.run (); // Inicon SimpleTimer Blynk.run (); } /******************************************** ****Dërgoni të dhëna të sensorit në Blynk ************************************** *********/ void getSendData () {DS18B20.requestTemperaturat (); temp_0 = DS18B20.getTempCByIndex (0); // Sensori 0 do të kapë Temp në Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensori 0 do të kapë Temp në 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); // pin virtual V10 Blynk.virtualWrite (11, temp_1); // pin virtual V11}

Pasi të ngarkohet dhe ekzekutohet kodi, kontrolloni aplikacionin Blynk. Tani duhet të funksionojë siç tregohet në ekranin e printimit të mësipërm nga iPhone tim.

Hapi 7: Përfundimi

Përfundim
Përfundim

Si gjithmonë, shpresoj se ky projekt mund të ndihmojë të tjerët të gjejnë rrugën e tyre në botën emocionuese të elektronikës, robotikës dhe IoT!

Ju lutemi vizitoni GitHub -in tim për skedarët e azhurnuar: NodeMCU Dual Temp Monitor

Për më shumë projekte, ju lutemi vizitoni blogun tim: MJRoBot.org

Saludos nga jugu i botës!

Shihemi në udhëzimin tim të ardhshëm!

Faleminderit, Marcelo

Recommended: