Բովանդակություն:
- Պարագաներ
- Քայլ 1: Նախնական կարգավորում (կախված ձեր OS- ից)
- Քայլ 2: Mosquitto Setup:
- Քայլ 3: Ամփոփեք:
Video: SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները. 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
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:
Այսպիսով, ինչպես քննարկվել է 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- ից, համոզվեք, որ հետևեք ինձ ավելի շատ ձեռնարկների համար:
Խորհուրդ ենք տալիս:
LoRa 3 կմ -ից 8 կմ անլար հաղորդակցություն ցածր գնով E32 (sx1278/sx1276) սարք Arduino- ի, Esp8266- ի կամ Esp32- ի համար ՝ 15 քայլ
LoRa 3Km- ից 8Km անլար հաղորդակցություն ցածր գնով E32 (sx1278/sx1276) Սարք Arduino- ի, Esp8266- ի կամ Esp32- ի համար. Ես ստեղծում եմ գրադարան ՝ EBYTE E32- ը կառավարելու համար ՝ LoRa սարքի Semtech շարքի հիման վրա, շատ հզոր, պարզ և էժան սարք: Դուք կարող եք գտնել 3Km տարբերակ այստեղ, 8Km տարբերակ այստեղ Նրանք կարող են աշխատել 3000 մ -ից 8000 մ հեռավորության վրա, և նրանք ունեն բազմաթիվ հնարավորություններ
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա ՝ 5 քայլ
Անլար դռների ցուցիչ - ծայրահեղ ցածր էներգիա. Եվս մեկ դռան ցուցիչ !! Այս սենսոր ստեղծելու մոտիվացիան ինձ համար այն էր, որ շատերը, որոնք ես տեսա ինտերնետում, ունեին այս կամ այն սահմանափակումները: Ինձ համար սենսորի նպատակներից են. 1. Սենսորը պետք է լինի շատ արագ `գերադասելի է պակաս, քան
Անլար կոդավորված հաղորդակցություն Arduino. 5 քայլ
Անլար կոդավորված հաղորդակցություն Arduino. Բարև բոլորին, այս երկրորդ հոդվածում ես ձեզ կբացատրեմ, թե ինչպես օգտագործել Atecc608a չիպը `ձեր անլար հաղորդակցությունն ապահովելու համար: Դրա համար ես կօգտագործեմ NRF24L01+ անլար մասի և Arduino UNO- ի համար: ATECC608A միկրո չիպը նախագծվել է
Երկար հեռավորություն, 1.8 կմ, Arduino- ից Arduino անլար հաղորդակցություն HC-12- ով. 6 քայլ (նկարներով)
Երկար հեռավորություն, 1.8 կմ, Arduino- ից Arduino անլար հաղորդակցություն HC-12- ի հետ. կապի մոդուլ, որը շատ օգտակար է, չափազանց հզոր և հեշտ օգտագործման համար: Նախ կթողնեք
Անլար հաղորդակցություն ՝ օգտագործելով NRF24L01 հաղորդիչ մոդուլը Arduino- ի վրա հիմնված նախագծերի համար. 5 քայլ (նկարներով)
Անլար հաղորդակցություն ՝ օգտագործելով NRF24L01 հաղորդիչ մոդուլը Arduino- ի վրա հիմնված նախագծերի համար. Սա իմ երկրորդ ուսանելի ձեռնարկն է ռոբոտների և միկրոկարգավորիչների մասին: Իսկապես զարմանալի է տեսնել ձեր ռոբոտին կենդանի և աշխատած սպասվածի պես: Հավատացեք ինձ, ավելի զվարճալի կլինի, եթե արագ և արագ կառավարեք ձեր ռոբոտին կամ անլար այլ իրերին: