Mundarija:

Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda: 8 qadam
Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda: 8 qadam

Video: Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda: 8 qadam

Video: Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda: 8 qadam
Video: ESP32, более мощная чем любая другая Ардуино 2024, Noyabr
Anonim
Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda
Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda

Ushbu loyihada men MQTT protokoli nima ekanligini va u qurilmalar o'rtasida qanday aloqa o'rnatilishini tushuntiraman, keyin amaliy ko'rsatma sifatida men mijoz va broker tizimini qanday o'rnatishni ko'rsataman, bu erda ESP8266 moduli, shuningdek RPi munozarasi. bir -biriga yoki tugma bosilganda xabar yuborish.

Kerakli material

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Tugma

5. Rezistorlar (10k, 475 ohm)

1 -qadam: MQTT nima va u qanday ishlaydi

MQTT

MQTT-bu mashinadan mashinaga (M2M) ma'lumotlarni uzatish protokoli. MQTT ko'plab qurilmalardan ma'lumotlarni to'plash va keyinchalik ularni IT infratuzilmasiga o'tkazish maqsadida yaratilgan. Bu engil va shuning uchun masofadan turib kuzatish uchun juda mos keladi, ayniqsa, M2M ulanishlari, bu kichik kod izini talab qiladigan yoki tarmoq o'tkazish qobiliyati cheklangan.

MQTT qanday ishlaydi

MQTT-tarmoqqa ulangan qurilmalarni brokerga nashr qilish imkonini beruvchi nashr etish/obuna bo'lish protokoli. Mijozlar ushbu brokerga ulanishadi, u keyinchalik ikki qurilma o'rtasidagi aloqada vositachilik qiladi. Har bir qurilma ma'lum mavzularga obuna bo'lishi yoki ro'yxatdan o'tishi mumkin. Boshqa mijoz obuna bo'lgan mavzu bo'yicha xabar e'lon qilganda, broker xabarni obuna bo'lgan har qanday mijozga yuboradi.

MQTT ikki tomonlama bo'lib, sessiya to'g'risida xabardorlikni saqlaydi. Agar tarmoqqa ulangan qurilma ulanishni yo'qotsa, barcha obunachilarga MQTT serverining "Oxirgi vasiyat va vasiyat" xususiyati to'g'risida xabar beriladi, shunda tizimdagi har qanday vakolatli mijoz yangi qiymatni yana chetga chiqarishi mumkin. ikki tomonlama ulanishni ta'minlaydigan tarmoq qurilmasi.

Loyiha 3 qismga bo'lingan

Birinchidan, biz RPi -da MQTT serverini yaratamiz va ba'zi kutubxonalarni o'rnatamiz.

Ikkinchidan, biz MQTT bilan ishlash uchun NodeMCU uchun Arduino IDE kutubxonalarini o'rnatamiz, kodni yuklaymiz va server ishlayaptimi yoki yo'qligini tekshiramiz.

Nihoyat, biz Rpi -da skript yaratamiz, kerakli kodni NodeMCU -ga yuklaymiz va serverlarni ham, mijozlar tomonidan ham LEDlarni boshqarish uchun python skriptini ishga tushiramiz. Bu erda server RPi va mijoz NodeMCU.

2 -qadam: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Eng so'nggi MQTT serveri va mijozini RPi -ga o'rnatish uchun, yangi ombordan foydalanish uchun avval ombor paketini imzolash kalitini import qilish kerak.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key qo'shish mosquitto-repo.gpg.key

2. Ma'lumotlar omborini apt uchun mavjud qiling.

cd /etc/apt/sources.list.d/

3. Debianning qaysi versiyasidan foydalanayotganingizga qarab.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get yangilanishi

4. Buyruq yordamida Mosquitto serverini o'rnating.

sudo apt-get chivinni o'rnating

Agar siz "Mosquitto" ni o'rnatishda bunday xatolarga duch kelsangiz.

#################################################################

Quyidagi paketlar bajarilmagan bog'liqliklarga ega: chivin: Bog'liq: libssl1.0.0 (> = 1.0.1), lekin uni o'rnatish mumkin emas Bog'liq: libwebsockets3 (> = 1.2), lekin uni o'rnatib bo'lmaydi E: Muammolarni tuzatib bo'lmayapti, siz buzilib qoldingiz paketlar.

