Indholdsfortegnelse:

Raspberry Pi Taler til ESP8266 Brug af MQTT: 8 trin
Raspberry Pi Taler til ESP8266 Brug af MQTT: 8 trin

Video: Raspberry Pi Taler til ESP8266 Brug af MQTT: 8 trin

Video: Raspberry Pi Taler til ESP8266 Brug af MQTT: 8 trin
Video: Create your own Canon Printer server with Raspberry Pi 2024, November
Anonim
Raspberry Pi Taler til ESP8266 ved hjælp af MQTT
Raspberry Pi Taler til ESP8266 ved hjælp af MQTT

I dette projekt vil jeg forklare, hvad MQTT -protokollen er, og hvordan den bruges til at kommunikere mellem enheder. Derefter vil jeg som en praktisk demonstration demonstrere, hvordan man konfigurerer et klient- og brokersystem, hvor et ESP8266 -modul samt RPi -tale til hinanden eller send besked, når der trykkes på en knap.

Materiale kræves

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Knap

5. Modstande (10k, 475 ohm)

Trin 1: Hvad er MQTT, og hvordan fungerer det

MQTT

MQTT er en dataoverførselsprotokol fra maskine til maskine (M2M). MQTT blev oprettet med det formål at indsamle data fra mange enheder og derefter transportere disse data til IT -infrastrukturen. Det er let og derfor ideelt til fjernovervågning, især i M2M -forbindelser, der kræver et lille kodefodaftryk, eller hvor netværksbåndbredde er begrænset.

Sådan fungerer MQTT

MQTT er en publish/subscribe-protokol, der tillader edge-of-network-enheder at publicere til en mægler. Klienter opretter forbindelse til denne mægler, som derefter formidler kommunikation mellem de to enheder. Hver enhed kan abonnere på eller registrere bestemte emner. Når en anden klient udgiver en meddelelse om et emne, der abonneres på, videresender mægleren meddelelsen til enhver klient, der har abonneret.

MQTT er tovejs og opretholder stateful session opmærksomhed. Hvis en edge-of-network-enhed mister forbindelsen, får alle abonnerede klienter besked med funktionen "Last Will and Testament" på MQTT-serveren, så enhver autoriseret klient i systemet kan offentliggøre en ny værdi tilbage til kanten af- netværksenhed, opretholder tovejsforbindelse.

Projektet er opdelt i 3 dele

For det første opretter vi MQTT -server på RPi og installerer nogle biblioteker.

For det andet vil vi installere biblioteker i Arduino IDE, så NodeMCU kan arbejde med MQTT, uploade koden og kontrollere, om serveren fungerer eller ej.

Endelig opretter vi et script i Rpi, uploader den nødvendige kode i NodeMCU og kører python -scriptet til at styre lysdioder fra både server og klientside. Her er serveren RPi, og klienten er NodeMCU.

Trin 2: Hindbær Pi

Hindbær Pi
Hindbær Pi
Hindbær Pi
Hindbær Pi
Hindbær Pi
Hindbær Pi
Hindbær Pi
Hindbær Pi

1. For at installere den nyeste MQTT -server og klient i RPi, for at bruge det nye lager, skal du først importere pakkenes signeringsnøgle.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key tilføj mosquitto-repo.gpg.key

2. Gør depotet tilgængeligt for apt.

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

3. Afhængigt af hvilken version af Debian du bruger.

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

sudo wget

sudo apt-get opdatering

4. Installer Mosquitto -serveren ved hjælp af kommandoen.

sudo apt-get install mosquitto

Hvis du får fejl i installationen af Mosquitto som denne.

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

Følgende pakker har uopfyldte afhængigheder: mosquitto: Depends: libssl1.0.0 (> = 1.0.1), men det kan ikke installeres Depends: libwebsockets3 (> = 1.2), men det kan ikke installeres E: Kan ikke rette problemer, du har holdt brudt pakker.

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

Brug derefter denne kommando til at løse problemer.

sudo apt --fix-brudt installation

5. Efter installation af MQTT -server skal du installere klienten ved hjælp af kommandoen

sudo apt-get install mosquitto-klienter

Du kan kontrollere tjenester ved hjælp af kommando.

systemctl status mosquitto.service

Da vores MQTT -server og klient er installeret. Nu kan vi kontrollere det ved at abonnere og udgive. For at abonnere og udgive kan du kontrollere kommandoer eller besøge webstedet som angivet nedenfor.

Myg Sub

Mosquitto Pub

For at installere paho-mqtt bibliotek skal du bruge kommandoen herunder.

sudo pip installer paho-mqtt

Paho

Trin 3: Sådan opsættes statisk Ip -adresse

Sådan opsættes statisk Ip -adresse
Sådan opsættes statisk Ip -adresse

Gå til bibliotek cd /etc, og åbn filen dhcpcd.conf ved hjælp af en hvilken som helst editor. I slutningen skriver du disse fire linjer.

interface eth0 static ip_address = 192.168.1.100 // ip du vil bruge

grænseflade wlan0

statisk ip_address = 192.168.1.68

statiske routere = 192.168.1.1 // din standardgateway

statisk domænenavn_servere = 192.168.1.1

Gem derefter det, og genstart din pi.

Trin 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Installer nødvendige biblioteker i Arduino IDE til NodeMCU

1. Gå til Skitse ==> Inkluder bibliotek ==> Administrer biblioteker.

2. Søg efter mqtt og installer bibliotek af Adafruit, eller du kan installere et hvilket som helst bibliotek.

3. Det afhænger af sleepydog -biblioteket, så vi har også brug for dette bibliotek.

Programmet er givet ovenfor, bare for at kontrollere, om det virker eller ej. Her har jeg ikke oprettet noget script i RPi. Vi bruger bare kommandoer til at abonnere og udgive. Vi opretter script til styring 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 ==> værtsnavn-t ==> emne

-m ==> besked

Efter at have kontrolleret Mqtt_check -programmet uploader du komplet program i NodeMCU

Trin 5: Python Script

Python Script
Python Script
Python Script
Python Script

Som jeg diskuterede ovenfor har vi brug for python -script til styring af lysdioder ved hjælp af knapper. Så vi skal oprette script. Scriptet er angivet ovenfor.

Når du kører scriptet, skal dit script se ud som vist på billedet, hvis resultatkoden ikke er nul, er deres en fejl, du kan kontrollere fejl på paho -webstedet.

Trin 6: Forbindelser og kredsløbsdiagram

Forbindelser og kredsløbsdiagram
Forbindelser og kredsløbsdiagram
Forbindelser og kredsløbsdiagram
Forbindelser og kredsløbsdiagram

Interfacing af knap, LED med NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katode (-ve)

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

Interfacing af knap, LED med RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katode (-ve)

GPIO 24 ===> Anode (+ve)

Trin 7: Resultat

Image
Image
Resultat
Resultat

Sørg for, at scriptet kører, ellers kan det ikke styre LED ved hjælp af knapper.

Anbefalede: