Cuprins:

Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT: 8 pași
Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT: 8 pași

Video: Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT: 8 pași

Video: Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT: 8 pași
Video: #2 ESP8266 OLED animation 2024, Noiembrie
Anonim
Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT
Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT

În acest proiect, voi explica ce este protocolul MQTT și cum este utilizat pentru a comunica între dispozitive. Apoi, ca demonstrație practică, voi demonstra cum să configurați un sistem client și brocker, unde un modul ESP8266, precum și RPi vorbesc unul către celălalt sau trimiteți mesaj atunci când este apăsat un buton.

Material necesar

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Buton

5. Rezistoare (10k, 475 ohm)

Pasul 1: Ce este MQTT și cum funcționează

MQTT

MQTT este un protocol de transfer de date de la mașină la mașină (M2M). MQTT a fost creat cu scopul de a colecta date de la mai multe dispozitive și apoi de a transporta aceste date către infrastructura IT. Este ușor și, prin urmare, ideal pentru monitorizarea de la distanță, în special în conexiunile M2M care necesită o amprentă mică de cod sau în care lățimea de bandă a rețelei este limitată.

Cum funcționează MQTT

MQTT este un protocol de publicare / abonare care permite dispozitivelor edge-of-network să publice la un broker. Clienții se conectează la acest broker, care apoi mediază comunicarea între cele două dispozitive. Fiecare dispozitiv se poate abona sau se poate înregistra la anumite subiecte. Când un alt client publică un mesaj pe un subiect abonat, brokerul transmite mesajul către orice client care s-a abonat.

MQTT este bidirecțional și menține conștientizarea sesiunii. Dacă un dispozitiv edge-of-network își pierde conectivitatea, toți clienții abonați vor fi anunțați cu caracteristica „Last Will and Testament” a serverului MQTT, astfel încât orice client autorizat din sistem să poată publica o nouă valoare înapoi la marginea dispozitiv de rețea, menținând conectivitatea bidirecțională.

Proiectul este împărțit în 3 părți

În primul rând, creăm server MQTT pe RPi și instalăm câteva biblioteci.

În al doilea rând, vom instala biblioteci în Arduino IDE pentru ca NodeMCU să funcționeze cu MQTT, vom încărca codul și vom verifica dacă serverul funcționează sau nu.

În cele din urmă, creăm un script în Rpi, încărcăm codul necesar în NodeMCU și rulăm scriptul python pentru a controla ledurile atât de la server, cât și de la client. Aici, serverul este RPi, iar clientul este NodeMCU.

Pasul 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Pentru a instala cel mai recent server și client MQTT în RPi, pentru a utiliza noul depozit, trebuie mai întâi să importați cheia de semnare a pachetului depozit.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key adăugați mosquitto-repo.gpg.key

2. Puneți depozitul la dispoziția apt.

cd /etc/apt/sources.list.d/

3. În funcție de versiunea Debian pe care o utilizați.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get update

4. Instalați serverul Mosquitto folosind comanda.

sudo apt-get install mosquitto

Dacă primiți erori la instalarea Mosquitto astfel.

#################################################################

Următoarele pachete au dependențe nesatisfăcute: mosquitto: Depinde: libssl1.0.0 (> = 1.0.1), dar nu este instalabil Depinde: libwebsockets3 (> = 1.2), dar nu este instalabil E: Imposibil de corectat problemele, ați păstrat defecte pachete.

#################################################################

Apoi utilizați această comandă pentru a remedia problemele.

sudo apt --fix-broken install

5. După instalarea serverului MQTT, instalați clientul utilizând comanda

sudo apt-get install mosquitto-clients

Puteți verifica serviciile folosind comanda.

systemctl status mosquitto.service

Deoarece serverul și clientul nostru MQTT sunt instalate. Acum îl putem verifica folosind abonarea și publicarea. Pentru abonare și publicare puteți verifica comenzile sau accesați site-ul web așa cum este prezentat mai jos.

Mosquitto Sub

Mosquitto Pub

Pentru a instala biblioteca paho-mqtt utilizați comanda de mai jos.

sudo pip instala paho-mqtt

Paho

Pasul 3: Cum se configurează adresa IP statică

Cum se configurează adresa IP statică
Cum se configurează adresa IP statică

Accesați directorul cd / etc și deschideți fișierul dhcpcd.conf folosind orice editor. La sfârșit, scrieți aceste patru rânduri.

interfață eth0 static ip_address = 192.168.1.100 // ip pe care doriți să îl utilizați

interfață wlan0

static ip_address = 192.168.1.68

routere statice = 192.168.1.1 // gateway-ul dvs. implicit

static domain_name_servers = 192.168.1.1

După aceea, salvați-l și reporniți pi.

Pasul 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Instalați bibliotecile necesare în Arduino IDE pentru NodeMCU

1. Accesați Sketch ==> Includeți biblioteca ==> Gestionați bibliotecile.

2. Căutați mqtt și instalați biblioteca de către Adafruit sau puteți instala orice bibliotecă.

3. Depinde de biblioteca sleepydog, deci avem nevoie și de această bibliotecă.

Programul este dat mai sus, doar pentru a verifica dacă funcționează sau nu. Aici nu am creat niciun script în RPi. Folosim doar comenzi pentru abonare și publicare. Vom crea script pentru control ulterior.

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 ==> nume gazdă-t ==> subiect

-m ==> mesaj

După verificarea programului Mqtt_check, încărcați programul complet în NodeMCU

Pasul 5: Script Python

Script Python
Script Python
Script Python
Script Python

După cum am discutat mai sus, avem nevoie de script Python pentru controlul ledurilor folosind butoane. Deci, vom crea script. Scriptul este dat mai sus.

Când rulați scriptul, scriptul dvs. ar trebui să arate așa cum se arată în imagine, dacă codul rezultatului nu este zero, atunci este o eroare, puteți verifica eroarea pe site-ul paho.

Pasul 6: Conexiuni și schemă de circuit

Conexiuni și schemă de circuit
Conexiuni și schemă de circuit
Conexiuni și schemă de circuit
Conexiuni și schemă de circuit

Interfațarea butonului, LED-ului cu NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Catod (-ve)

GPIO5 (D1) ===> Anod (+ ve)

Interfațarea butonului, LED cu RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Catod (-ve)

GPIO 24 ===> Anod (+ ve)

Pasul 7: Rezultat

Image
Image
Rezultat
Rezultat

Asigurați-vă că scriptul rulează altfel nu va putea controla ledul folosind butoane.

Recomandat: