Innholdsfortegnelse:

Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT: 8 trinn
Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT: 8 trinn

Video: Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT: 8 trinn

Video: Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT: 8 trinn
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT
Raspberry Pi Snakker med ESP8266 ved hjelp av MQTT

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

Bringebær Pi
Bringebær Pi
Bringebær Pi
Bringebær Pi
Bringebær Pi
Bringebær Pi
Bringebær Pi
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

Hvordan sette opp statisk IP -adresse
Hvordan sette opp 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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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

Python Script
Python Script
Python Script
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

Tilkoblinger og kretsdiagram
Tilkoblinger og kretsdiagram
Tilkoblinger og kretsdiagram
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

Image
Image
Resultat
Resultat

Sørg for at skriptet kjører, ellers kan det ikke kontrollere LED ved hjelp av knapper.

Anbefalt: