Mundarija:
- 1 -qadam: MQTT nima va u qanday ishlaydi
- 2 -qadam: Raspberry Pi
- 3 -qadam: Statik IP -manzilni qanday sozlash kerak
- 4 -qadam: NodeMCU
- 5 -qadam: Python skript
- 6 -qadam: ulanishlar va sxemalar diagrammasi
- 7 -qadam: natija
Video: Raspberry Pi MQTT yordamida ESP8266 bilan gaplashmoqda: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
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
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
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 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
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
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
Skript ishlayotganiga ishonch hosil qiling, aks holda u tugma yordamida LEDni boshqarolmaydi.
Tavsiya:
Esp8266 (aREST, MQTT, IoT) yordamida Internet/bulutli uyni avtomatlashtirish: 7 qadam (rasmlar bilan)
Esp8266 (aREST, MQTT, IoT) yordamida Internet/bulut bilan boshqariladigan uy avtomatizatsiyasi: bulutli xizmat uchun http://arest.io/ saytidagi barcha kreditlar !! IoT hozirda dunyodagi eng ko'p muhokama qilinayotgan mavzu !! Bulutli serverlar va xizmatlar - bu hozirgi dunyoning diqqatga sazovor joyidir … DISTANCE BARRIER HUKUMI - bu shunday va shunday ham
Internet soati: NTP protokoli bilan ESP8266 NodeMCU yordamida OLED yordamida sana va vaqtni ko'rsatish: 6 qadam
Internet soati: NTP protokoli bilan ESP8266 NodeMCU yordamida OLED yordamida sana va vaqtni ko'rsatish: Salom bolalar, biz Internetdan vaqt oladigan Internet soatini quramiz, shuning uchun bu loyihani ishga tushirish uchun hech qanday RTC kerak emas, unga faqat ishlaydigan Internet aloqasi Va bu loyiha uchun sizga esp8266 kerak bo'ladi, u
Qanday qilib Arduino UNO yordamida dron yasash mumkin - Mikrokontroller yordamida kvadrokopter yasang: 8 qadam (rasmlar bilan)
Qanday qilib Arduino UNO yordamida dron yasash mumkin | Mikrokontroller yordamida kvadrokopter yasang: Kirish Youtube kanalimga tashrif buyuring Drone - bu juda qimmat gadjet (mahsulot). Bu postda men qanday qilib arzon narxda ishlab chiqarishni muhokama qilmoqchiman? Qanday qilib o'z qo'llaringiz bilan arzon narxda shunday qilib yasashingiz mumkin … Xo'sh, Hindistonda barcha materiallar (motorlar, ESClar
Arduino bilan 2.4 Gigagertsli NRF24L01 moduli yordamida simsiz masofadan boshqarish - Nrf24l01 4 kanalli / Quadcopter uchun 6 kanalli uzatuvchi qabul qilgich - Rc vertolyoti - Arduino yordamida Rc samolyoti: 5 qadam (rasmlar bilan)
Arduino bilan 2.4 Gigagertsli NRF24L01 moduli yordamida simsiz masofadan boshqarish | Nrf24l01 4 kanalli / Quadcopter uchun 6 kanalli uzatuvchi qabul qilgich | Rc vertolyoti | Arduino yordamida Rc samolyoti: Rc avtomashinasini boshqarish | Kvadrokopter | Drone | RC samolyoti | RC qayig'i, bizga har doim qabul qiluvchi va uzatuvchi kerak bo'ladi, deylik, RC QUADCOPTER uchun bizga 6 kanalli uzatuvchi va qabul qilgich kerak, va bu turdagi TX va RX juda qimmatga tushadi, shuning uchun biz uni o'zimizda ishlab chiqaramiz
ESP32 yoki ESP8266 yordamida MQTT ogohlantirishlari bilan HiFive1 Arduino tajovuzkorlarini aniqlash: 6 qadam
HiFive1 ESP32 yoki ESP8266 yordamida MQTT ogohlantirishlari bilan Arduino buzg'unchilarini aniqlash: HiFive1-SiFive-dan FE310 protsessori bilan qurilgan Arduino-ga mos keladigan birinchi RISC-V kartasi. Kengash Arduino UNO -dan taxminan 20 barobar tezroq, ammo UNO boshqaruv kengashiga o'xshaydi, u simsiz ulanishga ega emas, xayriyat