Cuprins:
- Pasul 1: Ce este MQTT și cum funcționează
- Pasul 2: Raspberry Pi
- Pasul 3: Cum se configurează adresa IP statică
- Pasul 4: NodeMCU
- Pasul 5: Script Python
- Pasul 6: Conexiuni și schemă de circuit
- Pasul 7: Rezultat
Video: Raspberry Pi Vorbind cu ESP8266 Utilizând MQTT: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Î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
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ă
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
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
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
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
Asigurați-vă că scriptul rulează altfel nu va putea controla ledul folosind butoane.
Recomandat:
(Proiect IOT) Obțineți date despre vreme utilizând ESP8266 și Openweather API: 5 pași
(Proiect IOT) Obțineți date meteo folosind ESP8266 și API-ul Openweather: În acest instructable vom construi un proiect IOT simplu în care preluăm datele meteo din orașul nostru de pe openweather.com/api și le vom afișa folosind software-ul de procesare
Cum să blițezi sau să programezi firmware-ul ESP8266 AT utilizând ESP8266 Flasher și programator, modulul IOT Wifi: 6 pași
Cum să blițezi sau să programezi ESP8266 AT Firmware utilizând ESP8266 Flasher și programator, modul IOT Wifi: Descriere: Acest modul este un adaptor / programator USB pentru module ESP8266 de tip ESP-01 sau ESP-01S. Este echipat convenabil cu un antet feminin 2x4P 2,54mm pentru a conecta ESP01. De asemenea, izbucnește toți pinii ESP-01 prin intermediul unui tată 2x4P 2.54mm h
Obținerea timpului de pe Internet utilizând ESP8266 - NTP Clock Project cu ESP8266 Nodemcu: 5 pași
Obținerea timpului de pe Internet utilizând ESP8266 | NTP Clock Project With ESP8266 Nodemcu: În acest tutorial vom vedea cum să obțineți timp folosind ESP8266 / nodemcu cu Arduino IDE. Obținerea timpului este utilă în special în înregistrarea datelor pentru a vă marca citirile. Dacă proiectul dvs. ESP8266 are acces la Internet, puteți obține timp folosind Network T
AUTOMATIZARE ACASĂ BAZATĂ PE SERVERUL MQTT LOCAL UTILIZAND RASPBERRY PI ȘI NODEMCU BOARD: 6 pași
AUTOMATIZARE PRINCIPALĂ BAZATĂ PE SERVERUL MQTT LOCAL UTILIZAND RASPBERRY PI ȘI NODEMCU BOARD: Până acum am realizat mai multe videoclipuri tutoriale privind controlul aparatelor pe internet. Și pentru asta am preferat întotdeauna serverul Adafruit MQTT, deoarece era ușor de utilizat și ușor de utilizat. Dar toate aceste lucruri se bazau pe internet. Asta înseamnă că noi
Vorbind despre Arduino - Redarea unui MP3 cu Arduino fără niciun modul - Redarea fișierului Mp3 de la Arduino folosind PCM: 6 pași
Vorbind despre Arduino | Redarea unui MP3 cu Arduino fără niciun modul | Redarea fișierului Mp3 de la Arduino folosind PCM: În acest instructable vom învăța cum să redăm un fișier mp3 cu arduino fără a utiliza niciun modul audio, aici vom folosi biblioteca PCM pentru Arduino care joacă PCM pe 16 biți cu o frecvență de 8 kHz, deci permiteți acest lucru