Talaan ng mga Nilalaman:

Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor: 7 Mga Hakbang
Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor: 7 Mga Hakbang

Video: Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor: 7 Mga Hakbang

Video: Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor: 7 Mga Hakbang
Video: Pagganyak na Gawain para sa Demo Teaching 2024, Nobyembre
Anonim
Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor
Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor
Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor
Ginawang Simple ang IoT: Pagsubaybay sa Maramihang Mga Sensor

Ilang linggo na ang nakalilipas, nai-publish ko dito ang isang tutorial tungkol sa pagsubaybay sa temperatura gamit ang isang DS18B20, isang digital sensor na nakikipag-usap sa isang 1-Wire bus, na nagpapadala ng data sa internet kasama ang NodeMCU at Blynk:

Ginawang Simple ang IoT: Temperatura ng Pagsubaybay Saanman

Ngunit ang napalampas namin sa paggalugad, ay isa sa mga mahusay na bentahe ng ganitong uri ng sensor na ang posibilidad ng pagkolekta ng maraming data, mula sa maraming mga sensor na konektado sa parehong 1-wire bus. At, oras na upang tuklasin din ito.

Palalawakin namin ang binuo sa huling tutorial, sinusubaybayan ngayon ang dalawang sensor ng DS18B20, naisaayos ang isa sa Celcius at ang isa pa sa Fahrenheit. Ipapadala ang data sa isang Blynk App, tulad ng ipinakita sa itaas na diagram ng block.

Hakbang 1: Bill ng Materyal

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 Temperatura Sensor
  • Resistor 4.7K Ohms
  • BreadBoard
  • Kable

(*) Ang anumang uri ng aparatong ESP ay maaaring magamit dito. Ang pinakakaraniwan ay ang NodeMCU V2 o V3. Parehas na gagana ang pareho.

Hakbang 2: Sensor ng Temperatura ng DS18B20

DS18B20 Temperatura Sensor
DS18B20 Temperatura Sensor

Gagamitin namin sa tutorial na ito ang isang hindi tinatablan ng tubig na bersyon ng sensor ng DS18B20. Napaka-kapaki-pakinabang para sa malayong temperatura sa mga basang kondisyon, halimbawa sa isang mahalumigmig na lupa. Ang sensor ay nakahiwalay at maaaring magsukat hanggang sa 125oC (hindi inirerekumenda ng Adafrut na gamitin ito nang higit sa 100oC dahil sa cable PVC jacket nito).

Ang DS18B20 ay isang digital sensor kung ano ang ginagawang mabuting gamitin kahit sa mahabang distansya! Ang mga 1-wire digital na sensor ng temperatura ay medyo tumpak (± 0.5 ° C sa higit sa saklaw) at maaaring magbigay ng hanggang 12 piraso ng katumpakan mula sa onboard na digital-to-analog converter. Gumagawa ang mga ito ng mahusay sa NodeMCU gamit ang isang solong digital pin, at maaari mo ring ikonekta ang maraming mga iyon sa parehong pin, ang bawat isa ay may natatanging 64-bit ID na sinunog sa pabrika upang makilala sila.

Gumagana ang sensor mula 3.0 hanggang 5.0V, ano ang ibig sabihin na maaari itong direktang mapagana mula sa isa sa mga 3.3V NodeMCU na pin.

Ang sensor ay may 3 mga wire:

  • Itim: GND
  • Pula: VCC
  • Dilaw: 1-Wire Data

Dito, mahahanap mo ang buong data: DS18B20 Datasheet

Hakbang 3: Pagkonekta sa Mga Sensor sa NodeMCU

Pagkonekta ng Mga Sensor sa NodeMCU
Pagkonekta ng Mga Sensor sa NodeMCU
  1. Ikonekta ang 3 mga wire mula sa bawat sensor sa mini Breadboard tulad ng ipinakita sa larawan sa itaas. Gumamit ako ng mga espesyal na konektor upang mas mahusay na ayusin ang cable ng sensor dito.
  2. Tandaan na ang parehong mga sensor ay kahanay. Kung mayroon kang higit sa 2 mga sensor, dapat mo ring gawin ang pareho.

    • Pula ==> 3.3V
    • Itim ==> GND
    • Dilaw ==> D4
  3. Gumamit ng 4.7K ohms resistor sa pagitan ng VCC (3.3V) at Data (D4)

Hakbang 4: Pag-install ng Mga Naaangkop na Aklatan

Upang magamit nang maayos ang DS18B20, kakailanganin ang dalawang aklatan:

  1. OneWire
  2. DallasTemperature

I-install ang parehong mga aklatan sa iyong Arduino IDE Library depository.

Tandaan na ang library ng OneWire ay DAPAT ang espesyal, binago upang magamit sa ESP8266, kung hindi man ay makakakuha ka ng isang error habang pinagsama-sama. Mahahanap mo ang huling bersyon sa itaas na link.

Hakbang 5: Pagsubok sa Mga Sensor

Pagsubok sa Mga Sensor
Pagsubok sa Mga Sensor

Para sa pagsubok sa mga sensor, i-download ang file sa ibaba mula sa aking GitHub:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

* Maramihang Pagsubok sa Sendor ng Temperatura * * 2 x OneWire Sensor: DS18B20 * Nakakonekta sa NodeMCU D4 (o Arduino Pin 2) * * Binuo ni Marcelo Rovai - 25 Agosto 2017 ****!!!!!! ***** isama ang # tukuyin ang ONE_WIRE_BUS 2 // DS18B20 sa NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Pagsubok ng data ng Dual Sensor"); } void loop () {float temp_0; lumutang temp_1; DS18B20.requestTemperature (); temp_0 = DS18B20.getTempCByIndex (0); // Ang Sensor 0 ay kukuha ng Temp sa Celcius temp_1 = DS18B20.getTempFByIndex (1); // Ang Sensor 0 ay kukuha ng Temp sa Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); pagkaantala (1000); }

Sa pagtingin sa code sa itaas, dapat nating mapansin na ang pinakamahalagang linya ay:

temp_0 = DS18B20.getTempCByIndex (0); // Ang Sensor 0 ay kukuha ng Temp sa Celcius

temp_1 = DS18B20.getTempFByIndex (1); // Ang Sensor 0 ay kukuha ng Temp sa Fahrenheit

Ang una ay magbabalik ng isang halaga mula sa Sensor [0] (tingnan ang "index (0)") sa Celcius (tingnan ang bahagi ng code: "getTempC". Ang pangalawang linya ay nauugnay sa Sensor [1] at ibabalik ang data sa Fahrenheit. Maaari kang magkaroon ng mga "n" sensor dahil mayroon kang ibang "index" para sa bawat isa sa kanila.

I-upload ngayon ang code sa iyong NodeMCU at subaybayan ang temperatura gamit ang Serial Monitor.

Ipinapakita ng larawan sa itaas ang inaasahang resulta. Hawakan ang bawat isa sa mga sensor sa iyong kamay, dapat mong makita ang pagtaas ng temperatura.

Hakbang 6: Paggamit ng Blynk

Gamit ang Blynk
Gamit ang Blynk
Gamit ang Blynk
Gamit ang Blynk

Sa sandaling simulan mo ang pagkuha ng data ng temperatura, oras na upang makita ito mula sa kahit saan. Gagawin namin ito gamit ang Blynk. Kaya, ang lahat ng nakuhang data ay ipapakita nang real time sa iyong mobile device at gagawa rin kami ng isang makasaysayang deposito para doon.

Sundin ang mga hakbang sa ibaba:

  1. Lumikha ng isang Bagong Project.
  2. Bigyan ito ng isang pangalan (sa aking kaso na "Dual Temperature Monitor")
  3. Piliin ang Bagong Device - ESP8266 (WiFi) bilang "Aking Mga Device"
  4. Kopyahin ang AUTH TOKEN upang magamit sa code (maaari mo itong ipadala sa iyong email).
  5. May kasamang dalawang "Gauge" na Mga Widget, na tumutukoy sa:

    • Gagamitin ang virtual pin sa bawat sensor: V10 (Sensor [0]) at V11 (Sensor [1])
    • Saklaw ng temperatura: -5 hanggang 100 oC para sa Sensor [0]
    • Saklaw ng temperatura: 25 hanggang 212 oC para sa Sensor [1]
    • Ang dalas upang basahin ang data: 1 segundo
  6. May kasamang Widget na "History Graph", na tumutukoy sa V10 at V11 bilang mga virtual na pin
  7. Pindutin ang "Play" (Ang tatsulok sa kanang sulok)

Siyempre, ipapadala sa iyo ng Blynk App na ang NodeMCU ay wala sa linya. Panahon na upang mai-upload ang buong code sa iyong Arduino IDE. Maaari mo itong makuha dito:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Baguhin ang "data ng dummy" gamit ang iyong sariling mga kredensyal.

/ * Mga kredensyal ng Blynk * /

char auth = "IYONG BLYNK AUTH CODE DITO"; / * Mga kredensyal sa WiFi * / char ssid = "IYONG SSID"; char pass = "IYONG PASSWORD";

At yun lang!

Sumunod sa buong code. Karaniwan ito ay ang nakaraang code, kung saan nagpasok kami na may mga parameter ng Blynk at mga tukoy na pag-andar. Tandaan ang 2 huling linya ng code. Iyon ang pinakamahalaga rito. Kung mayroon kang higit pang mga sensor ng pagkolekta ng data, dapat mo ring magkaroon ng katumbas ng mga bagong linya tulad ng mga iyan (na may kinalaman sa mga bagong virtual na pin na tinukoy).

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

* IoT Maramihang Monitor ng Temperatura kasama ang Blynk * Ang aklatan ng Blynk ay lisensyado sa ilalim ng lisensya ng MIT * Ang halimbawang code na ito ay nasa pampublikong domain. * * Maramihang Sensor ng OneWire: DS18B20 * Binuo ni Marcelo Rovai - 25 Agosto 2017 ***** ***** huwag paganahin ang mga kopya at makatipid ng puwang / * Mga kredensyal ng Blynk * / char auth = "IYONG BLYNK AUTH CODE DITO"; / * Mga kredensyal ng WiFi * / char ssid = "IYONG SSID"; char pass = "IYONG PASSWORD"; / * TIMER * / # isama ang SimpleTimer timer; / * DS18B20 Temperature Sensor * / #include #include #define ONE_WIRE_BUS 2 // DS18B20 sa arduino pin2 ay tumutugma sa D4 sa pisikal na board na 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 ("Pagsubok ng data ng Dual Sensor"); } void loop () {timer.run (); // Initiates SimpleTimer Blynk.run (); } / ***** *** * Magpadala ng data ng Sensor kay Blynk ************************************* ********* / void getSendData () {DS18B20.requestTemperature (); temp_0 = DS18B20.getTempCByIndex (0); // Ang Sensor 0 ay kukuha ng Temp sa Celcius temp_1 = DS18B20.getTempFByIndex (1); // Ang Sensor 0 ay kukuha ng Temp sa 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); // virtual pin V10 Blynk.virtualWrite (11, temp_1); // virtual pin V11}

Kapag na-upload at tumatakbo na ang code, suriin ang Blynk app. Dapat itong tumatakbo din ngayon tulad ng ipinakita sa itaas ng naka-print na screen mula sa aking iPhone.

Hakbang 7: Konklusyon

Konklusyon
Konklusyon

Tulad ng nakasanayan, inaasahan kong matulungan ng proyektong ito ang iba na mahanap ang kanilang paraan sa kapanapanabik na mundo ng electronics, robotics, at IoT!

Mangyaring bisitahin ang aking GitHub para sa na-update na mga file: NodeMCU Dual Temp Monitor

Para sa higit pang mga proyekto, mangyaring bisitahin ang aking blog: MJRoBot.org

Saludos mula sa timog ng mundo!

Magkita tayo sa susunod kong turo!

Salamat, Marcelo

Inirerekumendang: