Orodha ya maudhui:

IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi: Hatua 7
IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi: Hatua 7

Video: IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi: Hatua 7

Video: IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi: Hatua 7
Video: Infrared Obstacle Avoidance module for Arduino with code 2024, Novemba
Anonim
IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi
IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi
IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi
IoT Imefanywa Rahisi: Kufuatilia Sensorer Nyingi

Wiki chache zilizopita, nilichapisha hapa mafunzo juu ya ufuatiliaji wa joto ukitumia DS18B20, sensa ya dijiti inayowasiliana juu ya basi la waya 1, ikituma data kwenye wavuti na NodeMCU na Blynk:

IoT Imefanywa Rahisi: Ufuatiliaji wa Joto Mahali Pote

Lakini kile tulichokosa katika uchunguzi, ilikuwa moja ya faida kubwa ya aina hii ya sensa ambayo ni uwezekano wa kukusanya data nyingi, kutoka kwa sensorer nyingi zilizounganishwa na basi moja ya waya. Na, sasa ni wakati wa kuichunguza pia.

Tutapanua kile kilichotengenezwa kwenye mafunzo ya mwisho, tukifuatilia sasa sensorer mbili za DS18B20, iliyosanidiwa moja kwa Celcius na nyingine katika Fahrenheit. Takwimu zitatumwa kwa Programu ya Blynk, kama inavyoonyeshwa kwenye mchoro wa hapo juu.

Hatua ya 1: Muswada wa Nyenzo

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 Sensorer ya Joto
  • Resistor 4.7K Ohms
  • Mkate wa Mkate
  • Wiring

(*) Aina yoyote ya kifaa cha ESP inaweza kutumika hapa. Ya kawaida ni NodeMCU V2 au V3. Wote wawili watafanya kazi vizuri kila wakati.

Hatua ya 2: Sensor ya Joto la DS18B20

Sensor ya Joto la DS18B20
Sensor ya Joto la DS18B20

Tutatumia katika mafunzo haya toleo lisilozuiliwa na maji la sensor ya DS18B20. Ni muhimu sana kwa joto la mbali katika hali ya mvua, kwa mfano kwenye mchanga wenye unyevu. Sensor imetengwa na inaweza kuchukua vipimo hadi 125oC (Adafrut haipendekezi kuitumia zaidi ya 100oC kwa sababu ya koti yake ya PVC ya kebo).

DS18B20 ni sensa ya dijiti ambayo inafanya kuwa nzuri kutumia hata kwa umbali mrefu! Sensorer hizi za joto la dijiti 1-waya ni sawa (± 0.5 ° C juu ya anuwai nyingi) na zinaweza kutoa hadi bits 12 za usahihi kutoka kwa kibadilishaji cha dijiti-hadi-analog. Wanafanya kazi vizuri na NodeMCU kwa kutumia pini moja ya dijiti, na unaweza hata kuunganisha nyingi kwa pini moja, kila mmoja ana kitambulisho cha kipekee cha 64-bit kilichochomwa kwenye kiwanda ili kuzitofautisha.

Sensor inafanya kazi kutoka 3.0 hadi 5.0V, inamaanisha nini inaweza kuwezeshwa moja kwa moja kutoka kwa moja ya pini za 3.3V NodeMCU.

Sensor ina waya 3:

  • Nyeusi: GND
  • Nyekundu: VCC
  • Njano: 1-Waya Data

Hapa, unaweza kupata data kamili: Datasheet ya DS18B20

Hatua ya 3: Kuunganisha Sensorer kwa NodeMCU

Kuunganisha Sensorer kwa NodeMCU
Kuunganisha Sensorer kwa NodeMCU
  1. Unganisha waya 3 kutoka kila sensorer kwenye Bodi ya Mkate ndogo kama inavyoonyeshwa kwenye picha hapo juu. Nilitumia viunganisho maalum kurekebisha vizuri kebo ya kitambuzi juu yake.
  2. Kumbuka kuwa sensorer zote ziko sawa. Ikiwa una sensorer zaidi ya 2, unapaswa kufanya vivyo hivyo.

    • Nyekundu ==> 3.3V
    • Nyeusi ==> GND
    • Njano ==> D4
  3. Tumia kontena la 4.7K ohms kati ya VCC (3.3V) na Takwimu (D4)

Hatua ya 4: Kufunga Maktaba zilizotengwa

Ili kutumia DS18B20 vizuri, maktaba mbili zitahitajika:

  1. OneWire
  2. Joto la Dallas

Sakinisha maktaba zote mbili kwenye Hifadhi yako ya Maktaba ya Arduino IDE.

Kumbuka kuwa maktaba ya OneWire LAZIMA iwe ya pekee, iliyobadilishwa kutumiwa na ESP8266, vinginevyo utapata kosa wakati wa mkusanyiko. Utapata toleo la mwisho kwenye kiunga hapo juu.

Hatua ya 5: Kupima Sensorer

Kupima Sensorer
Kupima Sensorer

Kwa kupima sensorer, pakua faili hapa chini kutoka kwa GitHub yangu:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

* Jaribio la Mtumaji Joto Nyingi * * 2 x Sensor ya OneWire: DS18B20 * Imeunganishwa na NodeMCU D4 (au Arduino Pin 2) * * Iliyoundwa na Marcelo Rovai - 25 Agosti 2017 **************** ******************************************** / # pamoja # ni pamoja na #fafanua ONE_WIRE_BUS 2 // DS18B20 kwenye NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); Joto la Dallas DS18B20 (& OneWire); kuanzisha batili () {Serial.begin (115200); DS18B20. Kuanza (); Serial.println ("Kupima data ya Sensor Dual"); } kitanzi batili () {float temp_0; kuelea temp_1; DS18B20.maombiJoto (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 itachukua Temp katika Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 itachukua Temp katika Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Printa ya serial (temp_1); Serial.println ("oF"); kuchelewesha (1000); }

Kuangalia nambari iliyo hapo juu, tunapaswa kugundua kuwa mistari muhimu zaidi ni:

temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 itachukua Temp katika Celcius

temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 itachukua Temp katika Fahrenheit

Ya kwanza itarudisha thamani kutoka kwa Sensorer [0] (angalia "index (0)") katika Celcius (angalia sehemu ya nambari: "getTempC". Unaweza kuwa na sensorer hapa "n" kwa kuwa unayo "faharisi" tofauti kwa kila mmoja wao.

Pakia sasa nambari kwenye NodeMCU yako na ufuatilie hali ya joto ukitumia Monitor Serial.

Picha hapo juu inaonyesha matokeo yanayotarajiwa. Shikilia kila sensorer mkononi mwako, unapaswa kuona hali ya joto ikipanda.

Hatua ya 6: Kutumia Blynk

Kutumia Blynk
Kutumia Blynk
Kutumia Blynk
Kutumia Blynk

Mara tu unapoanza kunasa data ya joto, ni wakati wa kuiona kutoka mahali popote. Tutafanya hivyo kwa kutumia Blynk. Kwa hivyo, data zote zilizokamatwa zitaonyeshwa kwa wakati halisi kwenye kifaa chako cha rununu na pia tutaunda duka la kihistoria la hilo.

Fuata hatua zifuatazo:

  1. Unda Mradi Mpya.
  2. Ipe jina (kwa upande wangu "Dual Temperature Monitor")
  3. Chagua Kifaa kipya - ESP8266 (WiFi) kama "Vifaa vyangu"
  4. Nakili AUTH ILIYOBADILI kutumiwa kwenye nambari (unaweza kuituma kwa barua pepe yako).
  5. Inajumuisha Wijeti mbili za "Kupima", kufafanua:

    • Pini inayofaa kutumiwa na kila sensorer: V10 (Sensor [0]) na V11 (Sensor [1])
    • Kiwango cha joto: -5 hadi 100 oC kwa Sensor [0]
    • Kiwango cha joto: 25 hadi 212 oC kwa Sensor [1]
    • Masafa ya kusoma data: sekunde 1
  6. Inajumuisha Wijeti ya "Historia ya Grafu", ikifafanua V10 na V11 kama pini halisi
  7. Bonyeza "Cheza" (Pembetatu pembeni kulia)

Kwa kweli, Programu ya Blynk itakuambia kuwa NodeMCU iko nje ya mtandao. Ni wakati wa kupakia nambari kamili kwenye IDE yako ya Arduino. Unaweza kuipata hapa:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Badilisha "data ya dummy" na hati zako mwenyewe.

/ * Hati za Blynk * /

char auth = "AUTHI YAKO YA BLYNK ANA KODI HAPA"; / * Kitambulisho cha WiFi * / char ssid = "SSID YAKO"; char pass = "NENO LAKO";

Na ndio hivyo!

Bellow nambari kamili. Kimsingi ni nambari ya awali, ambapo tuliingia na vigezo vya Blynk na kazi maalum. Kumbuka mistari 2 ya mwisho ya nambari. Hizo ndizo muhimu zaidi hapa. Ikiwa una sensorer zaidi zinazokusanya data, unapaswa pia kuwa na laini mpya sawa na hizo (zilizo na pini mpya zinazoonekana).

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

* IoT Multiple Joto Monitor na Blynk * Maktaba ya Blynk ina leseni chini ya leseni ya MIT * Nambari hii ya mfano iko katika uwanja wa umma. * * Sura nyingi za OneWire: DS18B20 * Iliyotengenezwa na Marcelo Rovai - 25 Agosti 2017 *********************************. lemaza kuchapisha na uhifadhi nafasi / * hati za Blynk * / char auth = "BLYNK AUTH CODE HAPA"; / * Kitambulisho cha WiFi * / char ssid = "SSID YAKO"; char pass = "NENO LAKO"; / * TIMER * / # pamoja na Rahisi Timer timer; / * DS18B20 Sensorer ya Joto Joto la Dallas DS18B20 (& OneWire); muda temp_0; int temp_1; kuanzisha batili () {Serial.begin (115200); Blynk kuanza (auth, ssid, pass); DS18B20. Kuanza (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Kupima data ya Sensor Dual"); } kitanzi batili () {timer.run (); // Huanzisha SimpleTimer Blynk.run (); } / ************************************************ *** * Tuma data ya Sensor kwa Blynk ***************************************** ********* / utupu GetSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 itachukua Temp katika Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 itachukua Temp katika Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Printa ya serial (temp_1); Serial.println ("oF"); Blynk. VirtualWrite (10, temp_0); // pini halisi V10 Blynk. VirtualWrite (11, temp_1); // pini halisi V11}

Mara tu nambari imepakiwa na kuanza, angalia programu ya Blynk. Inapaswa kuwa sasa pia inaendesha kama inavyoonyeshwa kwenye skrini ya juu ya kuchapisha kutoka kwa iPhone yangu.

Hatua ya 7: Hitimisho

Hitimisho
Hitimisho

Kama kawaida, natumahi mradi huu unaweza kusaidia wengine kupata njia yao katika ulimwengu wa kusisimua wa umeme, roboti, na IOT!

Tafadhali tembelea GitHub yangu kwa faili zilizosasishwa: NodeMCU Dual Temp Monitor

Kwa miradi zaidi, tafadhali tembelea blogi yangu: MJRoBot.org

Saludos kutoka kusini mwa ulimwengu!

Tukutane kwenye mafunzo yangu yafuatayo!

Asante, Marcelo

Ilipendekeza: