Obsah:
- Krok 1: Co je MQTT a jak funguje
- Krok 2: Raspberry Pi
- Krok 3: Jak nastavit statickou IP adresu
- Krok 4: NodeMCU
- Krok 5: Python Script
- Krok 6: Připojení a schéma zapojení
- Krok 7: Výsledek
Video: Raspberry Pi Talking to ESP8266 Using MQTT: 8 Steps
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
V tomto projektu vysvětlím, co je protokol MQTT a jak se používá ke komunikaci mezi zařízeními. Poté jako praktická ukázka předvedu, jak nastavit systém klient a brocker, kde mluví modul ESP8266 a RPi navzájem nebo odeslat zprávu po stisknutí tlačítka.
Potřebný materiál
1. Raspberry Pi 3
2. NodeMCU
3. LED
4. Tlačítko
5. Rezistory (10k, 475 ohmů)
Krok 1: Co je MQTT a jak funguje
MQTT
MQTT je protokol pro přenos dat mezi stroji (M2M). MQTT byl vytvořen s cílem sbírat data z mnoha zařízení a poté je přenášet do IT infrastruktury. Je lehký, a proto je ideální pro vzdálené monitorování, zejména u připojení M2M, která vyžadují malou stopu kódu nebo kde je omezená šířka pásma sítě.
Jak MQTT funguje
MQTT je protokol pro publikování/předplatné, který umožňuje zařízením na okraji sítě publikovat u makléře. Klienti se připojují k tomuto makléři, který pak zprostředkovává komunikaci mezi těmito dvěma zařízeními. Každé zařízení se může přihlásit k odběru nebo se zaregistrovat k jednotlivým tématům. Když jiný klient zveřejní zprávu na téma předplatného, zprostředkovatel předá zprávu kterémukoli klientovi, který se přihlásil k odběru.
MQTT je obousměrný a udržuje stavové povědomí o relacích. Pokud zařízení na okraji sítě ztratí připojení, budou všichni předplatení klienti upozorněni funkcí „Poslední vůle“serveru MQTT, aby jakýkoli autorizovaný klient v systému mohl publikovat novou hodnotu zpět na okraj sítě. síťové zařízení, udržující obousměrné připojení.
Projekt je rozdělen na 3 části
Nejprve vytvoříme server MQTT na RPi a nainstalujeme některé knihovny.
Za druhé, do Arduino IDE nainstalujeme knihovny, aby NodeMCU fungovalo s MQTT, nahrajeme kód a zkontrolujeme, zda server funguje nebo ne.
Nakonec vytvoříme skript v Rpi, nahrajeme požadovaný kód do NodeMCU a spustíme skript pythonu pro ovládání LED diod ze serveru i klienta. Zde je server RPi a klient NodeMCU.
Krok 2: Raspberry Pi
1. Chcete -li nainstalovat nejnovější server a klienta MQTT do RPi, chcete -li použít nové úložiště, nejprve importujte podpisový klíč balíčku úložiště.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key přidat mosquitto-repo.gpg.key
2. Zpřístupněte úložiště pro apt.
cd /etc/apt/sources.list.d/
3. Podle toho, jakou verzi Debianu používáte.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Nainstalujte server Mosquitto pomocí příkazu.
sudo apt-get install mosquitto
Pokud se vám takto instaluje Mosquitto, dochází k chybám.
#################################################################
Následující balíčky mají nesplněné závislosti: mosquitto: Depends: libssl1.0.0 (> = 1.0.1) but it is not installable Depends: libwebsockets3 (> = 1.2) but it is not installable E: Nelze napravit problémy, you have mentioned broken balíčky.
#################################################################
Poté použijte tento příkaz k vyřešení problémů.
sudo apt-opravená instalace
5. Po instalaci serveru MQTT nainstalujte klienta pomocí příkazu
sudo apt-get install mosquitto-clients
Služby můžete zkontrolovat pomocí příkazu.
systemctl status mosquitto.service
Protože je nainstalován náš server a klient MQTT. Nyní to můžeme zkontrolovat pomocí odběru a publikování. Chcete -li se přihlásit k odběru a publikovat, můžete zkontrolovat příkazy nebo navštívit webové stránky, jak je uvedeno níže.
Mosquitto Sub
Pub Mosquitto
Chcete-li nainstalovat knihovnu paho-mqtt, použijte níže uvedený příkaz.
sudo pip install paho-mqtt
Paho
Krok 3: Jak nastavit statickou IP adresu
Přejděte do adresáře cd /etc a otevřete soubor dhcpcd.conf pomocí libovolného editoru. Na konci napište tyto čtyři řádky.
interface eth0 static ip_address = 192.168.1.100 // ip, které chcete použít
rozhraní wlan0
static ip_address = 192.168.1.68
static routery = 192.168.1.1 // vaše výchozí brána
statické jméno_domény_služby = 192.168.1.1
Poté to uložte a restartujte svůj pi.
Krok 4: NodeMCU
Nainstalujte požadované knihovny do Arduino IDE pro NodeMCU
1. Přejděte na Sketch ==> Zahrnout knihovnu ==> Spravovat knihovny.
2. Vyhledejte mqtt a nainstalujte knihovnu pomocí Adafruit nebo si můžete nainstalovat libovolnou knihovnu.
3. Záleží na knihovně sleepydog, takže tuto knihovnu také potřebujeme.
Program je uveden výše, pouze pro kontrolu, zda funguje nebo ne. Zde jsem v RPi nevytvořil žádný skript. Používáme pouze příkazy k odběru a publikování. Vytvoříme skript pro ovládání později.
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 ==> název hostitele-t ==> téma
-m ==> zpráva
Po kontrole programu Mqtt_check nahrajte kompletní program do NodeMCU
Krok 5: Python Script
Jak jsem diskutoval výše, potřebujeme skript pythonu pro ovládání LED pomocí tlačítek. Vytvoříme tedy skript. Skript je uveden výše.
Když spustíte skript, váš skript by měl vypadat jako na obrázku, pokud kód výsledku není nula, pak je to chyba, můžete zkontrolovat chybu na webu paho.
Krok 6: Připojení a schéma zapojení
Rozhraní tlačítka, LED s NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3,3 V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katoda (-ve)
GPIO5 (D1) ===> Anoda (+ve)
Rozhraní tlačítka, LED s RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katoda (-ve)
GPIO 24 ===> Anoda (+ve)
Krok 7: Výsledek
Ujistěte se, že je skript spuštěný, jinak nebude moci ovládat LED pomocí tlačítek.
Doporučuje:
$ 5 DIY YouTube Subscriber Display using ESP8266 - No Coding Needed: 5 Steps
$ 5 DIY YouTube Subscriber Display using ESP8266 - No Coding Needed: In this project, I will show you how you can use the ESP8266 board Wemos D1 Mini to Display any any YouTube subscriber count for less than 5 $
Online server Check Portable Alarm (using NodeMCU ESP8266): 6 Steps
Online server Check Portable Alarm (Using NodeMCU ESP8266): What server/service down indcator means for us ..? Ve světě online infrastruktury je to hodně … !! Musíme zachovat veškerou dostupnost naší služby " don you Nechci nechat vaši službu/server vypnout a přijít o vaši firmu " Ale někdy dejte
HiFive1 Arduino Detection Intruder With MQTT Alerts using ESP32 or ESP8266: 6 Steps
HiFive1 Arduino Detection Intruder With MQTT Alerts using ESP32 or ESP8266: HiFive1 is the first Arduino compatible RISC-V based board built with FE310 CPU from SiFive. Deska je asi 20krát rychlejší než Arduino UNO, ale stejně jako deska UNO postrádá jakékoli bezdrátové připojení. Naštěstí existuje několik levných
MQTT/Google Home DoorBell using ESP-01: 6 Steps
MQTT/Google Home DoorBell pomocí ESP-01: Zmeškali jste někdy odpověď hostovi, který zazvonil u vašeho zvonku jen proto, že jste v části domu, která je příliš daleko na to, aby slyšela zvonek? například ve sklepě, v ložnici se zavřenými dveřmi nebo jste možná sledovali televizi nebo poslouchali hudbu. Pokud
Propagator Thermostat using ESP8266/NodeMCU and Blynk: 7 Steps (with Pictures)
Propagátorový termostat pomocí ESP8266/NodeMCU a Blynk: Nedávno jsem si koupil vyhřívaný propagátor, který by měl pomoci klíčení semen květin a zeleniny dříve v sezóně. Přišlo to bez termostatu. A protože jsou termostaty dost drahé, rozhodl jsem se vyrobit si vlastní. Jak jsem chtěl použít