Innehållsförteckning:
- Steg 1: Vad är MQTT och hur fungerar det
- Steg 2: Hallon Pi
- Steg 3: Så här ställer du in statisk IP -adress
- Steg 4: NodeMCU
- Steg 5: Python Script
- Steg 6: Anslutningar och kretsschema
- Steg 7: Resultat
Video: Raspberry Pi Talking to ESP8266 Using MQTT: 8 Steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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
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
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
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
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
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
Se till att skriptet körs annars kan det inte styra LED med knappar.
Rekommenderad:
IoT Keychain Finder Using ESP8266-01: 11 Steg (med bilder)
IoT Keychain Finder Använda ESP8266-01: Glömmer du som jag alltid att glömma var du förvarade dina nycklar? Jag hittar aldrig mina nycklar i tid! Och på grund av min vana har jag varit sen till mitt college, den där begränsade upplagan star wars försäljning (fortfarande oroande!), Ett datum (hon valde aldrig
Garage Door Opener With Feedback Using Esp8266 As Web Server .: 6 Steg
Garageportöppnare med feedback Användning av Esp8266 som webbserver .: Hej, jag ska visa dig hur du gör ett enkelt sätt att göra en garageportöppnare.-ESP8266 är kodad som webbserver, dörren kan vara öppen överallt i världen-Med feedback, du vet att dörren är öppen eller stängd i realtid-Enkel, bara en genväg för att göra
Arduino Text to Speech Converter Using LM386 - Talking Arduino Project - Talkie Arduino Library: 5 steg
Arduino Text to Speech Converter Using LM386 | Talking Arduino Project | Talkie Arduino Library: Hej killar, i många projekt kräver vi att arduino talar något som att tala klocka eller berätta lite data så att vi i denna instruktion kommer att konvertera text till tal med Arduino
Connected Love Pendants Using ESP8266: 7 Steg
Connected Love Pendants Using ESP8266: Två hängen som tar människor mer närmare än tidigare. De är internetuppkopplade hängen som heter Love Pendants som kan hjälpa dig att dela dina känslor med din älskade på en helt ny nivå. I den här artikeln berättar jag hur du gör dig
Raspberry Pi Talking Streckkodsläsare: 12 steg
Raspberry Pi Talking Streckkodsläsare: Fig.1 Streckkodsläsare från DX.comOverviewUpdate: En kort videodemo finns tillgänglig https://youtu.be/b905MLfGTcMMin mamma kan inte läsa etiketter på matvaror längre, så jag letade efter lösningar. Efter att ha sett streckkodsläsarna för blinda