Inhoudsopgave:

Raspberry Pi praten met ESP8266 met MQTT - Ajarnpa
Raspberry Pi praten met ESP8266 met MQTT - Ajarnpa

Video: Raspberry Pi praten met ESP8266 met MQTT - Ajarnpa

Video: Raspberry Pi praten met ESP8266 met MQTT - Ajarnpa
Video: Esp8266.nu virtuele domoticz devices met esp8266 esp-201 module demonstratie pir sensor 2024, November
Anonim
Raspberry Pi in gesprek met ESP8266 met MQTT
Raspberry Pi in gesprek met ESP8266 met MQTT

In dit project zal ik uitleggen wat het MQTT-protocol is en hoe het wordt gebruikt om tussen apparaten te communiceren. Vervolgens zal ik als praktische demonstratie demonstreren hoe u een client- en brocker-systeem opzet, waarbij een ESP8266-module en RPi praten met elkaar of stuur een bericht wanneer er op een knop wordt gedrukt.

Benodigd materiaal

1. Raspberry Pi 3"

2. KnooppuntMCU

3. LED

4. Knop

5. Weerstanden (10k, 475 ohm)

Stap 1: Wat is MQTT en hoe het werkt?

MQTT

MQTT is een machine-to-machine (M2M) gegevensoverdrachtprotocol. MQTT is gemaakt met als doel gegevens van veel apparaten te verzamelen en die gegevens vervolgens naar de IT-infrastructuur te transporteren. Het is lichtgewicht en daarom ideaal voor bewaking op afstand, vooral in M2M-verbindingen die een kleine codevoetafdruk vereisen of waar de netwerkbandbreedte beperkt is.

Hoe MQTT werkt

MQTT is een publish/subscribe-protocol waarmee edge-of-network-apparaten kunnen publiceren naar een broker. Clients maken verbinding met deze broker, die vervolgens de communicatie tussen de twee apparaten bemiddelt. Elk apparaat kan zich abonneren of registreren voor bepaalde onderwerpen. Wanneer een andere klant een bericht publiceert over een geabonneerd onderwerp, stuurt de broker het bericht door naar elke klant die zich heeft geabonneerd.

MQTT is bidirectioneel en onderhoudt stateful sessiebewustzijn. Als een edge-of-network-apparaat de verbinding verliest, worden alle geabonneerde clients op de hoogte gebracht met de "Last Will and Testament"-functie van de MQTT-server, zodat elke geautoriseerde client in het systeem een nieuwe waarde kan publiceren naar de edge-of- netwerkapparaat, met behoud van bidirectionele connectiviteit.

Het project is opgedeeld in 3 delen

Eerst maken we een MQTT-server op RPi en installeren we enkele bibliotheken.

Ten tweede zullen we bibliotheken in Arduino IDE installeren zodat NodeMCU met MQTT kan werken, de code uploaden en controleren of de server werkt of niet.

Ten slotte maken we een script in Rpi, uploaden we de vereiste code in NodeMCU en voeren we het python-script uit om leds te besturen vanaf zowel server- als clientzijde. Hier is de server RPi en de client NodeMCU.

Stap 2: Raspberry Pi

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

1. Om de nieuwste MQTT-server en -client in RPi te installeren, moet u, om de nieuwe repository te gebruiken, eerst de handtekeningsleutel van het repositorypakket importeren.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key voeg mosquitto-repo.gpg.key toe

2. Stel de repository beschikbaar voor apt.

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

3. Afhankelijk van welke versie van Debian u gebruikt.

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

sudo wget

sudo apt-get update

4. Installeer de Mosquitto-server met behulp van de opdracht.

sudo apt-get install mug

Als u op deze manier fouten krijgt bij het installeren van Mosquitto.

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

De volgende pakketten hebben onvervulde afhankelijkheden:mosquitto: Afhankelijk van: libssl1.0.0 (>= 1.0.1) maar het is niet installeerbaar Afhankelijk van: libwebsockets3 (>=1.2) maar het kan niet worden geïnstalleerd E: Kan problemen niet corrigeren, u hebt vastgehouden pakketjes.

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

Gebruik vervolgens deze opdracht om problemen op te lossen.

sudo apt --fix-broken install

5. Na het installeren van de MQTT-server, installeer de client met het commando

sudo apt-get install mug-clients

U kunt services controleren met behulp van command.

systemctl status mug.service

Omdat onze MQTT-server en -client zijn geïnstalleerd. Nu kunnen we het controleren met abonneren en publiceren. Voor abonneren en publiceren kunt u de onderstaande commando's controleren of de website bezoeken.

Muggensub

Mosquito Pub

Gebruik de onderstaande opdracht om de paho-mqtt-bibliotheek te installeren.

sudo pip install paho-mqtt

Paho

Stap 3: Hoe een statisch IP-adres in te stellen

Hoe een statisch IP-adres in te stellen
Hoe een statisch IP-adres in te stellen

Ga naar de map cd /etc en open het bestand dhcpcd.conf met een willekeurige editor. Schrijf aan het einde deze vier regels.

interface eth0 statisch ip_address=192.168.1.100 // ip die je wilt gebruiken

interface wlan0

statisch ip_adres = 192.168.1.68

statische routers = 192.168.1.1 // uw standaardgateway

statisch domain_name_servers=192.168.1.1

Sla het daarna op en start je pi opnieuw op.

Stap 4: NodeMCU

KnooppuntMCU
KnooppuntMCU
KnooppuntMCU
KnooppuntMCU
KnooppuntMCU
KnooppuntMCU
KnooppuntMCU
KnooppuntMCU

Installeer vereiste bibliotheken in Arduino IDE voor NodeMCU

1. Ga naar Sketch ==> Bibliotheek opnemen ==> Bibliotheken beheren.

2. Zoek naar mqtt en installeer bibliotheek door Adafruit of u kunt elke bibliotheek installeren.

3. Het hangt af van de sleepydog-bibliotheek, dus we hebben deze bibliotheek ook nodig.

Programma is hierboven gegeven, alleen om te controleren of het werkt of niet. Hier heb ik geen script in RPi gemaakt. We gebruiken alleen opdrachten om te abonneren en te publiceren. We zullen later een script maken voor besturing.

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "UIT"

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 "UIT"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h == > hostnaam-t == > onderwerp

-m == > bericht

Na het controleren van het Mqtt_check programma upload het volledige programma in NodeMCU

Stap 5: Python-script

Python-script
Python-script
Python-script
Python-script

Zoals ik hierboven heb besproken, hebben we een python-script nodig voor het besturen van leds met behulp van knoppen. Dus we gaan een script maken. Script is hierboven gegeven.

Wanneer u het script uitvoert, zou uw script eruit moeten zien zoals weergegeven in de afbeelding, als de resultaatcode niet nul is, is het een fout die u kunt controleren op de paho-website.

Stap 6: Aansluitingen en schakelschema

Aansluitingen en schakelschema
Aansluitingen en schakelschema
Aansluitingen en schakelschema
Aansluitingen en schakelschema

Interface van knop, LED met NodeMCU

NodeMCU === > ButtonGnd === > Gnd

3.3V === > PIN1

GPIO4 (D2) === > PIN2

NodeMCU === > LED

Gnd === > Kathode (-ve)

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

Interface van knop, LED met RPi

RPi === > KnopGnd === > PIN1

GPIO 23 === > PIN2

RPi === > LED

Gnd == > Kathode(-ve)

GPIO 24 === > Anode (+ve)

Stap 7: Resultaat

Image
Image
Resultaat
Resultaat

Zorg ervoor dat je script draait, anders kan het de led niet bedienen met behulp van knoppen.

Aanbevolen: