Բովանդակություն:

IoT- ն պարզեցված է. Մոնիտորինգի բազմաթիվ սենսորներ `7 քայլ
IoT- ն պարզեցված է. Մոնիտորինգի բազմաթիվ սենսորներ `7 քայլ

Video: IoT- ն պարզեցված է. Մոնիտորինգի բազմաթիվ սենսորներ `7 քայլ

Video: IoT- ն պարզեցված է. Մոնիտորինգի բազմաթիվ սենսորներ `7 քայլ
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Հուլիսի
Anonim
IoT Made Simple: Մոնիտորինգ բազմաթիվ սենսորների միջոցով
IoT Made Simple: Մոնիտորինգ բազմաթիվ սենսորների միջոցով
IoT Made Simple: Մոնիտորինգ բազմաթիվ սենսորների միջոցով
IoT Made Simple: Մոնիտորինգ բազմաթիվ սենսորների միջոցով

Մի քանի շաբաթ առաջ ես այստեղ հրատարակեցի ձեռնարկ ՝ ջերմաստիճանի մոնիտորինգի վերաբերյալ ՝ օգտագործելով 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 peratերմաստիճանի տվիչ
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- ին

Սենսորների միացում NodeMCU- ին
Սենսորների միացում NodeMCU- ին
  1. Մինի Breadboard- ի յուրաքանչյուր սենսորից միացրեք 3 լարերը, ինչպես ցույց է տրված վերը նշված լուսանկարում: Ես օգտագործել եմ հատուկ միակցիչներ `սենսորի մալուխը դրա վրա ավելի լավ ամրացնելու համար:
  2. Նշենք, որ երկու սենսորները զուգահեռ են: Եթե ունեք ավելի քան 2 սենսոր, դուք պետք է նույնը անեք:

    • Կարմիր ==> 3.3V
    • Սև ==> GND
    • Դեղին ==> D4
  3. VCC (3.3V) և Տվյալների (D4) միջև օգտագործեք 4.7K Օմ դիմադրություն

Քայլ 4: Տեղադրված գրադարանների տեղադրում

DS18B20- ը ճիշտ օգտագործելու համար անհրաժեշտ կլինի երկու գրադարան.

  1. OneWire
  2. 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- ի միջոցով: Այսպիսով, գրավված բոլոր տվյալները իրական ժամանակում կցուցադրվեն ձեր բջջային սարքում, և մենք դրա համար կկառուցենք պատմական պահեստարան:

Հետևեք հետևյալ քայլերին.

  1. Ստեղծեք նոր նախագիծ:
  2. Անուն տվեք (իմ դեպքում «Երկակի ջերմաստիճանի մոնիտոր»)
  3. Ընտրեք նոր սարք - ESP8266 (WiFi) որպես «Իմ սարքերը»
  4. Պատճենեք ծածկագրում օգտագործվող AUTH TOKEN- ը (կարող եք այն ուղարկել ձեր էլ.
  5. Ներառում է երկու «չափիչ» վիջեթ, որոնք սահմանում են.

    • Յուրաքանչյուր սենսորի հետ օգտագործվելու է վիրտուալ քորոց ՝ V10 (տվիչ [0]) և V11 (տվիչ [1])
    • Theերմաստիճանի սահմանը ՝ -5 -ից 100 oC սենսորի համար [0]
    • Temperatureերմաստիճանի սահմանը ՝ 25 -ից 212 oC սենսորի համար [1]
    • Տվյալների ընթերցման հաճախականությունը `1 վայրկյան
  6. Ներառում է «Պատմության գրաֆիկ» վիջեթ, որը սահմանում է V10- ը և V11- ը որպես վիրտուալ կապում
  7. Կտտացրեք «Խաղալ» (եռանկյունը աջ վերևի անկյունում)

Իհարկե, 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

Սալուդոս աշխարհի հարավից:

Կհանդիպենք իմ հաջորդ հրահանգին:

Շնորհակալություն, Մարսելո

Խորհուրդ ենք տալիս: