Satura rādītājs:

IoT ir vienkāršs: vairāku sensoru uzraudzība: 7 soļi
IoT ir vienkāršs: vairāku sensoru uzraudzība: 7 soļi

Video: IoT ir vienkāršs: vairāku sensoru uzraudzība: 7 soļi

Video: IoT ir vienkāršs: vairāku sensoru uzraudzība: 7 soļi
Video: Hardware Build of LoRa Transmitter, BME280 Sensor based on Arduino ESP32 (EP08) 2024, Jūlijs
Anonim
IoT ir vienkāršs: vairāku sensoru uzraudzība
IoT ir vienkāršs: vairāku sensoru uzraudzība
IoT ir vienkāršs: vairāku sensoru uzraudzība
IoT ir vienkāršs: vairāku sensoru uzraudzība

Pirms dažām nedēļām es šeit publicēju apmācību par temperatūras uzraudzību, izmantojot DS18B20-digitālo sensoru, kas sazinās, izmantojot 1 vadu kopni, nosūtot datus internetā ar NodeMCU un Blynk:

IoT ir vienkāršs: temperatūras uzraudzība jebkurā vietā

Bet tas, ko mēs palaidām garām izpētē, bija viena no šāda veida sensoru lielajām priekšrocībām, kas ir iespēja savākt vairākus datus no vairākiem sensoriem, kas savienoti ar vienu un to pašu vadu kopni. Un tagad ir pienācis laiks to arī izpētīt.

Mēs paplašināsim to, kas tika izstrādāts pēdējā apmācībā, tagad uzraugot divus DS18B20 sensorus, kas konfigurēti pēc Celsija un otrs pēc Fārenheita. Dati tiks nosūtīti uz lietotni Blynk, kā parādīts iepriekšējā blokshēmā.

1. darbība. Materiālu saraksts

  • MezglsMCU ESP 12-E (*)
  • 2 X DS18B20 temperatūras sensors
  • Rezistors 4,7K omi
  • BreadBoard
  • Elektroinstalācija

(*) Šeit var izmantot jebkura veida ESP ierīces. Visizplatītākie ir NodeMCU V2 vai V3. Abi vienmēr darbosies labi.

2. darbība: temperatūras sensors DS18B20

DS18B20 temperatūras sensors
DS18B20 temperatūras sensors

Šajā apmācībā mēs izmantosim DS18B20 sensora hidroizolācijas versiju. Tas ir ļoti noderīgi attālai temperatūrai mitros apstākļos, piemēram, mitrā augsnē. Sensors ir izolēts un var veikt mērījumus līdz 125oC (Adafrut neiesaka to lietot virs 100oC kabeļa PVC apvalka dēļ).

DS18B20 ir digitāls sensors, kas ļauj to izmantot pat lielos attālumos! Šie 1 vadu digitālie temperatūras sensori ir diezgan precīzi (± 0,5 ° C lielā diapazonā) un var nodrošināt līdz pat 12 bitu precizitāti no iebūvētā digitālā-analogā pārveidotāja. Tie lieliski darbojas kopā ar NodeMCU, izmantojot vienu digitālo tapu, un jūs pat varat savienot vairākus ar vienu un to pašu tapu, katram no tiem rūpnīcā ir ierakstīts unikāls 64 bitu ID, lai tos atšķirtu.

Sensors darbojas no 3,0 līdz 5,0 V, kas nozīmē, ka to var darbināt tieši no vienas no 3,3 V NodeMCU tapām.

Sensoram ir 3 vadi:

  • Melns: GND
  • Sarkans: VCC
  • Dzeltens: 1 vadu dati

Šeit jūs varat atrast visus datus: DS18B20 datu lapa

3. darbība: sensoru pievienošana NodeMCU

Sensoru pievienošana NodeMCU
Sensoru pievienošana NodeMCU
  1. Pievienojiet 3 vadus no katra sensora pie mini maizes dēļa, kā parādīts iepriekš redzamajā fotoattēlā. Es izmantoju īpašus savienotājus, lai labāk nostiprinātu sensora kabeli.
  2. Ņemiet vērā, ka abi sensori atrodas paralēli. Ja jums ir vairāk nekā 2 sensori, rīkojieties tāpat.

    • Sarkans ==> 3.3V
    • Melns ==> GND
    • Dzeltens ==> D4
  3. Izmantojiet 4,7 K omu rezistoru starp VCC (3,3 V) un datiem (D4)

4. darbība. Piešķirto bibliotēku instalēšana

Lai pareizi lietotu DS18B20, būs nepieciešamas divas bibliotēkas:

  1. OneWire
  2. Dalasas temperatūra

Instalējiet abas bibliotēkas savā Arduino IDE bibliotēkas depozitārijā.

Ņemiet vērā, ka OneWire bibliotēkai IR JĀBŪT īpašajai, kas ir pārveidota, lai to lietotu kopā ar ESP8266, pretējā gadījumā apkopošanas laikā tiks parādīta kļūda. Pēdējo versiju atradīsit iepriekš minētajā saitē.

5. darbība: sensoru pārbaude

Sensoru pārbaude
Sensoru pārbaude

Lai pārbaudītu sensorus, lejupielādējiet zemāk esošo failu no mana GitHub:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

*Vairāku temperatūru sūtītāja tests**2 x OneWire sensors: DS18B20*Savienots ar NodeMCU D4 (vai Arduino Pin 2)**Izstrādājis Marcelo Rovai - 2017. gada 25. augusts **************** *********************************************** iekļaut #define ONE_WIRE_BUS 2 // DS18B20 NodeMCU tapā D4 OneWire oneWire (ONE_WIRE_BUS); Dallas Temperatūra DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Divu sensoru datu pārbaude"); } void loop () {float temp_0; pludiņa temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensors 0 uztvers temperatūru Celsija grādos temp_1 = DS18B20.getTempFByIndex (1); // Sensors 0 uztvers temperatūru pēc Fārenheita sērijas.print ("Temp_0:"); Sērijas nospiedums (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); kavēšanās (1000); }

Aplūkojot iepriekš minēto kodu, mums jāatzīmē, ka vissvarīgākās rindas ir šādas:

temp_0 = DS18B20.getTempCByIndex (0); // Sensors 0 uztvers temperatūru pēc Celsija

temp_1 = DS18B20.getTempFByIndex (1); // Sensors 0 uztvers temperatūru pēc Fārenheita

Pirmais atgriež vērtību no sensora [0] (skatiet "indeksu (0)") pēc Celsija (skatiet koda daļu: "getTempC". Otrā rinda ir saistīta ar sensoru [1] un atgriezīs datus Šeit varētu būt "n" sensori, jo katram no tiem ir atšķirīgs "indekss".

Tagad augšupielādējiet kodu savā NodeMCU un uzraugiet temperatūru, izmantojot sērijas monitoru.

Iepriekš redzamais fotoattēls parāda gaidīto rezultātu. Turiet katru no sensoriem rokā, jums vajadzētu redzēt temperatūras paaugstināšanos.

6. solis: Blynk izmantošana

Izmantojot Blynk
Izmantojot Blynk
Izmantojot Blynk
Izmantojot Blynk

Kad esat sācis uzņemt temperatūras datus, ir pienācis laiks tos redzēt no jebkuras vietas. Mēs to darīsim, izmantojot Blynk. Tātad visi iegūtie dati tiks parādīti reālā laikā jūsu mobilajā ierīcē, un mēs arī izveidosim vēsturisku depozitāriju.

Izpildiet tālāk norādītās darbības.

  1. Izveidojiet jaunu projektu.
  2. Piešķiriet tam nosaukumu (manā gadījumā "Dual Temperature Monitor")
  3. Atlasiet Jauna ierīce - ESP8266 (WiFi) kā "Manas ierīces"
  4. Kopējiet kodā izmantojamo AUTH TOKEN (varat to nosūtīt uz savu e -pastu).
  5. Ietver divus logrīkus "Gauge", kas definē:

    • Ar katru sensoru izmantojama virtuālā tapa: V10 (sensors [0]) un V11 (sensors [1])
    • Temperatūras diapazons: -5 līdz 100 oC sensoram [0]
    • Temperatūras diapazons: no 25 līdz 212 oC sensoram [1]
    • Datu nolasīšanas biežums: 1 sekunde
  6. Ietver logrīku "Vēstures grafiks", definējot V10 un V11 kā virtuālas tapas
  7. Nospiediet "Atskaņot" (trīsstūris labajā augšējā stūrī)

Protams, lietotne Blynk jums paziņos, ka NodeMCU ir izslēgts. Ir pienācis laiks augšupielādēt pilnu kodu savā Arduino IDE. To var iegūt šeit:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Mainiet “fiktīvos datus” ar saviem akreditācijas datiem.

/ * Blynk akreditācijas dati */

char auth = "JŪSU BLYNK AUTH KODS ŠEIT"; / * WiFi akreditācijas dati */ char ssid = "JŪSU SSID"; char pass = "JŪSU PAROLE";

Un tas arī viss!

Skatiet pilnu kodu. Būtībā tas ir iepriekšējais kods, kurā mēs ievadījām ar Blynk parametriem un īpašām funkcijām. Ņemiet vērā koda pēdējās 2 rindas. Tie šeit ir vissvarīgākie. Ja jums ir vairāk sensoru, kas vāc datus, jums vajadzētu būt līdzvērtīgām jaunām līnijām kā tām (ar atbilstošām jaunām virtuālajām tapām).

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

* IoT vairāku temperatūru monitors ar Blynk * Blynk bibliotēka ir licencēta saskaņā ar MIT licenci * Šis piemēra kods ir publiski pieejams. **Vairāki OneWire sensors: DS18B20*Izstrādājis Marcelo Rovai - 2017. gada 25. augusts ********************************* ****************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Komentējiet šo atspējot izdrukas un ietaupīt vietu / * Blynk akreditācijas dati * / char auth = "JŪSU BLYNK AUTH CODE ŠEIT"; / * WiFi akreditācijas dati */ char ssid = "JŪSU SSID"; char pass = "JŪSU PAROLE"; / * TIMER */ #iekļauj SimpleTimer taimeri; / * DS18B20 temperatūras sensors */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 uz arduino pin2 atbilst D4 uz fiziskās plates OneWire oneWire (ONE_WIRE_BUS); Dallas Temperatūra 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 ("Divu sensoru datu pārbaude"); } void loop () {timer.run (); // Uzsāk SimpleTimer Blynk.run (); } /*********************************************** ****Sūtīt sensora datus uz Blynk ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensors 0 uztvers temperatūru Celsija grādos temp_1 = DS18B20.getTempFByIndex (1); // Sensors 0 uztvers temperatūru pēc Fārenheita sērijas.print ("Temp_0:"); Sērijas nospiedums (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // virtuālā tapa V10 Blynk.virtualWrite (11, temp_1); // virtuālā tapa V11}

Kad kods ir augšupielādēts un darbojas, pārbaudiet lietotni Blynk. Tagad tam vajadzētu darboties, kā parādīts iepriekšējā mana iPhone drukas ekrānā.

7. solis. Secinājums

Secinājums
Secinājums

Kā vienmēr, es ceru, ka šis projekts var palīdzēt citiem atrast ceļu aizraujošajā elektronikas, robotikas un IoT pasaulē!

Lūdzu, apmeklējiet manu GitHub, lai iegūtu atjauninātus failus: NodeMCU Dual Temp Monitor

Lai iegūtu vairāk projektu, lūdzu, apmeklējiet manu emuāru: MJRoBot.org

Sveicieni no pasaules dienvidiem!

Uz tikšanos manā nākamajā pamācībā!

Paldies, Marselo

Ieteicams: