Innehållsförteckning:

Raspberry Pi Talking to ESP8266 Using MQTT: 8 Steg
Raspberry Pi Talking to ESP8266 Using MQTT: 8 Steg

Video: Raspberry Pi Talking to ESP8266 Using MQTT: 8 Steg

Video: Raspberry Pi Talking to ESP8266 Using MQTT: 8 Steg
Video: ESP8266 (NodeMcu) Raspberry Pi MQTT | ESP8266 Publish/Subscribe 2024, Juli
Anonim
Raspberry Pi Talking to ESP8266 Using MQTT
Raspberry Pi Talking to ESP8266 Using MQTT

I det här projektet kommer jag att förklara vad MQTT -protokollet är och hur det används för att kommunicera mellan enheter. Sedan, som en praktisk demonstration, kommer jag att demonstrera hur man konfigurerar ett klient- och brokersystem, där en ESP8266 -modul samt RPi -samtal till varandra eller skicka meddelande när en knapp trycks in.

Material krävs

1. Hallon Pi 3

2. NodeMCU

3. LED

4. Knapp

5. Motstånd (10k, 475 ohm)

Steg 1: Vad är MQTT och hur fungerar det

MQTT

MQTT är ett dataöverföringsprotokoll från maskin till maskin (M2M). MQTT skapades med målet att samla in data från många enheter och sedan transportera den till IT -infrastrukturen. Den är lätt och därför idealisk för fjärrövervakning, särskilt i M2M -anslutningar som kräver ett litet kodavtryck eller där nätverksbandbredd är begränsad.

Hur MQTT fungerar

MQTT är ett publicerings-/prenumerationsprotokoll som tillåter edge-of-network-enheter att publicera till en mäklare. Kunder ansluter till denna mäklare, som sedan förmedlar kommunikation mellan de två enheterna. Varje enhet kan prenumerera på, eller registrera, vissa ämnen. När en annan klient publicerar ett meddelande om ett ämne som prenumererar, vidarebefordrar mäklaren meddelandet till alla klienter som har prenumererat.

MQTT är dubbelriktad och upprätthåller medvetenhet om statliga sessioner. Om en edge-of-network-enhet förlorar anslutning kommer alla prenumererade klienter att meddelas med "Last Will and Testament" -funktionen på MQTT-servern så att alla auktoriserade klienter i systemet kan publicera ett nytt värde tillbaka till edge-of- nätverksenhet, bibehåller dubbelriktad anslutning.

Projektet är uppdelat i 3 delar

För det första skapar vi MQTT -server på RPi och installerar några bibliotek.

För det andra kommer vi att installera bibliotek i Arduino IDE för att NodeMCU ska fungera med MQTT, ladda upp koden och kontrollera om servern fungerar eller inte.

Slutligen skapar vi ett skript i Rpi, laddar upp den nödvändiga koden i NodeMCU och kör python -skriptet för att styra lysdioder från både server och klientsida. Här är servern RPi och klienten är NodeMCU.

Steg 2: Hallon Pi

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

1. För att installera den senaste MQTT -servern och klienten i RPi, för att använda det nya förvaret, bör du först importera paketets signeringsnyckel.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key lägg till mosquitto-repo.gpg.key

2. Gör förvaret tillgängligt för apt.

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

3. Beroende på vilken version av Debian du använder.

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

sudo wget

sudo apt-get uppdatering

4. Installera Mosquitto -servern med kommandot.

sudo apt-get install mygg

Om du får fel när du installerar Mosquitto så här.

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

Följande paket har ouppfyllda beroenden: mygga: Beror på: libssl1.0.0 (> = 1.0.1) men det går inte att installera Beror på: libwebsockets3 (> = 1.2) men det går inte att installera E: Kan inte korrigera problem, du har hållit trasiga paket.

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

Använd sedan det här kommandot för att åtgärda problem.

sudo apt --fix-trasig installation

5. Efter installation av MQTT -servern, installera klienten med kommandot

sudo apt-get install myggklienter

Du kan kontrollera tjänsterna med kommandot.

systemctl status mosquitto.service

Eftersom vår MQTT -server och klient är installerad. Nu kan vi kontrollera det genom att prenumerera och publicera. För prenumeration och publicering kan du kontrollera kommandon eller besöka webbplatsen enligt nedan.

Mosquitto Sub

Mosquitto Pub

Använd kommandot nedan för att installera paho-mqtt-biblioteket.

sudo pip installera paho-mqtt

Paho

Steg 3: Så här ställer du in statisk IP -adress

Så här ställer du in statisk IP -adress
Så här ställer du in statisk IP -adress

Gå till katalogen cd /etc och öppna filen dhcpcd.conf med valfri redigerare. Skriv i slutet dessa fyra rader.

gränssnitt eth0 statisk ip_address = 192.168.1.100 // ip du vill använda

gränssnitt wlan0

statisk ip_adress = 192.168.1.68

statiska routrar = 192.168.1.1 // din standardgateway

statisk domännamn_server = 192.168.1.1

Spara det sedan och starta om din pi.

Steg 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Installera nödvändiga bibliotek i Arduino IDE för NodeMCU

1. Gå till Sketch ==> Inkludera bibliotek ==> Hantera bibliotek.

2. Sök efter mqtt och installera bibliotek av Adafruit eller så kan du installera vilket bibliotek som helst.

3. Det beror på sleepydog -biblioteket så vi behöver också detta bibliotek.

Programmet ges ovan, bara för att kontrollera om det fungerar eller inte. Här har jag inte skapat något skript i RPi. Vi använder bara kommandon för att prenumerera och publicera. Vi kommer att skapa manus för kontroll senare.

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 ==> värdnamn-t ==> ämne

-m ==> meddelande

Efter att ha kontrollerat Mqtt_check -programmet laddar du upp komplett program i NodeMCU

Steg 5: Python Script

Python Script
Python Script
Python Script
Python Script

Som jag diskuterade ovan behöver vi python -skript för att styra lysdioder med knappar. Så, vi kommer att skapa skript. Skriptet ges ovan.

När du kör skriptet ska ditt skript se ut som visas i bilden, om resultatkoden inte är noll är deras ett fel du kan kontrollera fel på pahos webbplats.

Steg 6: Anslutningar och kretsschema

Anslutningar och kretsschema
Anslutningar och kretsschema
Anslutningar och kretsschema
Anslutningar och kretsschema

Gränssnitt av knapp, LED med NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katod (-ve)

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

Gränssnitt av knapp, LED med RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katod (-ve)

GPIO 24 ===> Anod (+ve)

Steg 7: Resultat

Image
Image
Resultat
Resultat

Se till att skriptet körs annars kan det inte styra LED med knappar.

Rekommenderad: