Kazalo:
- 1. korak: Kaj je MQTT in kako deluje
- 2. korak: Raspberry Pi
- 3. korak: Kako nastaviti statični IP naslov
- 4. korak: NodeMCU
- 5. korak: Python Script
- Korak 6: Povezave in vezja
- 7. korak: Rezultat
Video: Raspberry Pi se pogovarja z ESP8266 z uporabo MQTT: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
V tem projektu bom razložil, kaj je protokol MQTT in kako se uporablja za komunikacijo med napravami, nato pa bom v praktični predstavitvi pokazal, kako nastaviti sistem odjemalca in posrednika, kjer govorita modul ESP8266 in RPi drug drugemu ali pošljete sporočilo, ko pritisnete gumb.
Potreben material
1. Malina Pi 3
2. NodeMCU
3. LED
4. Gumb
5. Upori (10k, 475 ohm)
1. korak: Kaj je MQTT in kako deluje
MQTT
MQTT je protokol za prenos podatkov med stroji (M2M). MQTT je bil ustvarjen z namenom zbiranja podatkov iz številnih naprav in nato prenašanja teh podatkov v infrastrukturo IT. Je lahek in zato idealen za daljinsko spremljanje, zlasti pri povezavah M2M, ki zahtevajo majhen odtis kode ali kjer je pasovna širina omrežja omejena.
Kako deluje MQTT
MQTT je protokol za objavo/naročnino, ki napravam na robu omrežja omogoča objavo pri posredniku. Stranke se povežejo s tem posrednikom, ki nato posreduje komunikacijo med obema napravama. Vsaka naprava se lahko naroči ali registrira na določene teme. Ko druga stranka objavi sporočilo o naročeni temi, posrednik sporočilo posreduje vsem odjemalcem, ki so naročeni.
MQTT je dvosmerna in ohranja ozaveščenost o seji. Če naprava na robu omrežja izgubi povezljivost, bodo vsi naročeni odjemalci obveščeni s funkcijo »Zadnja volja in zaveza« strežnika MQTT, tako da lahko kateri koli pooblaščeni odjemalec v sistemu objavi novo vrednost nazaj na rob omrežna naprava, ki ohranja dvosmerno povezljivost.
Projekt je razdeljen na 3 dele
Najprej ustvarimo strežnik MQTT na RPi in namestimo nekaj knjižnic.
Drugič, v Arduino IDE bomo namestili knjižnice za NodeMCU za delo z MQTT, naložili kodo in preverili, ali strežnik deluje ali ne.
Končno ustvarimo skript v Rpi, naložimo zahtevano kodo v NodeMCU in zaženemo skript python za nadzor LED na strani strežnika in odjemalca. Tukaj je strežnik RPi, odjemalec pa NodeMCU.
2. korak: Raspberry Pi
1. Če želite v RPi namestiti najnovejši strežnik in odjemalca MQTT, za uporabo novega skladišča najprej uvozite ključ za podpis paketa skladišča.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Dajte skladišče na voljo apt.
cd /etc/apt/sources.list.d/
3. Odvisno od tega, katero različico Debiana uporabljate.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listssudo wget
sudo wget
sudo apt-get posodobitev
4. Namestite strežnik Mosquitto z ukazom.
sudo apt-get install mosquitto
Če pri nameščanju takšnega Mosquitta prihaja do napak.
#################################################################
Naslednji paketi imajo neizpolnjene odvisnosti: mosquitto: Odvisno: libssl1.0.0 (> = 1.0.1), vendar ga ni mogoče namestiti Odvisno: libwebsockets3 (> = 1.2), vendar ga ni mogoče namestiti E: Težave ni mogoče odpraviti. paketov.
#################################################################
Nato uporabite ta ukaz za odpravljanje težav.
sudo apt-fix-broken install
5. Po namestitvi strežnika MQTT odjemalca namestite z ukazom
sudo apt-get install mosquitto-clients
Storitve lahko preverite z ukazom.
systemctl status mosquitto.service
Ker sta strežnik in odjemalec MQTT nameščena. Zdaj lahko to preverimo z naročnino in objavo. Če se želite naročiti in objaviti, lahko preverite ukaze ali obiščete spletno mesto, kot je navedeno spodaj.
Mosquitto Sub
Mosquitto Pub
Za namestitev knjižnice paho-mqtt uporabite spodnji ukaz.
sudo pip namestite paho-mqtt
Paho
3. korak: Kako nastaviti statični IP naslov
Pojdite v imenik cd /etc in odprite datoteko dhcpcd.conf s katerim koli urejevalnikom. Na koncu napišite te štiri vrstice.
vmesnik eth0 static ip_address = 192.168.1.100 // ip, ki ga želite uporabiti
vmesnik wlan0
statični naslov_ ip = 192.168.1.68
statični usmerjevalniki = 192.168.1.1 // vaš privzeti prehod
statični strežniki_ime_domene = 192.168.1.1
Po tem ga shranite in znova zaženite pi.
4. korak: NodeMCU
Namestite potrebne knjižnice v Arduino IDE za NodeMCU
1. Pojdite na Sketch ==> Vključi knjižnico ==> Upravljaj knjižnice.
2. Poiščite mqtt in namestite knjižnico s strani Adafruit ali pa namestite katero koli knjižnico.
3. Odvisno je od knjižnice sleepydog, zato jo potrebujemo tudi.
Program je naveden zgoraj, samo za preverjanje, ali deluje ali ne. Tukaj nisem ustvaril nobenega skripta v RPi. Za naročanje in objavo uporabljamo samo ukaze. Kasneje bomo ustvarili skript za nadzor.
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 ==> ime gostitelja-t ==> tema
-m ==> sporočilo
Po preverjanju programa Mqtt_check naložite celoten program v NodeMCU
5. korak: Python Script
Kot sem že omenil, potrebujemo python skript za nadzor LED z gumbi. Torej bomo ustvarili skript. Scenarij je naveden zgoraj.
Ko zaženete skript, bi moral biti vaš skript videti tako, kot je prikazano na sliki, če koda rezultata ni nič, je to napaka, ki jo lahko preverite na spletnem mestu paho.
Korak 6: Povezave in vezja
Vmesnik gumba, LED z NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katoda (-ve)
GPIO5 (D1) ===> Anoda (+ve)
Vmesnik gumba, LED z RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katoda (-ve)
GPIO 24 ===> Anoda (+ve)
7. korak: Rezultat
Poskrbite, da se skript izvaja, sicer ne bo mogel upravljati LED z gumbi.
Priporočena:
Domača avtomatizacija z internetom/v oblaku z uporabo Esp8266 (aREST, MQTT, IoT): 7 korakov (s slikami)
Domača avtomatizacija, ki jo nadzira internet/oblak z uporabo Esp8266 (aREST, MQTT, IoT): VSE zasluge http://arest.io/ za storitev v oblaku !! IoT trenutno najbolj obravnavana tema na svetu !! Strežniki in storitve v oblaku, ki to omogočajo, so privlačna točka današnjega sveta
Domača avtomatizacija z uporabo MQTT in ESP8266: 6 korakov
Domača avtomatizacija z uporabo MQTT in ESP8266: Danes je avtomatizacija doma v trendu in prihajajoča doba IoT (Internet of Things). Vsak poskuša avtomatizirati dom na nek način, potem pa ga je mogoče daljinsko upravljati ali ročno. In kar jim olajša življenje. Obstajajo človeške tehnike za nadzor
MAX7219 LED Matrix MQTT z uporabo Esp8266: 6 korakov
MAX7219 LED Matrix MQTT z uporabo Esp8266: Poskušal sem povezati svoj LED zaslon MAX7219 s strežnikom MQTT in prejeti besedilo iz naročnine MQTT za prikaz. Vendar v internetu nisem dobil ustrezne kode, zato sem začel graditi svojo … in rezultat pride zelo dobro … lahko di
Spremljanje pospeševanja z uporabo Raspberry Pi in AIS328DQTR z uporabo Pythona: 6 korakov
Spremljanje pospeševanja z Raspberry Pi in AIS328DQTR z uporabo Pythona: Po moje je pospeševanje po nekaterih zakonih fizike končno.- Terry Riley Gepard pri lovu uporablja neverjeten pospešek in hitre spremembe hitrosti. Najhitrejše bitje na kopnem včasih izkoristi svojo najvišjo hitrost za ulov plena.
Ustvarite aplikacijo za iPhone, ki se pogovarja z mrežo delcev: 4 koraki
Ustvarite aplikacijo za iPhone, ki se pogovarja z mrežo delcev: V tem projektu se boste naučili, kako naložiti aplikacijo na svoj iPhone, ki se pogovarja neposredno s ploščo iz delcev tretje generacije. Vzelo vam bo manj kot 20 minut vašega časa. Poleg tega lahko začnete delati takoj! Začnimo. Stvari, ki jih ne boste