Sadržaj:
- Korak 1: Šta je MQTT i kako radi
- Korak 2: Raspberry Pi
- Korak 3: Kako postaviti statičku IP adresu
- Korak 4: NodeMCU
- Korak 5: Python skripta
- Korak 6: Veze i dijagram kola
- Korak 7: Rezultat
Video: Raspberry Pi razgovara sa ESP8266 koristeći MQTT: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U ovom projektu ću objasniti šta je MQTT protokol i kako se koristi za komunikaciju između uređaja. Zatim ću, kao praktičnu demonstraciju, pokazati kako postaviti sistem klijent i broker, gdje ESP8266 modul, kao i RPi govore jedni drugima ili poslati poruku kada se pritisne dugme.
Potreban materijal
1. Malina Pi 3
2. NodeMCU
3. LED
4. Dugme
5. Otpornici (10 k, 475 ohma)
Korak 1: Šta je MQTT i kako radi
MQTT
MQTT je protokol za prijenos podataka između mašina (M2M). MQTT je stvoren s ciljem prikupljanja podataka s mnogih uređaja, a zatim prenošenja tih podataka u IT infrastrukturu. Lagan je i stoga idealan za daljinsko praćenje, posebno u M2M vezama koje zahtijevaju mali otisak koda ili gdje je propusnost mreže ograničena.
Kako MQTT radi
MQTT je protokol za objavljivanje/pretplatu koji omogućava uređajima s ivice mreže objavljivanje posredniku. Klijenti se povezuju s ovim posrednikom, koji zatim posreduje u komunikaciji između dva uređaja. Svaki uređaj se može pretplatiti ili registrirati na određene teme. Kada drugi klijent objavi poruku o pretplaćenoj temi, posrednik prosljeđuje poruku svakom klijentu koji se pretplatio.
MQTT je dvosmjeran i održava svijest o stanju sesije. Ako uređaj s ruba mreže izgubi povezanost, svi pretplaćeni klijenti bit će obaviješteni o funkciji „Posljednja volja i zavjet“MQTT servera, tako da svaki ovlašteni klijent u sistemu može objaviti novu vrijednost na rubu mrežni uređaj, održavajući dvosmjernu povezanost.
Projekat je podijeljen u 3 dijela
Prvo, stvaramo MQTT server na RPi i instaliramo neke biblioteke.
Drugo, instalirat ćemo biblioteke u Arduino IDE za NodeMCU koje će raditi s MQTT -om, učitati kôd i provjeriti radi li poslužitelj ili ne.
Konačno, kreiramo skriptu u Rpi -u, učitavamo potrebni kod u NodeMCU i pokrećemo python skriptu za kontrolu LED -ova sa strane servera i klijenta. Ovdje je poslužitelj RPi, a klijent NodeMCU.
Korak 2: Raspberry Pi
1. Za instaliranje najnovijeg MQTT poslužitelja i klijenta u RPi, za korištenje novog spremišta prvo morate uvesti ključ za potpisivanje paketa spremišta.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Učinite spremište dostupnim za apt.
cd /etc/apt/sources.list.d/
3. Ovisno o verziji Debiana koju koristite.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Instalirajte Mosquitto server pomoću naredbe.
sudo apt-get install mosquitto
Ako dobivate greške pri instaliranju ovakvog Mosquitta.
#################################################################
Sljedeći paketi imaju neispunjene zavisnosti: mosquitto: Ovisi: libssl1.0.0 (> = 1.0.1), ali se ne može instalirati Ovisi: libwebsockets3 (> = 1.2), ali se ne može instalirati E: Nije moguće riješiti probleme, držali ste slomljene paketi.
#################################################################
Zatim upotrijebite ovu naredbu za rješavanje problema.
sudo apt-fix-broken install
5. Nakon instaliranja MQTT servera, instalirajte klijenta pomoću naredbe
sudo apt-get install mosquitto-clients
Usluge možete provjeriti pomoću naredbe.
systemctl status mosquitto.service
Kako je naš MQTT server i klijent instaliran. Sada to možemo provjeriti pomoću pretplate i objavljivanja. Za pretplatu i objavljivanje možete provjeriti naredbe ili posjetiti web stranicu kako je dolje navedeno.
Mosquitto Sub
Mosquitto Pub
Za instaliranje paho-mqtt biblioteke koristite naredbu ispod.
sudo pip install paho-mqtt
Paho
Korak 3: Kako postaviti statičku IP adresu
Idite u direktorij cd /etc i otvorite datoteku dhcpcd.conf pomoću bilo kojeg uređivača. Na kraju napišite ova četiri retka.
sučelje eth0 static ip_address = 192.168.1.100 // ip koji želite koristiti
interfejs wlan0
statička ip_adresa = 192.168.1.68
statički usmjerivači = 192.168.1.1 // vaš zadani pristupnik
statički serveri_ime_domena_192.168.1.1
Nakon toga ga spremite i ponovo pokrenite svoj pi.
Korak 4: NodeMCU
Instalirajte potrebne biblioteke u Arduino IDE za NodeMCU
1. Idite na Sketch ==> Include library ==> Manage libraries.
2. Potražite mqtt i instalirajte biblioteku po Adafruit -u ili možete instalirati bilo koju biblioteku.
3. Ovisi o biblioteci sleepydog pa nam je i ova biblioteka potrebna.
Program je dat gore, samo radi provjere radi li ili ne. Ovdje nisam stvorio nikakvu skriptu u RPi -u. Mi samo koristimo naredbe za pretplatu i objavljivanje. Kasnije ćemo kreirati skriptu za kontrolu.
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 ==> naziv hosta-t ==> tema
-m ==> poruka
Nakon provjere programa Mqtt_check otpremite cijeli program u NodeMCU
Korak 5: Python skripta
Kao što sam već rekao, potrebna nam je python skripta za kontrolu LED dioda pomoću dugmadi. Dakle, kreirat ćemo skriptu. Scenarij je dat gore.
Kada pokrenete skriptu, vaša skripta bi trebala izgledati kao što je prikazano na slici, ako kôd rezultata nije nula, onda je to greška koju možete provjeriti na paho web stranici.
Korak 6: Veze i dijagram kola
Povezivanje dugmeta, LED sa NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katoda (-ve)
GPIO5 (D1) ===> Anoda (+ve)
Povezivanje dugmeta, LED sa RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katoda (-ve)
GPIO 24 ===> Anoda (+ve)
Korak 7: Rezultat
Provjerite je li skripta pokrenuta, u protivnom neće moći kontrolirati LED diode pomoću gumba.
Preporučuje se:
IoT Finder Keychain Finder koristeći ESP8266-01: 11 koraka (sa slikama)
IoT Finder Keychain Finder koristeći ESP8266-01: Jeste li kao da ja uvijek zaboravljam gdje ste držali ključeve? Nikada ne mogu pronaći svoje ključeve na vrijeme! I zbog ove moje navike zakasnio sam na fakultet, u prodaju limitiranih ratnih zvijezda u ograničenom izdanju (još uvijek uznemiren!), Datum (nikad nije odabrala
IOT - Objavite podatke na Thingspeak koristeći ESP8266: 3 koraka
IOT | Objavljivanje podataka na stvarima pomoću ESP8266: Danas je IoT u trendu i mnoge mašine imaju podatke za učitavanje preko oblaka i analizu podataka. Mali senzori ažuriraju podatke u oblaku, a aktuatori s druge strane djeluju na njega. Objasnit ću jedan od primjera IoT -a. Ja ovaj članak i ja
Napravite WiFi toplotnu mapu koristeći ESP8266 i Arduino: 5 koraka
Napravite WiFi toplotnu mapu pomoću ESP8266 i Arduina: Pregled U ovom vodiču ćemo napraviti toplotnu mapu okolnih Wi-Fi signala koristeći Arduino i ESP8266. Šta ćete naučiti Uvod u WiFi signale Kako otkriti specifične signale sa ESP8266Napravite toplotnu mapu koristeći Arduino i TFT disp
ESP8266 Vodič za NODEMCU BLYNK IOT - Esp8266 IOT koristeći Blunk i Arduino IDE - Upravljanje LED diodama putem Interneta: 6 koraka
ESP8266 Vodič za NODEMCU BLYNK IOT | Esp8266 IOT koristeći Blunk i Arduino IDE | Upravljanje LED diodama putem Interneta: Zdravo dečki, u ovim uputstvima naučit ćemo kako koristiti IOT sa našim ESP8266 ili Nodemcu. Za to ćemo koristiti aplikaciju blynk. Zato ćemo koristiti naš esp8266/nodemcu za kontrolu LED dioda putem interneta. Dakle, aplikacija Blynk bit će povezana s našim esp8266 ili Nodemcu
Blic ESP-01 (ESP8266) Bez USB-serijskog adaptera koristeći Raspberry Pi: 3 koraka
Flash ESP-01 (ESP8266) bez USB-to-serijskog adaptera koristeći Raspberry Pi: Ova instrukcija vas vodi kako započeti programiranje vašeg ESP8266 mikrokontrolera na ESP-01 WIFI modulu. Sve što vam je potrebno za početak (osim modula ESP-01, naravno) je Raspberry Pi Jumper žica 10K otpornik koji sam htio obnoviti