Sadržaj:

Raspberry Pi razgovara s ESP8266 koristeći MQTT: 8 koraka
Raspberry Pi razgovara s ESP8266 koristeći MQTT: 8 koraka

Video: Raspberry Pi razgovara s ESP8266 koristeći MQTT: 8 koraka

Video: Raspberry Pi razgovara s ESP8266 koristeći MQTT: 8 koraka
Video: Домашняя автоматизация своими руками — ESP32, Raspberry Pi, Node Red, MQTT, Умный дом || Проект Интернета вещей. Часть 1. 2024, Srpanj
Anonim
Raspberry Pi razgovara s ESP8266 pomoću MQTT -a
Raspberry Pi razgovara s ESP8266 pomoću MQTT -a

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

Malina Pi
Malina Pi
Malina Pi
Malina Pi
Malina Pi
Malina Pi
Malina Pi
Malina 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

Kako postaviti statičku IP adresu
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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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

Python skripta
Python skripta
Python skripta
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

Priključci i shema kola
Priključci i shema kola
Priključci i shema kola
Priključci i shema kola

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

Image
Image
Proizlaziti
Proizlaziti

Provjerite je li skripta pokrenuta, u protivnom neće moći kontrolirati LED diode pomoću gumba.

Preporučeni: