Innholdsfortegnelse:
- Trinn 1: Hva er MQTT og hvordan det fungerer
- Trinn 2: Bringebær Pi
- Trinn 3: Slik konfigurerer du statisk IP -adresse
- Trinn 4: NodeMCU
- Trinn 5: Python Script
- Trinn 6: Tilkoblinger og kretsdiagram
- Trinn 7: Resultat
Video: Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
I dette prosjektet vil jeg forklare hva MQTT -protokollen er og hvordan den brukes til å kommunisere mellom enheter. Så, som en praktisk demonstrasjon, vil jeg demonstrere hvordan du konfigurerer et klient- og brokersystem, hvor en ESP8266 -modul samt RPi snakker til hverandre eller send melding når du trykker på en knapp.
Nødvendig materiale
1. Raspberry Pi 3
2. NodeMCU
3. LED
4. Knapp
5. Motstander (10k, 475 ohm)
Trinn 1: Hva er MQTT og hvordan det fungerer
MQTT
MQTT er en dataoverføringsprotokoll fra maskin til maskin (M2M). MQTT ble opprettet med det mål å samle data fra mange enheter og deretter transportere disse dataene til IT -infrastrukturen. Den er lett, og derfor ideell for fjernovervåking, spesielt i M2M -tilkoblinger som krever et lite kodeavtrykk eller der nettverksbåndbredden er begrenset.
Hvordan MQTT fungerer
MQTT er en publiser/abonner-protokoll som lar enheter i nettverket publisere til en megler. Klienter kobler seg til denne megleren, som deretter formidler kommunikasjon mellom de to enhetene. Hver enhet kan abonnere på eller registrere bestemte emner. Når en annen klient publiserer en melding om et abonnentemne, videresender megleren meldingen til enhver klient som har abonnert.
MQTT er toveis, og opprettholder stateful økt bevissthet. Hvis en kant-av-nettverksenhet mister tilkoblingen, vil alle abonnenter klienter bli varslet med "Last Will and Testament" -funksjonen på MQTT-serveren, slik at enhver autorisert klient i systemet kan publisere en ny verdi tilbake til kanten av- nettverksenhet, opprettholder toveis tilkobling.
Prosjektet er delt inn i 3 deler
For det første oppretter vi MQTT -server på RPi og installerer noen biblioteker.
For det andre vil vi installere biblioteker i Arduino IDE for NodeMCU for å jobbe med MQTT, laste opp koden og sjekke om serveren fungerer eller ikke.
Til slutt lager vi et skript i Rpi, laster opp den nødvendige koden i NodeMCU og kjører python -skriptet for å kontrollere lysdioder fra både server og klientside. Her er serveren RPi og klienten er NodeMCU.
Trinn 2: Bringebær Pi
1. For å installere den nyeste MQTT -serveren og klienten i RPi, for å bruke det nye depotet, bør du først importere pakkenes signeringsnøkkel.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Gjør depotet tilgjengelig for apt.
cd /etc/apt/sources.list.d/
3. Avhengig av hvilken versjon av Debian du bruker.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get oppdatering
4. Installer Mosquitto -serveren med kommando.
sudo apt-get install mygg
Hvis du får feil i installasjonen av Mosquitto slik.
#################################################################
Følgende pakker har uoppfylte avhengigheter: mosquitto: Depends: libssl1.0.0 (> = 1.0.1), men det kan ikke installeres Depends: libwebsockets3 (> = 1.2), men det er ikke installerbart E: Kan ikke rette opp problemer, du har holdt ødelagt pakker.
#################################################################
Bruk deretter denne kommandoen til å fikse problemer.
sudo apt --fix-ødelagt installasjon
5. Etter at du har installert MQTT -serveren, installerer du klienten ved hjelp av kommandoen
sudo apt-get install mosquitto-klienter
Du kan sjekke tjenester ved hjelp av kommando.
systemctl status mosquitto.service
Siden vår MQTT -server og klient er installert. Nå kan vi sjekke det ved å abonnere og publisere. For å abonnere og publisere kan du sjekke kommandoer eller besøke nettstedet som gitt nedenfor.
Mosquitto Sub
Mosquitto Pub
For å installere paho-mqtt bibliotek, bruk kommandoen nedenfor.
sudo pip installer paho-mqtt
Paho
Trinn 3: Slik konfigurerer du statisk IP -adresse
Gå til katalogen cd /etc og åpne filen dhcpcd.conf ved hjelp av en hvilken som helst editor. På slutten skriver du disse fire linjene.
grensesnitt eth0 statisk ip_address = 192.168.1.100 // ip du vil bruke
grensesnitt wlan0
statisk ip_adresse = 192.168.1.68
statiske rutere = 192.168.1.1 // din standard gateway
statisk domenenavn_servere = 192.168.1.1
Etter det lagre det og start pi.
Trinn 4: NodeMCU
Installer nødvendige biblioteker i Arduino IDE for NodeMCU
1. Gå til Sketch ==> Inkluder bibliotek ==> Administrer biblioteker.
2. Søk etter mqtt og installer bibliotek av Adafruit, eller du kan installere et hvilket som helst bibliotek.
3. Det avhenger av sleepydog -biblioteket, så vi trenger også dette biblioteket.
Programmet er gitt ovenfor, bare for å sjekke om det fungerer eller ikke. Her har jeg ikke laget noe script i RPi. Vi bruker bare kommandoer for å abonnere og publisere. Vi vil lage skript for kontroll senere.
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 ==> vertsnavn-t ==> emne
-m ==> melding
Etter å ha sjekket Mqtt_check -programmet, last opp komplett program i NodeMCU
Trinn 5: Python Script
Som jeg diskuterte ovenfor trenger vi python -script for å kontrollere leds ved hjelp av knapper. Så, vi skal lage script. Skriptet er gitt ovenfor.
Når du kjører skriptet, bør skriptet ditt se ut som vist på bildet, hvis resultatkoden ikke er null, er det en feil du kan sjekke feilen på paho nettsted.
Trinn 6: Tilkoblinger og kretsdiagram
Grensesnitt av knapp, LED med NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katode (-ve)
GPIO5 (D1) ===> Anode (+ve)
Grensesnitt av knapp, LED med RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katode (-ve)
GPIO 24 ===> Anode (+ve)
Trinn 7: Resultat
Sørg for at skriptet kjører, ellers kan det ikke kontrollere LED ved hjelp av knapper.
Anbefalt:
DIY -- Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: 6 trinn
DIY || Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: Mens du lager en edderkopprobot, kan du lære så mange ting om robotikk. Som å lage roboter er både underholdende og utfordrende. I denne videoen skal vi vise deg hvordan du lager en Spider -robot, som vi kan bruke ved hjelp av smarttelefonen vår (Androi
Slik snakker du flere ESP via ESP-NOW ved bruk av ESP32 og ESP8266: 8 trinn
Slik snakker du flere ESP via ESP-NOW Ved hjelp av ESP32 og ESP8266: På mitt pågående prosjekt trenger jeg flere ESP for å snakke med hverandre uten en ruter. For å gjøre dette bruker jeg ESP-NOW til å få trådløs kommunikasjon med hverandre uten en ruter på ESP
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Hvordan lage en drone ved hjelp av Arduino UNO - Lag en quadcopter ved hjelp av mikrokontroller: 8 trinn (med bilder)
Hvordan lage en drone ved hjelp av Arduino UNO | Lag en Quadcopter ved hjelp av mikrokontroller: Introduksjon Besøk min Youtube -kanal En Drone er en veldig dyr gadget (produkt) å kjøpe. I dette innlegget skal jeg diskutere hvordan jeg får det billig? Og hvordan kan du lage din egen slik til en billig pris … Vel, i India er alle materialer (motorer, ESCer
Lag en iPhone -app som snakker til partikkelnet: 4 trinn
Lag en iPhone -app som snakker til partikkelnett: I dette prosjektet lærer du hvordan du laster en app på iPhone som snakker direkte til et tredje generasjons partikkelnetkort. Det vil ta mindre enn 20 minutter av tiden din. I tillegg kan du begynne å tukte med en gang !! La oss komme i gang. Ting du trenger