Բովանդակություն:
- Քայլ 1: Ինչ է MQTT- ը և ինչպես է այն աշխատում
- Քայլ 2: Ազնվամորի Պի
- Քայլ 3. Ինչպես կարգավորել ստատիկ IP հասցեն
- Քայլ 4: NodeMCU
- Քայլ 5: Python Script
- Քայլ 6: Միացումներ և սխեմայի դիագրամ
- Քայլ 7: Արդյունք
Video: Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT: 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Այս նախագծում ես կբացատրեմ, թե որն է MQTT արձանագրությունը և ինչպես է այն օգտագործվում սարքերի միջև հաղորդակցվելու համար: Այնուհետև, որպես գործնական ցուցադրում, ես ցույց կտամ, թե ինչպես ստեղծել հաճախորդի և բրոքերի համակարգ, որտեղ ESP8266 մոդուլը, ինչպես նաև RPi խոսակցությունները կոճակը սեղմելիս միմյանց ուղարկել կամ հաղորդագրություն ուղարկել:
Պահանջվում է նյութ
1. Ազնվամորի Պի 3
2. NodeMCU
3. LED
4. Կոճակ
5. Ռեզիստորներ (10k, 475 օմ)
Քայլ 1: Ինչ է MQTT- ը և ինչպես է այն աշխատում
MQTT
MQTT- ը մեքենայից մեքենա (M2M) տվյալների փոխանցման արձանագրություն է: MQTT- ն ստեղծվել է բազմաթիվ սարքերից տվյալների հավաքման և այնուհետև այդ տվյալները ՏՏ ենթակառուցվածք տեղափոխելու նպատակով: Այն թեթև է, և, հետևաբար, իդեալական է հեռակա մոնիտորինգի համար, հատկապես M2M միացումներում, որոնք պահանջում են փոքր կոդի հետք կամ որտեղ ցանցի թողունակությունը սահմանափակ է:
Ինչպես է աշխատում MQTT- ն
MQTT- ը հրապարակման/բաժանորդագրման արձանագրություն է, որը թույլ է տալիս ցանցի ծայրամասային սարքերին հրապարակել բրոքեր: Հաճախորդները միանում են այս բրոքերին, որն այնուհետև միջնորդում է երկու սարքերի միջև հաղորդակցությանը: Յուրաքանչյուր սարք կարող է բաժանորդագրվել կամ գրանցվել որոշակի թեմաների: Երբ մեկ այլ հաճախորդ հաղորդագրություն է հրապարակում բաժանորդագրված թեմայի վերաբերյալ, բրոքերը փոխանցում է հաղորդագրությունը բաժանորդագրված ցանկացած հաճախորդի:
MQTT- ը երկկողմանի է և պահպանում է նիստի մասին պետական իրազեկությունը: Եթե ցանցի ծայրամասային սարքը կորցնի կապը, բոլոր բաժանորդագրված հաճախորդներին կտեղեկացվի MQTT սերվերի «Վերջին կամք և կտակ» հնարավորության մասին, որպեսզի համակարգի ցանկացած լիազորված հաճախորդ կարողանա նոր արժեք հրապարակել: ցանցային սարք ՝ պահպանելով երկկողմանի կապ:
Նախագիծը բաժանված է 3 մասի
Նախ, մենք ստեղծում ենք MQTT սերվեր RPi- ում և տեղադրում ենք որոշ գրադարաններ:
Երկրորդ, մենք Arduino IDE- ում գրադարաններ կտեղադրենք, որպեսզի NodeMCU- ն աշխատի MQTT- ի հետ, վերբեռնենք ծածկագիրը և ստուգենք ՝ սերվերն աշխատում է, թե ոչ:
Վերջապես, մենք ստեղծում ենք սցենար Rpi- ով, ներբեռնում ենք պահանջվող ծածկագիրը NodeMCU- ում և գործարկում ենք python- ի սցենարը ՝ սերվերի և հաճախորդի կողմից ղեկավարվող ցուցիչները վերահսկելու համար: Այստեղ սերվերը RPi է, իսկ հաճախորդը ՝ NodeMCU:
Քայլ 2: Ազնվամորի Պի
1. Վերջին MQTT սերվերն ու հաճախորդը RPi- ում տեղադրելու համար, նոր շտեմարանից օգտվելու համար նախ պետք է ներմուծել պահեստային փաթեթի ստորագրման բանալին:
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key ավելացնել mosquitto-repo.gpg.key
2. Պահեստը հասանելի դարձնել բն.
cd /etc/apt/sources.list.d/
3. Կախված Debian- ի որ տարբերակից եք օգտագործում:
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get թարմացում
4. Տեղադրեք Mosquitto սերվերը `օգտագործելով հրամանը:
sudo apt-get տեղադրել մոծակ
Եթե դուք սխալներ եք ստանում Mosquitto- ի նման տեղադրման մեջ:
#################################################################
Հետևյալ փաթեթներն ունեն չկատարված կախվածություն. Մոծակ. Կախված է. փաթեթներ:
#################################################################
Այնուհետեւ օգտագործեք այս հրամանը `խնդիրները շտկելու համար:
sudo apt-ամրագրված կոտրված տեղադրում
5. MQTT սերվերը տեղադրելուց հետո տեղադրեք հաճախորդ ՝ օգտագործելով հրամանը
sudo apt-get տեղադրեք մոծակների հաճախորդներ
Դուք կարող եք ստուգել ծառայությունները `օգտագործելով հրամանը:
systemctl կարգավիճակ mosquitto.service
Քանի որ մեր MQTT սերվերը և հաճախորդը տեղադրված են: Այժմ մենք կարող ենք ստուգել այն ՝ օգտագործելով բաժանորդագրվել և հրապարակել: Բաժանորդագրվելու և հրապարակելու համար կարող եք ստուգել հրամանները կամ այցելել ստորև բերված կայքը:
Mosquitto Sub
Mosquitto Pub
Paho-mqtt գրադարանը տեղադրելու համար օգտագործեք ստորև բերված հրամանը:
sudo pip տեղադրել paho-mqtt
Պահո
Քայլ 3. Ինչպես կարգավորել ստատիկ IP հասցեն
Գնացեք գրացուցակի cd /etc և բացեք dhcpcd.conf ֆայլը ՝ օգտագործելով ցանկացած խմբագիր: Վերջում գրեք այս չորս տողերը:
ինտերֆեյս eth0 static ip_address = 192.168.1.100 // ip, որը ցանկանում եք օգտագործել
wlan0 ինտերֆեյս
ստատիկ ip_address = 192.168.1.68
ստատիկ երթուղիչներ = 192.168.1.1 // ձեր կանխադրված դարպասը
ստատիկ տիրույթի_անուն_սերվերներ = 192.168.1.1
Դրանից հետո պահեք այն և վերագործարկեք ձեր pi- ն:
Քայլ 4: NodeMCU
Տեղադրեք անհրաժեշտ գրադարաններ Arduino IDE- ում ՝ NodeMCU- ի համար
1. Գնալ դեպի ուրվագիծ ==> Ներառել գրադարանը ==> Կառավարել գրադարանները:
2. Որոնեք mqtt և տեղադրեք գրադարան Adafruit- ի կողմից, կամ կարող եք տեղադրել ցանկացած գրադարան:
3. Դա կախված է sleepydog գրադարանից, ուստի մեզ նույնպես պետք է այս գրադարանը:
Programրագիրը տրված է վերևում ՝ պարզապես ստուգելու համար, թե այն աշխատում է, թե ոչ: Այստեղ ես ոչ մի սցենար չեմ ստեղծել RPi- ում: Մենք պարզապես օգտագործում ենք հրամաններ ՝ բաժանորդագրվելու և հրապարակելու համար: Հետագայում վերահսկողություն ստեղծելու համար մենք կստեղծենք սցենար:
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h ==> հյուրընկալողի անուն-t ==> թեմա
-m ==> հաղորդագրություն
Mqtt_check ծրագիրը ստուգելուց հետո ամբողջական ծրագիրը վերբեռնեք NodeMCU- ում
Քայլ 5: Python Script
Ինչպես ես քննարկեցի վերևում, մեզ անհրաժեշտ է python սցենար `կոճակները օգտագործելով led- ները վերահսկելու համար: Այսպիսով, մենք պատրաստվում ենք ստեղծել սցենար: Սցենարը տրված է վերևում:
Երբ սցենարը գործարկում եք, ձեր սցենարը պետք է լինի այնպես, ինչպես պատկերված է, եթե արդյունքի կոդը զրո չէ, ապա դրանք սխալ են, որոնք կարող եք ստուգել paho կայքում:
Քայլ 6: Միացումներ և սխեմայի դիագրամ
Կոճակի, LED- ի միացում NodeMCU- ի հետ
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Կաթոդ (-ve)
GPIO5 (D1) ===> անոդ (+ve)
Կոճակի, LED- ի և RPi- ի միջերես
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> կաթոդ (-ve)
GPIO 24 ===> Անոդ (+ve)
Քայլ 7: Արդյունք
Համոզվեք, որ սցենարը աշխատում է, հակառակ դեպքում այն չի կարող կառավարել led կոճակները:
Խորհուրդ ենք տալիս:
Happyնունդդ շնորհավոր Water Synthesizer- ի հետ MakeyMakey- ի և Scratch- ի հետ. 5 քայլ
Happyնունդդ շնորհավոր Water Synthesizer- ի հետ MakeyMakey- ի և Scratch- ի միջոցով. Ersաղիկների և երգելու փոխարեն կարող եք կառուցել այս տեղադրումը որպես մեծ անակնկալ ծննդյան տարեդարձերի համար
RGB- ի հետ կապը Arduino- ի հետ TinkerCad- ում. 4 քայլ
RGB- ի հետ կապը Arduino- ի հետ TinkerCad- ում. Այս ձեռնարկում դուք կսովորեք Arduino RGB- ի միջոցով ինտերֆեյսերի մասին: RGB լուսարձակը բաղկացած է երեք տարբեր լուսարձակից, անունից կարող եք կռահել, որ այդ LED- ները կարմիր, կանաչ և կապույտ են: Մենք կարող ենք ձեռք բերել շատ այլ գույներ ՝ այս գույները խառնելով: The
Alexa- ի հետ համատեղ IR Bridge օգտագործելով ESP8266: 3 քայլ
Alexa Compatible IR Bridge օգտագործելով ESP8266. Ես ուզում էի իմ Alexa- ի միջոցով իմ խելացի հեռուստացույցը կառավարելու միջոց: Unfortunatelyավոք, իմ Hi-Sense 65 " Smart TV- ն WiFi- ի միջոցով կառավարվելու հնարավորություն չունի: Լավ կլիներ, որ այն ունենար մի տեսակ API, որը ես կարող էի օգտագործել դրա հետ ինտերֆեյսի համար: Այսպիսով, ես ստեղծեցի
Ինչպես օգտագործել MQTT- ը Raspberry Pi- ի և ESP8266- ի հետ/sonoff: 4 քայլ
Ինչպես օգտագործել MQTT- ը Raspberry Pi- ի և ESP8266/sonoff- ի հետ. Բարև բոլորին: Այսօր ես ձեզ ցույց կտամ, թե ինչպես կարգավորել ազնվամորի pi- ի և ESP8266- ի վրա հիմնված sonoff wifi ռելեի անջատիչը `աշխարհի ցանկացած վայրից ձեր կենցաղային տեխնիկան վերահսկելու համար: այս ուսանելի, եթե ուշադիր հետևել եք իմ հրահանգին
ԻՆՉՊԵՍ ԿԱՐՈ ԵՆ ՀԵՏ ՀԵՏ ՀԵՏ չորության չորացման սենսոր `4 քայլ
ՈՐՊԵՍ ԿԱՐՈ ԵՆՔ ՀԵՏ ՀԵՏ ՀԱՎԱՔԱՈ ՍԵՆՍՈՐ. Ողջույն, այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել մի պարզ «ՀՈ DRՅԱՆ ՉՈՐՈ SԹՅԱՆ ՍԵՆՍՈՐ»: Սա իմ առաջին ուսանելի ներողությունն է իմ ծիծաղելի անգլերենի համար: Հողի չորությունը որոշվում է led ցուցիչով: led լույսը wi