Sadržaj:
- Korak 1: Što je MQTT i kako djeluje
- Korak 2: Raspberry Pi
- Korak 3: Kako postaviti statičku IP adresu
- Korak 4: NodeMCU
- Korak 5: Python skripta
- Korak 6: Priključci i dijagram kruga
- Korak 7: Rezultat
Video: Raspberry Pi razgovara s ESP8266 koristeći MQTT: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
U ovom projektu objasnit ću što je MQTT protokol i kako se koristi za komunikaciju između uređaja. Zatim ću, kao praktičnu demonstraciju, pokazati kako postaviti sustav klijenta i posrednika, gdje govore modul ESP8266 kao i RPi jedni drugima ili poslati poruku kada se pritisne gumb.
Potreban materijal
1. Malina Pi 3
2. ČvorMCU
3. LED
4. Gumb
5. Otpornici (10 k, 475 ohma)
Korak 1: Što je MQTT i kako djeluje
MQTT
MQTT je protokol prijenosa podataka između strojeva (M2M). MQTT je stvoren s ciljem prikupljanja podataka s mnogih uređaja i 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ćuje rubnim uređajima da se objavljuju posredniku. Klijenti se povezuju s ovim posrednikom, koji zatim posreduje u komunikaciji između dva uređaja. Svaki se uređaj može pretplatiti ili registrirati na određene teme. Kad drugi klijent objavi poruku o pretplaćenoj temi, posrednik poruku prosljeđuje 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 značajci "Posljednja volja i testament" poslužitelja MQTT tako da svaki ovlašteni klijent u sustavu može objaviti novu vrijednost na rubu mrežni uređaj, održavajući dvosmjernu povezanost.
Projekt je podijeljen u 3 dijela
Prvo, stvaramo MQTT poslužitelj na RPi i instaliramo neke knjižnice.
Drugo, instalirat ćemo knjižnice u Arduino IDE za NodeMCU da rade s MQTT -om, učitati kôd i provjeriti radi li poslužitelj ili ne.
Konačno, stvaramo skriptu u Rpi -ju, učitavamo potrebni kod u NodeMCU i pokrećemo python skriptu za kontrolu LED -ova sa poslužitelja 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 najprije 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.listssudo wget
sudo wget
sudo apt-get ažuriranje
4. Instalirajte Mosquitto poslužitelj pomoću naredbe.
sudo apt-get install mosquitto
Ako dobivate pogreške pri instaliranju ovakvog Mosquitta.
#################################################################
Sljedeći paketi imaju neispunjene ovisnosti: 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 instalacije MQTT poslužitelja, instalirajte klijenta pomoću naredbe
sudo apt-get install mosquitto-clients
Usluge možete provjeriti pomoću naredbe.
systemctl status mosquitto.usluga
Kako je naš MQTT poslužitelj 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 biblioteke paho-mqtt koristite naredbu u nastavku.
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
sučelje wlan0
statička ip_adresa = 192.168.1.68
statički usmjerivači = 192.168.1.1 // vaš zadani pristupnik
statički poslužitelji_ime_domene = 192.168.1.1
Nakon toga spremite ga i ponovno pokrenite svoj pi.
Korak 4: NodeMCU
Instalirajte potrebne knjižnice u Arduino IDE za NodeMCU
1. Idite na Sketch ==> Include library ==> Manage libraries.
2. Potražite mqtt i instalirajte knjižnicu po Adafruit -u ili možete instalirati bilo koju knjižnicu.
3. Ovisi o biblioteci sleepydog pa nam i ova knjižnica treba.
Program je dat gore, samo radi provjere radi li ili ne radi. Ovdje nisam stvorio nikakvu skriptu u RPi -u. Mi samo koristimo naredbe za pretplatu i objavljivanje. Kasnije ćemo stvoriti 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 učitajte cijeli program u NodeMCU
Korak 5: Python skripta
Kao što sam već rekao, potrebna nam je python skripta za upravljanje LED diodama pomoću gumba. Dakle, stvorit ćemo skriptu. Scenarij je dat gore.
Kad pokrenete skriptu, vaša bi skripta trebala izgledati kao što je prikazano na slici, ako kôd rezultata nije nula, onda je to pogreška koju možete provjeriti na web stranici paho.
Korak 6: Priključci i dijagram kruga
Sučelje tipke, LED s NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katoda (-ve)
GPIO5 (D1) ===> Anoda (+ve)
Sučelje tipke, LED s 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čeni:
IOT - Objavite podatke na Thingspeak koristeći ESP8266: 3 koraka
IOT | Objavljivanje podataka na stvarima pomoću ESP8266: Danas je IoT u trendu i mnogi strojevi imaju podatke za prijenos preko oblaka i analizu podataka. Mali senzori ažuriraju podatke na oblaku, a aktuatori na drugom kraju djeluju na njega. Objasnit ću jedan od primjera IoT -a. Ja ovaj članak i ja
ThingSpeak koristeći ESP8266: 8 koraka
ThingSpeak pomoću ESP8266: Ovo su upute za korištenje ESP32 za slanje podataka u Thing Speak (MQTT posrednik) i samo pregledavanje nadziranih podataka ili korištenje podataka na vašoj web stranici ili za proširenje vašeg projekta
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 uputama naučit ćemo kako koristiti IOT s našim ESP8266 ili Nodemcu. Za to ćemo koristiti aplikaciju blynk. Pa ćemo koristiti naš esp8266/nodemcu za kontrolu LED dioda putem interneta. Dakle, aplikacija Blynk bit će spojena na naš esp8266 ili Nodemcu
Minimalistički IoT sat (koristeći ESP8266, Adafruit.io, IFTTT i Arduino IDE): 10 koraka (sa slikama)
Minimalistički IoT sat (koristeći ESP8266, Adafruit.io, IFTTT i Arduino IDE): U ovom vodiču pokazujem kako možete napraviti minimalistički sat sinkroniziran s internetom. Testirao sam ga s dvije različite ploče zasnovane na ESP8266: Firebeetle i NodeMCU. Mikrokontroler dobiva trenutno vrijeme s Google poslužitelja i prikazuje ga na
Naučite kako postaviti Wifi modul ESP8266 koristeći samo Arduino IDE: 4 koraka
Naučite kako postaviti Wifi modul ESP8266 korištenjem samo Arduino IDE -a: U ovom vodiču pokazat ću vam kako postaviti ESP8266 modul samo pomoću Arduino IDE -a, a ne vanjskog TTL pretvarača