Satura rādītājs:
- 1. darbība. Materiālu saraksts
- 2. darbība: temperatūras sensors DS18B20
- 3. darbība: sensoru pievienošana NodeMCU
- 4. darbība. Piešķirto bibliotēku instalēšana
- 5. darbība: sensoru pārbaude
- 6. solis: Blynk izmantošana
- 7. solis. Secinājums
Video: IoT ir vienkāršs: vairāku sensoru uzraudzība: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
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
Š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
- 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.
-
Ņ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
- 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:
- OneWire
- 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
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
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.
- Izveidojiet jaunu projektu.
- Piešķiriet tam nosaukumu (manā gadījumā "Dual Temperature Monitor")
- Atlasiet Jauna ierīce - ESP8266 (WiFi) kā "Manas ierīces"
- Kopējiet kodā izmantojamo AUTH TOKEN (varat to nosūtīt uz savu e -pastu).
-
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
- Ietver logrīku "Vēstures grafiks", definējot V10 un V11 kā virtuālas tapas
- 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
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:
Wifi kontrolēts vairāku sensoru robots: 6 soļi
Wifi kontrolēts vairāku sensoru robots: šajā apmācībā es jums parādīšu, kā izveidot wifi kontrolētu viedo roveri, izmantojot nodemcu. Ar šo roveri jūs varat reāli novērot robotu apkārtnes parametrus (gaismu, temperatūru, mitrumu) laiks ar viedtālruni. pirmais pulkstenis
COVID-19 informācijas panelis (vienkāršs un vienkāršs): 4 soļi
COVID-19 informācijas panelis (vienkārši un viegli): visur ir milzīgs jaunā COVID-19 vīrusa uzliesmojums. Bija nepieciešams sekot līdzi pašreizējam Covid-19 scenārijam valstī. Tātad, būdams mājās, es domāju par šo projektu: " Informācijas informācijas panelis " - Da
Vairāku sensoru savienošana ar vienu ARDUINO UNO SERIAL PORT: 4 soļi
Vairāku sensoru savienošana ar vienu ARDUINO UNO SERIAL PORT: Šajā apmācībā mēs paplašināsim vienu Arduino UNO UART (Rx/Tx) sērijas portu, lai varētu savienot vairākus Atlas sensorus. Paplašināšana tiek veikta, izmantojot seriālā porta paplašinātāja plati 8: 1. Arduino osta ir saistīta ar paplašinātāju pēc tam, kad
VAIRĀKU SENSORU SAVIENOŠANA AR RASPBERRY PI: 6 soļi (ar attēliem)
VAIRĀKU SENSORU SAVIENOŠANA AR RASPBERRY PI: Šajā projektā mēs savienosim trīs no Atlas Scientific EZO sensoriem (pH, izšķīdušais skābeklis un temperatūra) ar Raspberry Pi 3B+. Tā vietā, lai pieslēgtu ķēdes Raspberry Pi, mēs izmantosim Whitebox Labs Tentacle T3 vairogu. T
UbiDots-ESP32 savienošana un vairāku sensoru datu publicēšana: 6 soļi
UbiDots-ESP32 savienošana un vairāku sensoru datu publicēšana: ESP32 un ESP 8266 ir ļoti pazīstami SoC IoT jomā. Tie ir sava veida svētība IoT projektiem. ESP 32 ir ierīce ar integrētu WiFi un BLE. Vienkārši norādiet savu SSID, paroli un IP konfigurāciju un integrējiet lietas