Բովանդակություն:
- Քայլ 1: Նյութի հաշիվ
- Քայլ 2: DS18B20 peratերմաստիճանի տվիչ
- Քայլ 3. Սենսորների միացում NodeMCU- ին
- Քայլ 4: Տեղադրված գրադարանների տեղադրում
- Քայլ 5: Սենսորների փորձարկում
- Քայլ 6: Blynk- ի օգտագործումը
- Քայլ 7: Եզրակացություն
Video: IoT- ն պարզեցված է. Մոնիտորինգի բազմաթիվ սենսորներ `7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Մի քանի շաբաթ առաջ ես այստեղ հրատարակեցի ձեռնարկ ՝ ջերմաստիճանի մոնիտորինգի վերաբերյալ ՝ օգտագործելով DS18B20 ՝ թվային տվիչ, որը հաղորդակցվում է 1-Wire ավտոբուսով ՝ ինտերնետով տվյալներ ուղարկելով NodeMCU- ի և Blynk- ի հետ.
IoT պարզեցված. Monitorերմաստիճանի մոնիտորինգ ցանկացած վայրում
Սակայն այն, ինչ մենք բաց թողեցինք հետազոտության ժամանակ, այս տեսակի սենսորների մեծ առավելություններից մեկն էր, որը մի քանի տվյալների հավաքման հնարավորությունն է `միևնույն 1-լարանի ավտոբուսին միացված բազմաթիվ սենսորներից: Եվ հիմա ժամանակն է նաև ուսումնասիրել այն:
Մենք կընդլայնենք այն, ինչ մշակվել է վերջին ձեռնարկի ընթացքում ՝ այժմ վերահսկելով երկու DS18B20 տվիչ, մեկը կազմաձևված է elելսիուսում, իսկ մյուսը ՝ Ֆարենհեյթում: Տվյալները կուղարկվեն Blynk հավելվածին, ինչպես ցույց է տրված վերը նշված բլոկ -դիագրամում:
Քայլ 1: Նյութի հաշիվ
- NodeMCU ESP 12-E (*)
- 2 X DS18B20 ջերմաստիճանի տվիչ
- Ռեզիստոր 4.7K Օմ
- Հացի տախտակ
- Հաղորդալարեր
(*) Այստեղ կարող են օգտագործվել ցանկացած տեսակի ESP սարքեր: Առավել տարածված են NodeMCU V2 կամ V3- ը: Երկուսն էլ միշտ լավ կաշխատեն:
Քայլ 2: DS18B20 peratերմաստիճանի տվիչ
Այս ձեռնարկում մենք կօգտագործենք DS18B20 տվիչի անջրանցիկ տարբերակ: Այն շատ օգտակար է հեռավոր ջերմաստիճանի համար խոնավ պայմաններում, օրինակ `խոնավ հողի վրա: Սենսորը մեկուսացված է և կարող է չափումներ կատարել մինչև 125oC (Adafrut- ը խորհուրդ չի տալիս այն օգտագործել 100oC- ից բարձր ՝ իր մալուխային PVC բաճկոնի պատճառով):
DS18B20- ը թվային տվիչ է, ինչը լավ է դարձնում այն օգտագործել նույնիսկ երկար հեռավորությունների վրա: Այս 1-լարային թվային ջերմաստիճանի տվիչները բավականին ճշգրիտ են (± 0.5 ° C միջակայքի մեծ մասում) և կարող են մինչև 12 բիթ ճշգրտություն տալ բորտ թվային-անալոգային փոխարկիչից: Նրանք հիանալի աշխատում են NodeMCU- ի հետ ՝ օգտագործելով մեկ թվային քորոց, և նույնիսկ կարող եք մի քանիսը միացնել միևնույն քորոցին, որոնցից յուրաքանչյուրը գործարանում այրել է յուրահատուկ 64-բիթանոց ID:
Սենսորն աշխատում է 3.0 -ից մինչև 5.0 Վ, ինչը նշանակում է, որ այն կարող է սնուցվել անմիջապես 3.3V NodeMCU կապից մեկից:
Սենսորը ունի 3 լար.
- Սև: GND
- Կարմիր ՝ VCC
- Դեղին ՝ 1-լարային տվյալներ
Այստեղ դուք կարող եք գտնել ամբողջական տվյալները ՝ DS18B20 տվյալների թերթիկ
Քայլ 3. Սենսորների միացում NodeMCU- ին
- Մինի Breadboard- ի յուրաքանչյուր սենսորից միացրեք 3 լարերը, ինչպես ցույց է տրված վերը նշված լուսանկարում: Ես օգտագործել եմ հատուկ միակցիչներ `սենսորի մալուխը դրա վրա ավելի լավ ամրացնելու համար:
-
Նշենք, որ երկու սենսորները զուգահեռ են: Եթե ունեք ավելի քան 2 սենսոր, դուք պետք է նույնը անեք:
- Կարմիր ==> 3.3V
- Սև ==> GND
- Դեղին ==> D4
- VCC (3.3V) և Տվյալների (D4) միջև օգտագործեք 4.7K Օմ դիմադրություն
Քայլ 4: Տեղադրված գրադարանների տեղադրում
DS18B20- ը ճիշտ օգտագործելու համար անհրաժեշտ կլինի երկու գրադարան.
- OneWire
- DallasTemperature
Տեղադրեք երկու գրադարանները ձեր Arduino IDE գրադարանի ավանդապահում:
Ուշադրություն դարձրեք, որ OneWire գրադարանը ՊԵՏՔ է լինի հատուկ, փոփոխված ՝ ESP8266- ի հետ օգտագործելու համար, այլապես կազմման ընթացքում սխալ կստանաք: Վերջին տարբերակը կգտնեք վերևի հղումից:
Քայլ 5: Սենսորների փորձարկում
Սենսորների փորձարկման համար ներբեռնեք ստորև բերված ֆայլը իմ GitHub- ից.
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Multiple Temperature Sendor Test**2 x OneWire ցուցիչ ՝ DS18B20*Միացված է NodeMCU D4 (կամ Arduino Pin 2)**Մշակողը ՝ Marcelo Rovai - 25 օգոստոսի 2017 թ. **************** **********************************************/ #ներառում # ներառել #սահմանել ONE_WIRE_BUS 2 // DS18B20 NodeMCU կապում D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20. սկսել (); Serial.println («Կրկնակի տվիչների տվյալների փորձարկում»); } void loop () {float temp_0; float temp_1; DS18B20.request ջերմաստիճան (); temp_0 = DS18B20.getTempCByIndex (0); // Սենսոր 0 -ը կբռնի ջերմաստիճանը Celcius temp_1 = DS18B20.getTempFByIndex (1); // Սենսոր 0 -ը կգրավի Temp Fahrenheit Serial.print- ում ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); ուշացում (1000); }
Նայելով վերը նշված ծածկագրին ՝ մենք պետք է նկատենք, որ ամենակարևոր տողերն են.
temp_0 = DS18B20.getTempCByIndex (0); // Սենսոր 0 -ը կգրավի ջերմաստիճանը elելսիուսում
temp_1 = DS18B20.getTempFByIndex (1); // Սենսոր 0 -ը կգրավի ջերմաստիճանը Ֆարենհայտում
Առաջինը կվերադարձնի արժեքը Սենսորից [0] (տես «ինդեքսը (0)») elելսիուսում (տես կոդի հատվածը ՝ «getTempC»: Երկրորդ տողը կապված է Սենսորի հետ [1] և կվերադարձնի տվյալները Ֆարենհեյթում: Այստեղ կարող եք ունենալ «n» տվիչներ, քանի որ դրանցից յուրաքանչյուրի համար ունեք այլ «ինդեքս»:
Այժմ վերբեռնեք կոդը ձեր NodeMCU- ում և վերահսկեք ջերմաստիճանը ՝ օգտագործելով Սերիայի մոնիտորը:
Վերոնշյալ լուսանկարը ցույց է տալիս ակնկալվող արդյունքը: Սենսորներից յուրաքանչյուրը ձեր ձեռքում պահեք, դուք պետք է տեսնեք, թե ինչպես է ջերմաստիճանը բարձրանում:
Քայլ 6: Blynk- ի օգտագործումը
Երբ սկսում եք ֆիքսել ջերմաստիճանի տվյալները, ժամանակն է այն տեսնել ցանկացած վայրից: Մենք դա կանենք Blynk- ի միջոցով: Այսպիսով, գրավված բոլոր տվյալները իրական ժամանակում կցուցադրվեն ձեր բջջային սարքում, և մենք դրա համար կկառուցենք պատմական պահեստարան:
Հետևեք հետևյալ քայլերին.
- Ստեղծեք նոր նախագիծ:
- Անուն տվեք (իմ դեպքում «Երկակի ջերմաստիճանի մոնիտոր»)
- Ընտրեք նոր սարք - ESP8266 (WiFi) որպես «Իմ սարքերը»
- Պատճենեք ծածկագրում օգտագործվող AUTH TOKEN- ը (կարող եք այն ուղարկել ձեր էլ.
-
Ներառում է երկու «չափիչ» վիջեթ, որոնք սահմանում են.
- Յուրաքանչյուր սենսորի հետ օգտագործվելու է վիրտուալ քորոց ՝ V10 (տվիչ [0]) և V11 (տվիչ [1])
- Theերմաստիճանի սահմանը ՝ -5 -ից 100 oC սենսորի համար [0]
- Temperatureերմաստիճանի սահմանը ՝ 25 -ից 212 oC սենսորի համար [1]
- Տվյալների ընթերցման հաճախականությունը `1 վայրկյան
- Ներառում է «Պատմության գրաֆիկ» վիջեթ, որը սահմանում է V10- ը և V11- ը որպես վիրտուալ կապում
- Կտտացրեք «Խաղալ» (եռանկյունը աջ վերևի անկյունում)
Իհարկե, Blynk հավելվածը ձեզ կասի, որ NodeMCU- ն անցանց է: It'sամանակն է ամբողջ կոդը վերբեռնել ձեր Arduino IDE- ում: Դուք կարող եք այն ստանալ այստեղ ՝
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Փոխեք «կեղծ տվյալները» ՝ ձեր իսկ հավատարմագրերով:
/ * Բլինկի հավատարմագրերը */
char auth = "ՔՈ ԲԼՅՆԿԱՅԻ ՄԱՍԻՆ ԿՈԴԸ` ԱՅՍՏԵ "; / * WiFi- ի հավատարմագրեր */ char ssid = "ՔՈ SSID"; char pass = "ՔՈ գաղտնաբառ";
Եվ վերջ!
Ստորև բերեք ամբողջական ծածկագիրը: Հիմնականում դա նախորդ ծածկագիրն է, որտեղ մենք մուտքագրեցինք Blynk պարամետրերը և հատուկ գործառույթները: Նշեք ծածկագրի 2 վերջին տողերը: Դրանք այստեղ ամենակարևորն են: Եթե ունեք տվյալների հավաքման ավելի շատ տվիչներ, ապա պետք է ունենաք համարժեք նոր տողեր, ինչպես դրանք (սահմանված համապատասխան վիրտուալ կապում):
/**************************************************************
* IoT Multiple Temperature Monitor with Blynk * Blynk գրադարանը լիցենզավորված է MIT լիցենզիայով * Այս օրինակի կոդը հանրային տիրույթում է: **Multiple OneWire ցուցիչ ՝ DS18B20*Մշակողը ՝ Մարսելո Ռովայի - 25 օգոստոսի 2017 թ. ******************************** ***************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Մեկնաբանեք սա անջատել տպումները և խնայել տարածք / * Blynk- ի հավատարմագրերը * / char auth = "ՔՈ ԲԼՅՆՔԻ ԱՎՏՈԹՅԱՆ ԿՈԴԸ ԱՅՍՏԵ"; / * WiFi- ի հավատարմագրեր */ char ssid = "ՔՈ SSID"; char pass = "ՔՈ գաղտնաբառ"; / * TIMER */ #ներառել SimpleTimer ժամաչափ; / * DS18B20 peratերմաստիճանի տվիչ */ #ներառել #ներառել #սահմանել ONE_WIRE_BUS 2 // arduino pin2- ում DS18B20- ը համապատասխանում է OneWire oneWire (ONE_WIRE_BUS) ֆիզիկական տախտակի D4- ին; DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (author, ssid, pass); DS18B20. սկսել (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println («Կրկնակի տվիչների տվյալների փորձարկում»); } void loop () {timer.run (); // Նախաձեռնում է SimpleTimer Blynk.run (); } /******************************************** ****Ուղարկեք սենսորային տվյալներ Blynk ************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Սենսոր 0 -ը կբռնի ջերմաստիճանը Celcius temp_1 = DS18B20.getTempFByIndex (1); // Սենսոր 0 -ը կգրավի Temp 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); // վիրտուալ քորոց V10 Blynk.virtualWrite (11, temp_1); // վիրտուալ քորոց V11}
Երբ ծածկագիրը վերբեռնվի և գործարկվի, ստուգեք Blynk ծրագիրը: Այն այժմ պետք է աշխատի նաև, ինչպես ցույց է տրված իմ iPhone- ի տպման վերևում:
Քայլ 7: Եզրակացություն
Ինչպես միշտ, ես հույս ունեմ, որ այս նախագիծը կարող է օգնել ուրիշներին գտնել իրենց ճանապարհը էլեկտրոնիկայի, ռոբոտաշինության և IoT- ի հետաքրքիր աշխարհում:
Այցելեք իմ GitHub- ը թարմացված ֆայլերի համար ՝ NodeMCU երկակի ջերմաստիճանի մոնիտոր
Լրացուցիչ նախագծերի համար այցելեք իմ բլոգը ՝ MJRoBot.org
Սալուդոս աշխարհի հարավից:
Կհանդիպենք իմ հաջորդ հրահանգին:
Շնորհակալություն, Մարսելո
Խորհուրդ ենք տալիս:
Arduino- ն վերահսկում է բազմաթիվ P.I.R սենսորներ նույն եզրագծում. 3 քայլ
Arduino- ն միևնույն սահմանի վրա վերահսկում է բազմաթիվ PIR սենսորներ. Այսօր ես ձեզ կասեմ, թե ինչպես միացնել բազմաթիվ PIR սենսորներ մեկ Arduino Bord- ի հետ: այստեղ ես նաև օգտագործել եմ 4 ալիքային ռելեի մոդուլ `լրացուցիչ ֆունկցիոնալության համար: (Կամ դուք կարող եք օգտագործել ձեր arduin- ի այնքան շատ կապ
Պարզեցված 3D տպված Animatronic երկակի աչքի մեխանիզմ. 4 քայլ (նկարներով)
Պարզեցված եռաչափ տպված անիմատրոնիկ երկակի աչքի մեխանիզմ. Նախկինում կառուցելով մեկ աչքի պարզ մեխանիզմ, ես ցանկանում էի կատարելագործել դիզայնը, ինչպես նաև այն դարձնել ավելի հասանելի արտադրող համայնքի համար: Թարմացված հավաքածուն օգտագործում է մասեր, որոնք հեշտությամբ կարելի է գնել առցանց, և գրեթե բոլոր բաղադրիչները մոտ
ԱՐԴՈINԻՆՈ UNO սերիական պորտին միացնելով բազմաթիվ սենսորներ. 4 քայլ
ԱՐԴՈINԻՆՈ UNO ՍԵՐԻԱՅԻՆ ՊՈՏԻՆ ԲԱTԱՆԱԿ Սենսորների միացում. Այս ձեռնարկում մենք կընդլայնենք մեկ Arduino UNO UART (Rx/Tx) սերիական պորտը, որպեսզի կարողանանք միացնել բազմաթիվ Atlas սենսորներ: Ընդլայնումը կատարվում է 8: 1 Serial Port Expander տախտակի միջոցով: Արդուինոյի նավահանգիստը կապված է ընդլայնողի հետ այն բանից հետո, երբ
CloudyData - ESP8266 դեպի Google Աղյուսակներ ՝ պարզեցված. 10 քայլ (նկարներով)
CloudyData - ESP8266 դեպի Google Sheets Made Simple: Ես երկար տարիներ փնտրում եմ ամպային տվյալների պահեստավորում. Հետաքրքիր է ցանկացած տեսակի սենսորից տվյալների մոնիտորինգը, բայց ավելի հետաքրքիր է, եթե այդ տվյալները հասանելի են ամենուր առանց պահեստավորման ցանկացած դժվարություն, ինչպիսին է SD- ի օգտագործումը
Ինչպես կատարել Bluetooth- ով վերահսկվող պարզեցված RC մեքենա. 7 քայլ (նկարներով)
Ինչպես պատրաստել Bluetooth- ով վերահսկվող պարզեցված RC մեքենա. Բարև բոլորին, ես Բրայան Թի Պակ Հոնգն եմ: Ես ներկայումս սովորում եմ Սինգապուրի պոլիտեխնիկում ՝ ուսանելով համակարգչային տեխնիկա: Երբ երեխա էի, միշտ հիացած էի RC մեքենաներով և ինչպես են դրանք աշխատում: Երբ ես այն առանձնացրեցի, այն ամենը, ինչ տեսնում եմ, կտորներ են