Obsah:
- Krok 1: Čo je MQTT a ako funguje
- Krok 2: Raspberry Pi
- Krok 3: Ako nastaviť statickú IP adresu
- Krok 4: NodeMCU
- Krok 5: Python skript
- Krok 6: Pripojenia a schéma zapojenia
- Krok 7: Výsledok
Video: Raspberry Pi, hovoriaci s ESP8266 pomocou MQTT: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
V tomto projekte vysvetlím, čo je protokol MQTT a ako sa používa na komunikáciu medzi zariadeniami. Potom ako praktickú ukážku ukážem, ako nastaviť systém klient a brocker, kde sa hovorí o moduloch ESP8266 a RPi navzájom alebo odoslať správu po stlačení tlačidla.
Potrebný materiál
1. Raspberry Pi 3
2. NodeMCU
3. LED dióda
4. Tlačidlo
5. Rezistory (10k, 475 ohmov)
Krok 1: Čo je MQTT a ako funguje
MQTT
MQTT je protokol na prenos údajov medzi strojmi (M2M). MQTT bol vytvorený s cieľom zhromažďovať údaje z mnohých zariadení a potom ich prenášať do IT infraštruktúry. Je ľahký, a preto je ideálny na diaľkové monitorovanie, najmä v prípade pripojení M2M, ktoré vyžadujú malú stopu kódu alebo kde je obmedzená šírka pásma siete.
Ako funguje MQTT
MQTT je protokol na publikovanie/predplatné, ktorý umožňuje zariadeniam na okrajových sieťach publikovať u makléra. Klienti sa pripájajú k tomuto maklérovi, ktorý potom sprostredkúva komunikáciu medzi týmito dvoma zariadeniami. Každé zariadenie sa môže prihlásiť na odber konkrétnych tém alebo sa zaregistrovať. Keď iný klient zverejní správu na tému predplateného, sprostredkovateľ správu prepošle každému klientovi, ktorý sa prihlásil na odber.
MQTT je obojsmerný a udržuje stavové povedomie o relácii. Ak zariadenie na okraji siete stratí konektivitu, všetci prihlásení klienti budú upozornení na funkciu „Posledná vôľa“servera MQTT, aby ktorýkoľvek autorizovaný klient v systéme mohol publikovať novú hodnotu späť na okraj siete. sieťové zariadenie so zachovaním obojsmerného pripojenia.
Projekt je rozdelený na 3 časti
Najprv vytvoríme server MQTT na RPi a nainštalujeme niektoré knižnice.
Za druhé, nainštalujeme knižnice do Arduino IDE, aby NodeMCU fungovalo s MQTT, nahráme kód a skontrolujeme, či server funguje alebo nie.
Nakoniec vytvoríme skript v Rpi, nahráme požadovaný kód do NodeMCU a spustíme skript python na ovládanie LED diód zo serverovej aj klientskej strany. Tu je server RPi a klient NodeMCU.
Krok 2: Raspberry Pi
1. Ak chcete nainštalovať najnovší server a klienta MQTT do systému RPi, aby ste mohli používať nové úložisko, najskôr importujte podpisový kľúč balíka úložiska.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key pridať mosquitto-repo.gpg.key
2. Sprístupnite úložisko pre apt.
cd /etc/apt/sources.list.d/
3. Podľa toho, akú verziu Debianu používate.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get aktualizácia
4. Nainštalujte server Mosquitto pomocou príkazu.
sudo apt-get install mosquitto
Ak sa vám pri inštalácii Mosquitta zobrazujú chyby, postupujte takto.
#################################################################
Nasledujúce balíky majú nesplnené závislosti: mosquitto: Závisí: libssl1.0.0 (> = 1.0.1), ale nie je možné ho nainštalovať Závisí od: libwebsockets3 (> = 1.2), ale nie je možné ho nainštalovať E: Nedá sa opraviť problémy, považovali ste zlomené balíčky.
#################################################################
Potom pomocou tohto príkazu vyriešte problémy.
sudo apt-opravená inštalácia
5. Po inštalácii servera MQTT nainštalujte klienta pomocou príkazu
sudo apt-get install mosquitto-clients
Služby môžete skontrolovať pomocou príkazu.
systemctl status mosquitto.service
Pretože je nainštalovaný náš server a klient MQTT. Teraz to môžeme skontrolovať pomocou prihlásenia sa na odber a publikovania. Ak sa chcete prihlásiť na odber a publikovať, môžete skontrolovať príkazy alebo navštíviť webovú stránku, ako je uvedené nižšie.
Mosquitto Sub
Pub Mosquitto
Na nainštalovanie knižnice paho-mqtt použite nasledujúci príkaz.
sudo pip install paho-mqtt
Paho
Krok 3: Ako nastaviť statickú IP adresu
Prejdite do adresára cd /etc a pomocou ľubovoľného editora otvorte súbor dhcpcd.conf. Na konci napíšte tieto štyri riadky.
interface eth0 static ip_address = 192.168.1.100 // ip, ktorú chcete použiť
rozhranie wlan0
statická adresa ip = 192.168.1.68
static routery = 192.168.1.1 // vaša predvolená brána
statické_domény_služby_služby = 192.168.1.1
Potom to uložte a reštartujte svoje pi.
Krok 4: NodeMCU
Nainštalujte požadované knižnice do Arduino IDE pre NodeMCU
1. Prejdite na položku Skica ==> Zahrnúť knižnicu ==> Spravovať knižnice.
2. Vyhľadajte mqtt a nainštalujte knižnicu pomocou Adafruit alebo si môžete nainštalovať ľubovoľnú knižnicu.
3. Závisí to od knižnice sleepydog, takže potrebujeme aj túto knižnicu.
Program je uvedený vyššie, len na kontrolu, či funguje alebo nie. Tu som v RPi nevytvoril žiadny skript. Na prihlásenie na odber a publikovanie používame iba príkazy. Skript na ovládanie vytvoríme neskôr.
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "VYPNUTÉ"
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 "VYPNUTÉ"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h ==> názov hostiteľa-t ==> téma
-m ==> správa
Po kontrole programu Mqtt_check nahrajte kompletný program do NodeMCU
Krok 5: Python skript
Ako som už diskutoval vyššie, potrebujeme python skript na ovládanie LED diód pomocou tlačidiel. Takže vytvoríme skript. Skript je uvedený vyššie.
Keď spustíte skript, váš skript by mal vyzerať tak, ako je znázornené na obrázku, ak kód výsledku nie je nula, potom je to chyba, môžete chybu skontrolovať na webe paho.
Krok 6: Pripojenia a schéma zapojenia
Rozhranie tlačidla, LED s NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3,3 V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katóda (-ve)
GPIO5 (D1) ===> Anóda (+ve)
Rozhranie tlačidla, LED s RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katóda (-ve)
GPIO 24 ===> Anóda (+ve)
Krok 7: Výsledok
Uistite sa, že je skript spustený, inak nebude môcť ovládať LED pomocou tlačidiel.
Odporúča:
Hovoriaci Santa Blowmold: 5 krokov
Talking Santa Blowmold: Tento projekt vysvetľuje, ako vytvoriť ozdobu, ktorá prehrá zvukový súbor, keď niekto ide okolo. To sa dá ľahko dosiahnuť pomocou počítača, na ktorom je možné spustiť program Motion, a nejakého fotoaparátu. V tomto prípade som použil 20 " vysoký Santa Clau
Hovoriaci klobúk rozpoznávajúci chvenie s obvodovým ihriskom Express: 12 krokov (s obrázkami)
Hovoriaci klobúk s detekciou chvenia s obvodovým ihriskom Express: Tento ľahký a rýchly návod vás naučí, ako si vyrobiť hovoriaci klobúk! Keď „položíte“otázku, odpovedalo by to starostlivo spracovanou odpoveďou, a možno by vám to mohlo pomôcť rozhodnúť sa, či máte nejaké starosti alebo problémy. V mojej triede nositeľnej techniky som
Prevodník textu na reč Arduino pomocou LM386 - Hovoriaci projekt Arduino - Knižnica Talkie Arduino: 5 krokov
Prevodník textu na reč Arduino pomocou LM386 | Hovoriaci projekt Arduino | Knižnica Talkie Arduino: Ahoj, v mnohých projektoch požadujeme, aby arduino hovorilo niečo ako hovoriace hodiny alebo rozprávanie niektorých údajov, takže v tomto návode prevedieme text na reč pomocou Arduina
Hovoriaci displej Baymax pre detskú ordináciu: 10 krokov (s obrázkami)
Hovoriaci displej Baymax pre detskú ordináciu: „Dobrý deň. Som Baymax, váš osobný spoločník v oblasti zdravotnej starostlivosti. “- BaymaxV mojej miestnej ordinácii pediatra prijali zaujímavú stratégiu v snahe dosiahnuť, aby bolo lekárske prostredie pre deti menej stresujúce a zábavnejšie. Vyplnili e
Hovoriaci snímač vetra (so súpravou na záznam hlasu): 6 krokov
Hovoriaci snímač vetra (so súpravou na záznam hlasu): Toto je snímač vetra s vodivými niťami, vodivými tkaninami a kovovou guľou