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

SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները. 3 քայլ
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները. 3 քայլ

Video: SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները. 3 քայլ

Video: SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները. 3 քայլ
Video: ZigBee ցնցման և թեքության ցուցիչ TUYA - պաշտպանություն և խելացի տան ավտոմատացում 2024, Նոյեմբեր
Anonim
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները

MQTT հիմունքներ

** Ես պատրաստվում եմ կատարել Տան ավտոմատացման շարք, ես կանցնեմ այն քայլերով, որոնք ես ձեռնարկել եմ սովորելու այն ամենը, ինչ ես արել եմ ապագայում: Այս Instructable- ը հիմք է, թե ինչպես կարելի է տեղադրել MQTT- ն ՝ իմ հետագա Instructables- ում օգտագործելու համար: Այնուամենայնիվ, այս բովանդակության ուսմունքները կիրառելի կլինեն ցանկացած նախագծի համար, որը կցանկանայիք ստանձնել: **

Իրերի ինտերնետ

Իրերի ինտերնետը տիրում է աշխարհին, և հատկապես մեր նման համայնքներին այստեղ ՝ Instructables- ում: Երբ ես միացել եմ այս համայնքին, այն արմատավորված էր մարդկանց շինարարությամբ

Սարքեր, որոնք միացված են և վերահսկվում են ինտերնետով: Իրերի ինտերնետի հետ աշխատելիս դժվար է չհամապատասխանել MQTT արձանագրությանը: Սա հաղորդակցության արձանագրություն է, ինչպես մյուսները, որոնք այսօր օգտագործվում են ինտերնետում, ինչպիսիք են HTTP- ը կամ FTP- ն, սակայն դրա գործելակերպը տարբեր է, ինչը այն իդեալական է դարձնում «Իրերի ինտերնետի» ծրագրերի համար:

Ինչ է MQTT- ը

MQTT (Message Queuing Telemetry Transport) - ը թեթև հաղորդակցման արձանագրություն է, որն օգտագործում է հրապարակման/բաժանորդագրության ճարտարապետությունը: HTTP- ն, ինչն ինտերնետն օգտագործում է, կառուցված է հարցման/արձագանքման համակարգի վրա: Սա նշանակում է, որ այն ստանում է հաճախորդի հարցում և ուղարկում պատասխան այդ հաճախորդին: MQTT- ն ունի նաև սերվեր (որը կոչվում է միջնորդ), ինչպես նաև բազմաթիվ հաճախորդներ: Ի տարբերություն HTTP- ի, MQTT- ն թույլ է տալիս հաճախորդներին հրապարակել կամ բաժանորդագրվել որոշակի «թեմաների»: Այն, ինչ դա թույլ է տալիս, ավելի լայն հաղորդակցություն է կենտրոնացված կետ, բրոքեր: Յուրաքանչյուր հանգույց կարող է հրապարակել բրոքերի թեմա, և այդ թեմային բաժանորդագրված ցանկացած հանգույց կստանա հաղորդագրությունը: Հաճախորդները կարող են բաժանորդագրվել նաև բազմաթիվ թեմաների, այնուհետև կարող են ստանալ բազմաթիվ հրահանգներ կամ թարմացումներ:

Ամբողջ համակարգը իրադարձությունների վրա հիմնված է և թույլ է տալիս միջնորդի հաղորդագրությունները մղել յուրաքանչյուր բաժանորդագրված հաճախորդի: Այսպիսով, ոչ թե HTTP- ի դեպքում, երբ հաճախորդը պահանջում է տեղեկատվությունը, հաճախորդին տեղեկատվությունը անմիջապես մղվում է բրոքերից `ստանալուց հետո: Կան ներկառուցված ծառայություններ, ինչպես նաև թույլ են տալիս ստանալ տարբեր երաշխիքներ, օրինակ ՝ QOS- ի բնութագրերը: QOS- ի բնութագիրը թույլ է տալիս բրոքերին որոշել, թե արդյոք հաղորդագրությունը պետք է առաքվի առավելագույնը մեկ անգամ, առնվազն մեկ անգամ կամ ճշգրիտ մեկ անգամ: Սա երաշխավորում է, որ տվյալները պահանջվող եղանակով առաքվում են յուրաքանչյուր հաճախորդին: Հաճախորդները կարող են նաև պահանջել, որ իրենց թեմայի վերաբերյալ հրապարակված հաղորդագրությունները բուֆերային լինեն բրոքերի մեջ, եթե դրանք ինչ -ինչ պատճառներով անջատվեն: Երբ այն առցանց վերադառնա, այդ տվյալները կմղվեն հաճախորդին:

Թեման առանձնահատուկ բան չէ, այն պարզապես լարերի բազմազանություն է, որոնք համակցված և կտրված են շեղ գծերով: Ստորև օգտագործվող օրինակի ձևաչափը հետևյալն է ՝ տուն/ննջասենյակ/առաստաղի_լույս: Յուրաքանչյուր շեղ հատված տեղադրվում է թեմայից հետո `ենթաթեմա նշանակելու համար: Այսպիսով, հաղորդագրությունը կարող է հրապարակվել դեպի տուն, որտեղ տան բոլոր սարքերը կստանան այն: Այն կարող է հրապարակվել անմիջապես տուն/ննջասենյակ, որտեղ ննջասենյակի բոլոր սարքերը կստանան հաղորդագրություն: Եվ այն կարող է իջնել հատուկ սարքի, ինչպես առաջին անգամ ցուցադրվել է տուն/ննջասենյակ/առաստաղի_լույս, որտեղ հաղորդագրությունը կստանա միայն ննջասենյակի առաստաղի լույսը: Այն ձևը, որով մենք կարող ենք վերծանել այսպիսի առանձին սարքեր մինչև ամբողջ էկոհամակարգը, չափազանց հարմար է, հատկապես, երբ խոսքը վերաբերում է տան ավտոմատացմանը: Կան թեմաներ քանդելու ևս մի քանի եղանակներ, և ես դրանց ավելի կանդրադառնամ ապագա Instructables- ում, որտեղ կիրառությունն առավել իմաստալից է:

Պարագաներ

Հետևյալներից միայն մեկն է անհրաժեշտ.

Ubuntu:

Windows ենթահամակարգ Linux- ի համար ՝ https://ubuntu.com/wsl (Միայն եթե չունեք Linux/MacOS)

MacOS: Պահանջում է MacBook

Սա պարտադիր է.

Mosquitto MQTT բրոքեր - ներբեռնվել է apt -get- ի միջոցով (Փաստաթղթեր ՝

Քայլ 1: Նախնական կարգավորում (կախված ձեր OS- ից)

MacOS/Linux:

Կարգավորում չի պահանջվում, պարզապես բացեք ձեր տերմինալը և անցեք Mosquitto Setup- ին:

Windows:

Եթե դուք Windows- ում եք, ապա ձեզ հարկավոր է տեղադրել Windows- ի ենթահամակարգը Linux- ի համար: Սա չափազանց հեշտ օգտագործման և չափազանց արժեքավոր գործիք է, որը թույլ է տալիս գործարկել Ubuntu տերմինալը Windows- ի ներսում: Անհրաժեշտ չէ տեղադրել և երկբեռնել Ubuntu- ն միայն տերմինալում զարգացումը փորձարկելու համար:

Տեղադրման քայլեր.

1. Գնացեք Windows Store և որոնեք ubuntu

2. Ներբեռնեք և տեղադրեք Windows- ի Linux ենթահամակարգը Linux- ի համար

3. Բացեք ծրագիրը և հետևեք հրահանգներին ՝ կարգավորումն ավարտելու համար, և պատրաստ եք շարունակել:

Քայլ 2: Mosquitto Setup:

Mosquitto Setup
Mosquitto Setup
Mosquitto Setup
Mosquitto Setup
Mosquitto Setup
Mosquitto Setup

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

Mosquitto- ն Linux- ի վրա հիմնված MQTT բրոքեր է `մի շարք գործառույթներով: Ես հիմա չեմ անդրադառնա այդ գործառույթի առանձնահատկություններին, բայց մի քանի հիմնական պահանջներ, որոնք նա կատարում է, օգտագործողի/գաղտնաբառի իսկությունն է, և TLS կոդավորումը, որոնք բոլորն էլ օգտակար են Իրերի ինտերնետի սարքերի զարգացման համար:

Քայլեր.

Այս բոլոր քայլերը պետք է ավարտվեն տերմինալի պատուհանում:

1. Տեղադրեք Mosquitto և MQTT հաճախորդներ

sudo apt-get տեղադրել mosquitto մոծակ-հաճախորդներ

2. Բաժանորդագրվեք թեմային

mosquitto_sub -t "test"

Այն, ինչ դա անում է, բաժանորդագրվում է թեմային: Այս թեման նշվում է «-t»-ով, իսկ թեմայի արժեքը «թեստ» է: «-T»-ին հետևող այս արժեքը կարող է լինել այն ամենը, ինչ ցանկանում եք ՝ պահպանելով մի քանի հատուկ վերապահումների համար:

3. Բացեք տերմինալի նոր պատուհան և հրապարակեք հաղորդագրություն «թեստ» թեմային

mosquitto_pub -t "test" -m "Hello World with MQTT!"

Սա հրապարակում է հաղորդագրություն «թեստ» թեմային ՝ թույլ տալով մեր մյուս տերմինալային օրինակին ստանալ հաղորդագրությունը բաժանորդագրության կողմում: Հրապարակված հաղորդագրությունը նշվում է «-m»-ով, իսկ հաղորդագրության արժեքը ՝ «Hello World With MQTT»: Այս հաղորդագրությունը, ինչպես և թեման, կարող է փոխվել այն, ինչ ցանկանում եք:

4. Գնացեք առաջին տերմինալի պատուհանը `ձեր արդյունքները տեսնելու համար: Դուք պետք է ստանաք հաղորդագրություն, որի վրա գրված է `« Hello World With MQTT »: Եթե դա չեք տեսնում, համոզվեք, որ մուտքագրել եք ճիշտ թեման: Եթե դա հաջողությամբ ավարտել եք, շարունակեք խաղալ դրա հետ: Փորձեք տարբեր թեմաներ ՝ ենթաթեմաներով և տարբեր հաղորդագրություններով:

Քայլ 3: Ամփոփեք:

Վերջ! Ամեն ինչ ավարտելուց հետո դուք հասկանում եք MQTT- ի գործունեության հիմունքները: Սա շատ տարրական ձեռնարկ է, որը պարզապես ցույց է տալիս MQTT արձանագրության նվազագույնը: Future Instructables- ը ավելի խորը կանդրադառնա, թե ինչպես է գործնականում գործում արձանագրությունը իրերի ինտերնետի հետ, մասնավորապես ՝ Arduino- ով աշխատող ESP8266 մոդուլների դեպքում: Իմ առաջին գործնական կիրառումը կլինի խելացի սուրճ պատրաստողը, որն այժմ ունեմ իմ սենյակում: Եթե ցանկանում եք սովորել, թե ինչպես պատրաստել սուրճ պատրաստող սարք, որը կառավարելի կլինի ինչպես ձեր հեռախոսից, այնպես էլ Alexa- ից, համոզվեք, որ հետևեք ինձ ավելի շատ ձեռնարկների համար:

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