Inhoudsopgave:
- Stap 1: Wat is MQTT en hoe het werkt?
- Stap 2: Raspberry Pi
- Stap 3: Hoe een statisch IP-adres in te stellen
- Stap 4: NodeMCU
- Stap 5: Python-script
- Stap 6: Aansluitingen en schakelschema
- Stap 7: Resultaat
Video: Raspberry Pi praten met ESP8266 met MQTT - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
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
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
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
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
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
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
Zorg ervoor dat je script draait, anders kan het de led niet bedienen met behulp van knoppen.
Aanbevolen:
Internet/cloudgestuurde huisautomatisering met behulp van Esp8266 (aREST, MQTT, IoT): 7 stappen (met afbeeldingen)
Internet/cloudgestuurde huisautomatisering met behulp van Esp8266 (aREST, MQTT, IoT): ALLE credits naar http://arest.io/ voor de cloudservice!!IoT het meest besproken onderwerp ter wereld op dit moment!! Cloudservers en -services die dit mogelijk maken, is het aantrekkingspunt van de wereld van vandaag… DE AFSTANDSBARRIRE UITSLUITEN was en is de
Domotica met MQTT en ESP8266: 6 stappen
Domotica met behulp van MQTT en ESP8266: Tegenwoordig is domotica een trend en een opkomend tijdperk van IoT (Internet of Things). Iedereen probeert het huis op de een of andere manier te automatiseren, dan kan dat op afstand worden bediend of handmatig. En wat het leven voor hen gemakkelijker maakt. Er zijn mantechnieken om te controleren
Hoe MQTT te gebruiken met de Raspberry Pi en ESP8266/sonoff: 4 stappen
Hoe MQTT te gebruiken met de Raspberry Pi en ESP8266/sonoff: Hallo allemaal! Vandaag laat ik u zien hoe u een op Raspberry Pi en ESP8266 gebaseerde sonoff wifi-relaisschakelaar configureert om uw huishoudelijke apparaten overal ter wereld te bedienen. van deze instructable, als je mijn instructies zorgvuldig hebt gevolgd
Uw elektriciteitsmeter voor het elektriciteitsnet uitlezen (ESP8266, WiFi, MQTT en Openhab): 6 stappen (met afbeeldingen)
Lees uw belangrijkste elektriciteitsmeter (ESP8266, WiFi, MQTT en Openhab): In deze Instructable ontdek je hoe ik mijn belangrijkste elektriciteitsverbruik van mijn huis lees en publiceer het via een ESP8266, Wifi, MQTT in mijn Openhab Home Automation. Ik heb een 'slimme meter' ISKRA Type MT372, maar het heeft geen gemakkelijke mogelijkheid om de
Beginnersgids voor ESP8266 en tweeten met ESP8266: 17 stappen (met afbeeldingen)
Beginnersgids voor ESP8266 en tweeten met ESP8266: ik leerde over Arduino 2 jaar geleden. Dus begon ik te spelen met eenvoudige dingen zoals LED's, knoppen, motoren enz. Toen dacht ik dat het niet cool zou zijn om verbinding te maken om dingen te doen zoals het weergeven van de het weer van de dag, aandelenkoersen, treintijden op een LCD-scherm. Ik