#################################################################

Keyin muammolarni hal qilish uchun ushbu buyruqdan foydalaning.

sudo apt-tuzatish buzilgan

5. MQTT serverini o'rnatgandan so'ng, buyruq yordamida mijozni o'rnating

sudo apt-get chivin-mijozlarni o'rnating

Buyruq yordamida xizmatlarni tekshirishingiz mumkin.

systemctl holati mosquitto.service

Bizning MQTT serverimiz va mijozimiz o'rnatilgani uchun. Endi biz obuna bo'lish va nashr etish orqali tekshirishimiz mumkin. Obuna bo'lish va nashr qilish uchun siz buyruqlarni tekshirishingiz yoki quyida ko'rsatilgan veb -saytga tashrif buyurishingiz mumkin.

Mosquitto Sub

Mosquitto Pub

Paho-mqtt kutubxonasini o'rnatish uchun quyidagi buyruqdan foydalaning.

sudo pip o'rnatish paho-mqtt

Paxo

3 -qadam: Statik IP -manzilni qanday sozlash kerak

Statik IP -manzilni qanday sozlash kerak
Statik IP -manzilni qanday sozlash kerak

Cd /etc katalogiga o'ting va dhcpcd.conf faylini istalgan tahrirlovchidan oching. Oxirida bu to'rt qatorni yozing.

eth0 statik ip_address = 192.168.1.100 // ishlatmoqchi bo'lgan ip interfeysi

wlan0 interfeysi

statik ip_adress = 192.168.1.68

statik yo'riqnoma = 192.168.1.1 // sizning standart shlyuzingiz

statik domain_name_servers = 192.168.1.1

Shundan so'ng, uni saqlang va pi -ni qayta ishga tushiring.

4 -qadam: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

NodeMCU uchun Arduino IDE -da kerakli kutubxonalarni o'rnating

1. Sketch ==> Kutubxonani qo'shish ==> Kutubxonalarni boshqarish -ga o'ting.

2. mqtt qidiring va kutubxonani Adafruit -dan o'rnating yoki xohlagan kutubxonani o'rnatishingiz mumkin.

3. Bu sleepydog kutubxonasiga bog'liq, shuning uchun bizga ham bu kutubxona kerak.

Dastur faqat uning ishlayaptimi yoki yo'qligini tekshirish uchun berilgan. Bu erda men RPi -da hech qanday skript yaratmadim. Biz faqat obuna bo'lish va nashr qilish uchun buyruqlardan foydalanmoqdamiz. Keyinchalik nazorat qilish uchun skript yaratamiz.

mosquitto_pub -h malina -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 ==> mezbon nomi-t ==> mavzu

-m ==> xabar

Mqtt_check dasturini tekshirgandan so'ng NodeMCU -da to'liq dasturni yuklang

5 -qadam: Python skript

Python skript
Python skript
Python skript
Python skript

Yuqorida aytib o'tganimdek, biz tugmalar yordamida LEDlarni boshqarish uchun python skriptiga muhtojmiz. Shunday qilib, biz skript yaratmoqchimiz. Skript yuqorida keltirilgan.

Skriptni ishga tushirganingizda skript rasmda ko'rsatilgandek bo'lishi kerak, agar natija kodi nolga teng bo'lmasa, ular xato bo'lib, siz paho veb -saytidagi xatoni tekshirishingiz mumkin.

6 -qadam: ulanishlar va sxemalar diagrammasi

Ulanishlar va sxemalar sxemasi
Ulanishlar va sxemalar sxemasi
Ulanishlar va sxemalar sxemasi
Ulanishlar va sxemalar sxemasi

NodeMCU bilan LED tugmachasining o'zaro aloqasi

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katod (-ve)

GPIO5 (D1) ===> Anod (+ve)

Tugma interfeysi, RPi bilan LED

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katod (-ve)

GPIO 24 ===> Anod (+ve)

7 -qadam: natija

Image
Image
Natija
Natija

Skript ishlayotganiga ishonch hosil qiling, aks holda u tugma yordamida LEDni boshqarolmaydi.

Tavsiya: