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

Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT: 8 քայլ
Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT: 8 քայլ

Video: Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT: 8 քայլ

Video: Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT: 8 քայլ
Video: BTT SKR2 - Basics SKR 2 (Rev B) 2024, Հուլիսի
Anonim
Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT
Raspberry Pi Խոսելով ESP8266- ի հետ `օգտագործելով MQTT

Այս նախագծում ես կբացատրեմ, թե որն է 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 հասցեն

Ինչպես կարգավորել ստատիկ IP հասցեն
Ինչպես կարգավորել ստատիկ 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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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 Script
Python Script
Python Script
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: Արդյունք

Image
Image
Արդյունք
Արդյունք

Համոզվեք, որ սցենարը աշխատում է, հակառակ դեպքում այն չի կարող կառավարել led կոճակները:

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