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

WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում ՝ 9 Քայլ
WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում ՝ 9 Քայլ

Video: WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում ՝ 9 Քայլ

Video: WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում ՝ 9 Քայլ
Video: Blitzwolf BW-IS8 - Zigbee ջերմաստիճանի և խոնավության ցուցիչ, միացեք zigbee2mqtt և SLS 2024, Հուլիսի
Anonim
WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում
WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում

Նախաբան

Այս հոդվածը փաստում է ավելի վաղ Instructable- ի գործնական խստությունը և հետագա զարգացումը. «Կավատ» ձեր առաջին IoT WiFi սարքը: Մաս 4. IoT, տան ավտոմատացում, ներառյալ ծրագրակազմի բոլոր անհրաժեշտ գործառույթները `տնային տնային միջավայրում հաջող տեղակայման հնարավորություն տալու համար:

Ներածություն

Ինչպես նշվեց վերևում, սույն Հրահանգը նկարագրում է ավելի վաղ IoT- ի օրինակի համախմբումը վստահելի համակարգային դիզայնով, որը թույլ է տալիս գործնական օգտագործման այնպիսի գործերի հաջող վարում, ինչպիսիք են. Էլեկտրաէներգիայի աղետալի կորուստ, MQTT բրոքերի խափանում, WiFi N/W ձախողում, հեռավոր սենսորների վերակազմավորում, ցանցի տրաֆիկի նվազեցման և սենսորների ճշգրտման պատվիրման ճշգրիտ հաշվետվությունների ռազմավարություն:

Ընդհանուր առմամբ ստեղծվեց 6 անջատված սարք (տես նկ. 1 -ը վերևում) և բաշխվեցին իմ տան շուրջը ՝ IoT սենսորների իմ առաջին ցանցը ձևավորելու համար:

The Instructable- ը նաև տեսնում է MQTT անվանման պայմանագրի վերանայում, որն օգտագործվում է IoT Home Automation- ի սկզբնական շարքում, որը զիջում է ավելի հավասարակշռված և գործնական կառուցվածքին, որը թույլ է տալիս ավելի շատ IoT սարքերի միջավայրում IoT երթևեկի ավելի հեշտ կարգաբերում:

Ստորև ներկայացված են IoT սենսորի նախագծման ամբողջական մանրամասները, ներառյալ. շինարարություն, աղբյուրի ծածկագիր, փորձարկման ռազմավարություն և OpenHAB կոնֆիգուրացիաներ:

Ի՞նչ մասեր են ինձ պետք:

  1. 1 զեղչ ESP8266-01,
  2. 2 անջատ 1uF էլեկտրոլիտիկ կոնդենսատորներ,
  3. 3 -ից 10 Կ ռեզիստորներ,
  4. 1 անջատված 330R դիմադրիչ,
  5. 1 հատ 3 մմ տրամագծով LED,
  6. 1 զեղչ LD1117-33v, 3v3 LDO VReg: (Ֆարնել այստեղ),
  7. 1 զեղչ DHT22 ջերմաստիճանի/խոնավության ցուցիչ,
  8. 1 զույգ Dual 4way 0.1 "միակցիչ,
  9. 1 զեղչ CAMDENBOSS RX2008/S-5 պլաստմասե պարիսպ, զամբյուղ, ABS, 38 մմ, 23 մմ (Ֆարնելն այստեղ),
  10. 1 անջատված DC հոսանքի միակցիչ, վարդակից, 1 A, 2 մմ, վահանակի ամրացում (այստեղ Ֆարնելը),
  11. 1 զեղչ TO-220 Heatsink 24.4 ° C/W (Farnell այստեղ),
  12. Տարբեր ջերմային նեղացման խողովակներ (դեղին, այստեղ Ebay),
  13. Տարբեր երկարությունների IDC ժապավենի մալուխ,
  14. Heatsink բարդ,
  15. Veroboard,
  16. ESP8266-01 ծրագրավորման սարք: Տես այստեղ; Գործնական սխեմաների կառուցում `ժապավենի տախտակով, քայլ 9 -ից սկսած:

Ինչ ծրագրային ապահովման կարիք ունեմ:

  1. Arduino IDE 1.6.9
  2. Arduino IDE- ն կազմաձևված է ՝ ESP8266-01 ծրագիրը ծրագրավորելու համար: Տես այստեղ; Arduino IDE- ի կարգավորում ՝ ESP8266-01 ծրագիրը ծրագրավորելու համար

Ի՞նչ գործիքների կարիք ունեմ:

  1. Sոդման երկաթ,
  2. Գայլիկոն և տարբեր բիթեր,
  3. Ֆայլեր,
  4. Սղոց,
  5. Ամուր փոխնակ,
  6. Ջերմային հրացան,
  7. DMM

Ի՞նչ հմտություններ են ինձ պետք:

  1. Էլեկտրոնիկայի նվազագույն տիրապետում,
  2. Arduino- ի և դրա IDE- ի իմացություն,
  3. Ռուդիմենտային հորինման հմտություններ (զոդման, կոտրման, սղոցման, հորատման և այլն),
  4. Որոշ համբերություն,
  5. Որոշակի պատկերացում ձեր տան ցանցի մասին:

Coveredածկված թեմաներ

  1. Շրջանի ակնարկ
  2. Softwareրագրային ապահովման համակարգի ակնարկ
  3. Softwareրագրային ապահովման ակնարկ
  4. Սենսորների տրամաչափում
  5. MQTT թեմայի անվանման կոնվենցիա
  6. OpenHAB կոնֆիգուրացիա
  7. Դիզայնի փորձարկում
  8. Եզրակացություն
  9. Օգտագործված հղումներ

Սերիայի հղումներ

Մաս 7 -ին. Ուսումնասիրեք լույսերի վերահսկիչը (վերամշակված): Մաս 7: IoT, տան ավտոմատացում

Մաս 9 -ին. IoT ցանցի վերահսկիչ: Մաս 9. IoT, տան ավտոմատացում

Քայլ 1. Շրջանների ակնարկ

Շրջանի ակնարկ
Շրջանի ակնարկ
Շրջանի ակնարկ
Շրջանի ակնարկ
Շրջանի ակնարկ
Շրջանի ակնարկ
Շրջանի ակնարկ
Շրջանի ակնարկ

Վերևում նկար 1 -ը ցույց է տալիս IoT սենսորի ամբողջական միացման սխեման:

IoT սարքի հիմքում ընկած է ESP8266-01- ը, որը միացված է DHT22 ջերմաստիճանի/խոնավության տվիչին 10K ձգվող դիմադրիչի միջոցով GPIO2- ի միջոցով: Արտաքին 5 վ աղբյուր է միացված ռեժիմով և սնվում է սարքին 2 մմ DC վահանակի ամրացման վարդակից և տեղայնորեն կարգավորվում է LD1117-33v, 3v3 LDO լարման կարգավորիչով, որը տեղադրված է արտաքին տաքացուցիչի վրա `BZP M3 թավայի պտուտակով և ընկույզով:.

Դիզայնը ներառում է GPIO0- ին միացված 3 մմ կարմիր լեդ, որն օգտագործվում է գործարկման ժամանակ IoT սարքի կարգավիճակի կամ հետագա սխալի ցանկացած վիճակի մասին տեղական ցուցում տալու համար: Այն կարող է օգտագործվել նաև սարքը ձեռքով ակտիվացնելու միջոցով openHAB ինտերֆեյսի միջոցով:

Ամբողջական դիզայնը կոկիկ կերպով տեղավորվում է ABS զամբյուղի տուփի մեջ, ինչպես ցույց է տրված նկար 2 -ում և հատուկ ձևավորվել է `ապահովելու համար, որ սենսորը հնարավորինս հեռու լինի կարգավորիչից` կանխելու կանխումը տեղական տաքացման հետևանքների պատճառով (վերը նկար 7):

Շրջանակային վահանակը մեկ veroboard- ի մի կտոր է, որը կտրված է ձևի և պատրաստված է պատին տեղավորվելու համար (նկար 3 -ը վերևում): Այս տախտակը ամրացված է M3 հակափորված նեյլոնե պտուտակով և երկու ընկույզով, որոնք համընկնում են սենսորի ներքևի մասի հետ ՝ դրանով իսկ թույլ տալով այն նստել հարթ մակերևույթի վրա:

Նկարներ 4… 6 -ը ցույց են տալիս շինարարության տարբեր վիճակներ:

Քայլ 2: Softwareրագրային համակարգի ակնարկ

Softwareրագրային ապահովման համակարգի ակնարկ
Softwareրագրային ապահովման համակարգի ակնարկ
Softwareրագրային ապահովման համակարգի ակնարկ
Softwareրագրային ապահովման համակարգի ակնարկ

IoT- ի ջերմաստիճանի և խոնավության զգայիչ սարքը պարունակում է ծրագրային ապահովման վեց հիմնական բաղադրիչ, ինչպես ցույց է տրված վերևում ՝ նկար 1 -ում:

SPIFFS

Սա ներկառուցված SPI Flash ֆայլերի ներկայացման համակարգ է և օգտագործվում է հետևյալ տեղեկությունները պահելու համար (տես նկ. 2 վերը);

  • Սրբապատկերներ և «Սենսորների կազմաձևման գլխավոր էջ» html. Vedառայվում է IoT սարքի կողմից, երբ այն չի կարողանում միանալ ձեր IoT WiFi ցանցին (սովորաբար անվտանգության սխալ տեղեկատվության պատճառով) և օգտվողին տրամադրում է սենսորը հեռակա կարգաբերելու միջոց ՝ առանց անհրաժեշտության: կրկին ծրագրավորել կամ վերբեռնել SPIFFS- ի նոր բովանդակություն:
  • Անվտանգության տեղեկատվություն. Սա պարունակում է այն տեղեկությունները, որոնք օգտագործվում են IoT սարքի գործարկման ժամանակ ՝ ձեր IoT WiFi ցանցին և MQTT բրոքերին միանալու համար: «Սենսորների կազմաձևման գլխավոր էջի» միջոցով ներկայացված տեղեկատվությունը գրված է այս ֆայլում («secvals.txt»):
  • Այս ֆայլի («calvals.txt») պարունակվող տեղեկատվությունը, անհրաժեշտության դեպքում, օգտագործվում է ինքնաթիռում ջերմաստիճանի/խոնավության տվիչի չափագրման համար: Կալիբրացիոն հաստատունները կարող են գրվել միայն IoT սարքին MQTT միջնորդի MQTT հրամանների միջոցով:

Նշում. Սարքը նախապես կարգավորելու համար տե՛ս այստեղ ՝ Arduino IDE- ի հետ SPIFFS- ի օգտագործման ամբողջական մանրամասների համար:

mDNS սերվեր

Այս գործառույթը կոչվում է, երբ IoT սարքը չի կարողանում միանալ ձեր WiFi ցանցին որպես WiFi կայան և փոխարենը դարձել է WiFi մուտքի կետ, որը նման է ներքին WiFi երթուղիչին: Նման երթուղղիչի դեպքում դուք սովորաբար միանում եք դրան ՝ մուտքագրելով 192.168.1.1 -ի պես IP հասցեն (սովորաբար տպվում է տուփին ամրացված պիտակի վրա) անմիջապես ձեր դիտարկիչի URL- ի սանդղակում, որից հետո մուտքագրման էջ կստանաք: օգտվողի անունը և գաղտնաբառը, որը թույլ կտա ձեզ կարգավորել սարքը:

AP ռեժիմում ESP8266- ի համար (Մուտքի կետի ռեժիմ) սարքը կանխադրված է 192.168.4.1 IP հասցեով, սակայն mDNS սերվերի հետ աշխատելու դեպքում միայն դիտարկիչի URL- ի սանդղակում պետք է մուտքագրել «SENSORSVR.local» մարդասիրական անունը: «Սենսորային կազմաձևման գլխավոր էջ»:

MQTT հաճախորդ

MQTT հաճախորդը ապահովում է բոլոր անհրաժեշտ գործառույթները. միացեք ձեր IoT ցանցի MQTT բրոքերին, բաժանորդագրվեք ձեր ընտրած թեմաներին և հրապարակեք բեռնվածություն տվյալ թեմային: Մի խոսքով, այն ապահովում է IoT- ի հիմնական գործառույթները:

HTTP վեբ սերվեր

Ինչպես նշվեց վերևում, եթե IoT սարքն ի վիճակի չէ միանալ WiFi ցանցին, որի SSID, P/W և այլն սահմանված են SPIFFS- ում պահվող անվտանգության տեղեկատվության ֆայլում, սարքը կդառնա Access Point: Մուտքի կետի կողմից տրամադրված WiFi ցանցին միանալուց հետո, HTTP վեբ սերվերի առկայությունը թույլ է տալիս ուղղակիորեն միանալ սարքին և փոխել դրա կազմաձևը ՝ օգտագործելով HTTP վեբ զննարկչի միջոցով, որի նպատակն է ծառայել «Սենսորային կազմաձևման տուն» Էջի 'վեբ էջ, որը նույնպես պահվում է SPIFFS- ում:

WiFi կայան

Այս գործառույթը IoT սարքին տալիս է ներքին WiFi ցանցին միանալու հնարավորություն ՝ օգտագործելով Անվտանգության տեղեկատվության ֆայլում պարամետրերը, առանց դրա ձեր IoT սարքը չի կարողանա բաժանորդագրվել/հրապարակել MQTT բրոքերին

WiFi մուտքի կետ

WiFi մուտքի կետ դառնալու հնարավորությունն այն միջոցն է, որով IoT սարքը թույլ է տալիս միանալ դրան և կատարել կոնֆիգուրացիայի փոփոխություններ WiFi կայանի և դիտարկիչի միջոցով (օրինակ ՝ Safari- ն Apple iPad- ում):

Այս մուտքի կետը հեռարձակում է SSID = "SENSOR" + IoT սարքի MAC հասցեի վերջին 6 թվանշանները: Այս փակ ցանցի գաղտնաբառը երևակայականորեն կոչվում է «PASSWORD»

Քայլ 3: Softwareրագրաշարի ակնարկ

Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ

Այս աղբյուրի կոդը հաջողությամբ կազմելու համար ձեզ հարկավոր կլինեն հետևյալ լրացուցիչ գրադարանները.

PubSubClient.h

  • Հեղինակ ՝ Նիկ Օ'Լիրի
  • Նպատակը. Սարքին հնարավորություն է տալիս տվյալ բրոքերի հետ հրապարակել կամ բաժանորդագրվել MQTT թեմաներին
  • Սկսած ՝

DHT.h

  • Հեղինակ ՝ Ադաֆրուտ
  • Նպատակը. Գրադարան DHT ջերմաստիճանի/խոնավության տվիչի համար
  • Սկսած ՝

Կոդի ակնարկ

Theրագիրը օգտագործում է պետական մեքենան, ինչպես ցույց է տրված վերևում 1-ին նկարում (ստորև բերված աղբյուրի ամբողջական պատճենը): Կան 5 հիմնական նահանգներ, ինչպես ստորև.

  • INIT

    Այս նախաստորագրման վիճակը առաջին վիճակն է, որը մտել է հոսանքի անջատումից հետո:

  • ՈՉ

    Այս վիճակը մուտքագրվում է, եթե միացնելուց հետո անվավեր կամ բացակայող secvals.txt ֆայլը հայտնաբերվի

  • ՍՊԱՍՈՄ Ք. W

    Այս վիճակը անցողիկ է, մուտքագրվում է մինչ WiFi ցանցի կապ չկա

  • Սպասող MQTT

    Այս վիճակը անցողիկ է, մուտքագրվում է WiFi ցանցի միացումից հետո, և մինչդեռ որևէ կապ չկա այդ ցանցի MQTT բրոքերի հետ:

  • ԱԿՏԻՎ

    Սա սովորական գործառնական վիճակն է, որը մուտքագրվում է ինչպես WiFi ցանցի, այնպես էլ MQTT բրոքերային կապի հաստատումից հետո: Այս վիճակում ջերմաստիճանի և խոնավության ֆունկցիոնալությունը սենսորը հրապարակվում է MQTT բրոքերին:

Նահանգների միջև անցումները վերահսկող իրադարձությունները նկարագրված են վերը նշված 1 -ին նկարում: Նահանգների միջև անցումները կարգավորվում են նաև SecVals- ի հետևյալ պարամետրերով.

  • 1 -ին MQTT բրոքերի IP հասցեն: Կետավոր տասնորդական տեսքով AAA. BBB. CCC. DDD
  • 2 -րդ MQTT բրոքերային նավահանգիստ: Ամբողջական տեսքով:
  • 3 -րդ MQTT բրոքերային կապը փորձում է կատարել STA ռեժիմից AP ռեժիմի անցնելուց առաջ: Ամբողջական տեսքով:
  • 4 -րդ WiFi ցանցի SSID: Ազատ տեքստով:
  • WiFi ցանցի 5 -րդ գաղտնաբառ: Ազատ տեքստով:

Ինչպես նշվեց վերևում, եթե IoT սարքն ի վիճակի չէ որպես WiFi կայան միանալ WiFi ցանցին, որի SSID- ը և P/W- ն սահմանված են secvals- ում: SPIFFS- ում պահվող տեքստը IoT սարքը կդառնա Մուտքի կետ: Այս մուտքի կետին միանալուց հետո այն կծառայի «Սենսորների կազմաձևման գլխավոր էջ» -ին, ինչպես ցույց է տրված վերևում ՝ 2 -րդ նկարում (մուտքագրելով կամ «SENSORSVR.local» կամ 192.168.4.1 ձեր դիտարկիչների URL հասցեի բարում): Այս գլխավոր էջը թույլ է տալիս վերափոխել սենսորը HTTP բրաուզերի միջոցով:

Հեռակա հասանելիություն, մինչդեռ ԱԿՏԻՎ վիճակում է

MQTT բրոքերին միանալուց հետո հնարավոր է և՛ վերահաստատել, և՛ վերակազմավորել սարքը MQTT թեմայի հրապարակումների միջոցով: Calvals.txt ֆայլը ունի R/W մուտքագրում, իսկ secvals.txt- ին ՝ գրելու թույլտվություն:

Օգտվողի վրիպազերծում

Բեռնման հաջորդականության ընթացքում IoT սարքի ղեկավարած սարքը տալիս է հետևյալ վրիպազերծման հետադարձ կապը

  • 1 Կարճ բռնկում. Ոչ մի կազմաձևման ֆայլ, որը գտնվում է SPIFFS- ում (secvals.txt)
  • 2 Կարճ բռնկումներ. IoT սարքը փորձում է միանալ WiFi ցանցին
  • Շարունակական լուսավորություն. IoT սարքը փորձում է միանալ MQTT բրոքերին
  • Անջատված. Սարքն ակտիվ է
  • Նշում 1. «Սենսորների կազմաձևման հիմնական էջը» չի օգտագործում ապահով վարդակներ և, հետևաբար, ապավինում է ձեր ցանցի անվտանգ լինելուն:
  • Նշում 2. Յուրաքանչյուր IoT սարք ծրագրավորելու համար MQTT տողը ներբեռնելուց առաջ կպահանջի խմբագրում: Դա պայմանավորված է նրանով, որ սենսորի համարը ներառված է MQTT թեմայի տողում: այսինքն. 'WFD/THSen/100/HumdStatus/1' իմ 6 սարքերի համար նրանք համապատասխանաբար համարակալված են 1… 6:

Քայլ 4: Սենսորների տրամաչափում

Սենսորների տրամաչափում
Սենսորների տրամաչափում
Սենսորների տրամաչափում
Սենսորների տրամաչափում

Երբ IoT սարքը միանում է, բեռնման հաջորդականության մի մասում «cavals.txt» անունով ֆայլը կարդացվում է SPIFFS- ից: Այս ֆայլի բովանդակությունը կալիբրացիոն հաստատուններ են, ինչպես նշված է նկ. 1 -ում: Այս ճշգրտման հաստատուններն օգտագործվում են սենսորից ստացված ընթերցումները կարգավորելու համար `դրանք համապատասխանեցնելու համար հղման սարքին: Կա ևս մեկ արժեք, որը սահմանում է սարքի համար հաշվետվությունների ռազմավարությունը և ստորև նկարագրված է ՝ սենսորների չափագրման համար կիրառվող ընթացակարգի հետ միասին:

Հաշվետվության ռազմավարություն Այս պարամետրը որոշում է, թե ինչպես է հեռավոր սենսորը հայտնում շրջակա միջավայրի պարամետրային ցանկացած փոփոխության: Եթե 0 արժեք է ընտրված, հեռակառավարման ցուցիչը կհրապարակի ջերմաստիճանի կամ խոնավության արժեքների ցանկացած փոփոխություն, երբ սենսորը կարդալիս (մոտ 10 վայրկյանը մեկ): Otherանկացած այլ արժեք կհետաձգի փոփոխության հրապարակումը 1… 60 րոպեով: Այս պարամետրի փոփոխումը թույլ է տալիս օպտիմալացնել MQTT ցանցի տրաֆիկը:

Temերմաստիճանի ճշգրտում

Սենսորները ճշգրտելու համար դրանք տեղադրվեցին միմյանց հետ ֆիզիկական հարևանությամբ, ինչպես ցույց է տրված վերևում ՝ նկար 2 -ում: Նրանց կողքին ես տեղադրեցի DMM- ը `կցված տրամաչափված զույգով (Fluke 87 V) և այնուհետև վերահսկեցի յուրաքանչյուր սարքի ելքերը OpenHAB ջերմաստիճանի միջոցով: միտումների էջ մեկ օրվա ընթացքում `լավ ջերմաստիճանի տատանում ստանալու համար: Ես նշեցի ինչպես ստատիկ օֆսեթը (բարձրացված զրո 'C'), այնպես էլ յուրաքանչյուր սարքի փոփոխության արագությունը («Գ» գրաֆիկի շահույթը կամ թեքությունը) `համեմատած տրամաչափված ջերմազույգից եկող արժեքի հետ: Այնուհետև ես հաշվարկեցի պարզ y = mx+c պարզ հարաբերությունը (ես գտա, որ այն բավականաչափ գծային է, քանի որ այն կարող է մոտ լինել ուղիղ գրաֆիկին) և ծրագրավորել ցանկացած անհրաժեշտ ուղղում կալիբրացիոն կայունությունների մեջ MQTTSpy- ի միջոցով:

Ապա սարքերը վերահսկվում էին ևս 24 ժամ `ստուգաչափման հաջողված լինելու համար: Ինչի նշան էր OpenHAB ջերմաստիճանի միտումների էջում ջերմաստիճանի հետքերը, բոլորը բավականին միմյանց վրա էին:

Իհարկե, եթե ձեզ հետաքրքրում է միայն ջերմաստիճանի մոտարկումը, կարող եք ստուգաչափման բոլոր արժեքները թողնել որպես կանխադրված:

Խոնավության ստուգաչափում

Քանի որ ես միջոցներ չունեմ ճշգրիտ գրանցելու կամ նույնիսկ վերահսկելու շրջակա միջավայրի խոնավությունը, սենսորները չափագրելու համար, ես կիրառեցի վերը նշվածի նման մոտեցումը ՝ տեղադրելով բոլոր սարքերը ֆիզիկական հարևանությամբ (նկար 2) և պարզապես վերահսկելով դրանց թողարկումը OpenHAB- ի միջոցով: Խոնավության հակված էջ: Այնուհետև ես ընտրեցի թիվ 1 սարքը որպես չափագրման տեղեկանք և չափեցի դրա հետ կապված բոլոր սարքերը:

Քայլ 5. MQTT թեմայի անվանման կոնվենցիա

MQTT թեմայի անվանման կոնվենցիա
MQTT թեմայի անվանման կոնվենցիա
MQTT թեմայի անվանման կոնվենցիա
MQTT թեմայի անվանման կոնվենցիա

Շատ փորձարկումներից և սխալներից հետո ես որոշեցի վերը նշված 1 -ին նկարում նկարագրված թեմայի անվանման պայմանագիրը:

Մասնավորապես, «AccessMethod/DeviceType/WhichDevice/Action/SubDevice»

Դա կատարյալ չէ, բայց թույլ է տալիս կիրառել օգտակար զտիչներ ՝ սենսորների բոլոր ելքերը տվյալ պարամետրային արժեքի համար տեսնելու համար, ինչը թույլ է տալիս հեշտությամբ համեմատել, ինչպես վերևում ՝ նկ 2 -ում, MQTTSpy- ի հետ: Այն նաև աջակցում է տվյալ IoT սարքի ֆունկցիոնալության ողջամիտ ընդլայնվող տրամաբանական խմբավորումներին:

Topicsրագրում այս թեմաներն իրականացնելիս ես օգտագործել եմ կոշտ ծածկագրված տողեր `յուրաքանչյուր սարքի ֆիքսված, ներդրված թվային նույնացուցիչներով, ի տարբերություն գործողությունների ժամանակ թեմաների դինամիկ առաջացման, որպեսզի խնայեք RAM- ը և կատարողականը բարձր պահենք:

Նշում. Եթե վստահ չեք, թե ինչպես օգտագործել MQTTSpy- ն, տե՛ս այստեղ ՝ «MQTT բրոքեր ստեղծելը»: Մաս 2. IoT, տան ավտոմատացում '

Քայլ 6: OpenHAB կազմաձևում

OpenHAB կոնֆիգուրացիա
OpenHAB կոնֆիգուրացիա
OpenHAB կոնֆիգուրացիա
OpenHAB կոնֆիգուրացիա
OpenHAB կոնֆիգուրացիա
OpenHAB կոնֆիգուրացիա

Ես փոփոխեցի OpenHAB- ի կազմաձևը, որը տրված էր իմ ավելի վաղ Instructable- ում (այստեղ) և ավելացրել առանձին գրառումների համար.

  • Ավտոտնակ,
  • Դահլիճ,
  • Հյուրասենյակ,
  • Խոհանոց
  • Հյուրերի ննջասենյակ
  • Վարպետ ննջասենյակ

Կայքի քարտեզում տես նկ. 1 վերը:

Այս գրառումներից յուրաքանչյուրի համար ես ավելացրել եմ կայքի առանձին քարտեզներ, որոնք բացահայտում են շրջակա միջավայրի արժեքները (տես նկ. 2 վերը);

  • Ջերմաստիճանը
  • Խոնավություն
  • Heերմության ինդեքս

Ես ներառեցի նաև անջատիչ ՝ սենսորի ներսում տեղադրված տեղական լուսադիոդի կառավարման համար:

Նկարներ 3… 5 -ը ցույց են տալիս անհատական կենդանի հետքեր 24 ժամվա ընթացքում ջերմաստիճանի, խոնավության և RSSI- ի համար (Ստացված ազդանշանի ուժի ցուցում, հիմնականում չափիչ, թե որքան լավ է սենսորը տեսնում WiFi ցանցը):

6 -րդ նկարը տալիս է մեկ շաբաթվա ընթացքում խոնավության երկարաժամկետ միացման օրինակ:

Նշում 1. Եթե վստահ չեք, թե ինչպես օգտագործել OpenHAB- ը, տե՛ս այստեղ ՝ OpenHAB- ի կարգավորում և կարգավորում: Մաս 6: IoT, տան ավտոմատացում '

Նշում 2. Ստորև բերված է փոփոխված կայքի քարտեզի, կանոնների և տարրերի ֆայլերի, սրբապատկերների և այլնի պատճենը:

Քայլ 7: Դիզայնի փորձարկում

Դիզայնի փորձարկում
Դիզայնի փորձարկում
Դիզայնի փորձարկում
Դիզայնի փորձարկում

Մեծ մասամբ ես փորձարկեցի IoT սարքը MQTT Spy- ի MQTT կապի միջոցով, սերիական ինտերֆեյսի մոնիտորինգի ելքային և կարգաբերված տրաֆիկի մոնիտորինգ: Սա ինձ թույլ տվեց օգտվել առկա բոլոր բաժանորդագրված թեմաներից և ստուգել հրապարակված պատասխանները: Թեև դա ձեռք էր բերվում ձեռքով և երբեմն դառնում էր մի փոքր հոգնեցուցիչ, այն հնարավորություն էր տալիս 100% լուսաբանում:

Այնուամենայնիվ, հիմնական պետական մեքենան փորձարկվել է մի փոքր բարդ, քանի որ այն հիմնված էր WiFi ցանցի առկայության կամ բացակայության վրա, որի հասանելիությունը պահանջում էր պարամետրերի հատուկ հավաքածուներ: Դրա համար պարզապես գործնական չէր օգտագործել տնային ցանցը:

Այս խնդիրը լուծելու համար ես ստեղծեցի իմ սեփական կեղծ ցանցերը ՝ օգտագործելով ESP8266-01- ը ՝ կազմաձևված որպես մուտքի կետեր (նկար 1) ՝ համապատասխանաբար «DummyNet1» և «DummyNet2» SSID- ներով: LED- ի վերևում գտնվող 2 -րդ սխեմայի սխեմայի օգտագործումը ցույց տվեց, թե արդյոք դրան միացված է IoT սարք: Թեև սա կատարյալ փորձարկման լուծում չէր (այսինքն. Այս խաբեբա WiFi ցանցերից յուրաքանչյուրը չէր պարունակում MQTT սերվեր), հնարավոր եղավ լիարժեք փորձարկել պետական մեքենան:

Ստորև բերված եմ աղբյուրի կոդի պատճենը:

Քայլ 8: Եզրակացություն

Գեներալ

IoT սարքերի ծրագրակազմը հուսալիորեն աշխատել է արդեն երկար ամիսներ ՝ վերականգնվելով կենցաղային էներգիայի անջատումներից (հիմնականում ինքս եմ պատճառել): Ընդհանուր առմամբ դրանք բավականին ամուր սարքեր են, որոնք տալիս են հետևողական և ճշգրիտ տվյալներ:

Բարելավումներ

SPIFFS- ին կարդալու և գրելու համար ծրագրային առօրյան մշակելիս ես գրել եմ կոդ, որը հետագայում կարող է մի փոքր ավելի առաջադեմ լինել, քան ես նախատեսում էի ՝ օգտագործելով դատարկ ցուցիչներ, վերաշարադրում և ցուցիչներ դեպի ցուցիչներ: Չնայած այն շատ ճկուն է և լավ է կատարում աշխատանքը, հաջորդ անգամ ես կարող եմ օգտագործել JSON- ը ինչ -որ բան ConfigFile.ino- ի գծերի համաձայն `այն մի փոքր ավելի պարզ պահելու համար:

  • Arduino GIT HUB Core

    https://github.com/esp8266/Arduino

  • ConfigFile.ino Աղբյուր

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

Wանկությունների ցուցակ

Ես մտադիր էի օգտագործել mDNS հաճախորդը ՝ Բրոքերին միանալու համար, բայց գրադարանը չափազանց կեղծ էր: Ահա թե ինչու անհրաժեշտ է նշել MQTT բրոքերի IP հասցեն ՝ ի տարբերություն «MQTTSVR.local» - ի: Եթե mDNS գրադարանը ապագայում ավելի կայուն դառնա, ես այս հնարավորությունը կավելացնեմ սարքի վրա:

Լավ կլիներ, որ ունենայինք միջավայրի խոնավության ճշգրիտ մոնիտորինգի և վերահսկման միջոց `սենսորների դեմ չափագրման համար: Այնուամենայնիվ, ասված է, որ ընտրված ստուգաչափման մեթոդը տալիս է լավ հարաբերական ընթերցումներ և թվում է ողջամիտ ճշգրիտ `համաձայն DHT22 տվյալների թերթի բնութագրին:

Վերջապես, հաշվի առնելով ծրագրաշարի բարդությունը, ես գտա, որ ծածկագիրը ամբողջությամբ փորձարկվում է այն բանից հետո, երբ մեծ փոփոխությունը ժամանակատար էր դառնում: Ես կարող եմ համարել ավտոմատացված փորձարկումներ ավելի ուշ:

Քայլ 9: Օգտագործված հղումներ

Ես օգտագործել եմ հետևյալ աղբյուրները `այս Instructable- ը համատեղելու համար.

PubSubClient.h

  • Հեղինակ ՝ Նիկ Օ'Լիրի
  • Սկսած ՝

DHT.h

  • Հեղինակ ՝ Ադաֆրուտ
  • Սկսած ՝

DHT22 տվյալների թերթիկ

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