Sadržaj:

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

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

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

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

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

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

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

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

Python Script
Python Script
Python Script
Python Script

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

Priključci i shema kola
Priključci i shema kola
Priključci i shema kola
Priključci i shema 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

Image
Image
Rezultat
Rezultat

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

Preporučuje se: