Turinys:
- 1 žingsnis: kas yra MQTT ir kaip jis veikia
- 2 žingsnis: Raspberry Pi
- 3 žingsnis: Kaip nustatyti statinį IP adresą
- 4 žingsnis: „NodeMCU“
- 5 veiksmas: „Python“scenarijus
- 6 žingsnis: jungtys ir grandinės schema
- 7 žingsnis: rezultatas
Video: „Raspberry Pi“kalbasi su ESP8266 naudojant MQTT: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Šiame projekte aš paaiškinsiu, kas yra MQTT protokolas ir kaip jis naudojamas bendrauti tarp įrenginių. Tada, kaip praktinis pavyzdys, parodysiu, kaip nustatyti kliento ir brokerio sistemą, kurioje yra ESP8266 modulis ir RPi pokalbiai vienas kitam arba siųsti pranešimą, kai paspaudžiamas mygtukas.
Reikalinga medžiaga
1. Raspberry Pi 3
2. „NodeMCU“
3. LED
4. Mygtukas
5. Rezistoriai (10 k, 475 omų)
1 žingsnis: kas yra MQTT ir kaip jis veikia
MQTT
MQTT yra duomenų perdavimo iš mašinos į mašiną (M2M) protokolas. „MQTT“buvo sukurtas siekiant surinkti duomenis iš daugelio įrenginių ir tada perkelti tuos duomenis į IT infrastruktūrą. Jis yra lengvas ir todėl idealiai tinka nuotoliniam stebėjimui, ypač naudojant M2M ryšius, kuriems reikalingas nedidelis kodo pėdsakas, arba kai tinklo pralaidumas yra ribotas.
Kaip veikia MQTT
MQTT yra paskelbimo/prenumeratos protokolas, leidžiantis tinklo krašto įrenginiams skelbti tarpininkui. Klientai prisijungia prie šio tarpininko, kuris tada tarpininkauja bendravimui tarp dviejų įrenginių. Kiekvienas įrenginys gali užsisakyti arba užsiregistruoti tam tikroms temoms. Kai kitas klientas paskelbia pranešimą prenumeruojama tema, brokeris persiunčia pranešimą bet kuriam užsiprenumeravusiam klientui.
MQTT yra dvikryptis ir palaiko būseną informuojantį apie seansą. Jei tinklo krašto įrenginys praranda ryšį, visi prenumeruoti klientai bus informuoti naudojant MQTT serverio funkciją „Paskutinė valia ir testamentas“, kad bet kuris įgaliotas sistemos klientas galėtų paskelbti naują vertę tinklo įrenginys, palaikantis dvikryptį ryšį.
Projektas padalintas į 3 dalis
Pirmiausia sukuriame MQTT serverį RPi ir įdiegiame kai kurias bibliotekas.
Antra, įdiegsime „Arduino IDE“bibliotekas, kad „NodeMCU“veiktų su MQTT, įkeltume kodą ir patikrintume, ar serveris veikia, ar ne.
Galiausiai sukuriame scenarijų „Rpi“, įkeliame reikiamą kodą į „NodeMCU“ir paleidžiame „python“scenarijų, kad galėtume valdyti šviesos diodus tiek iš serverio, tiek iš kliento pusės. Čia serveris yra RPi, o klientas - NodeMCU.
2 žingsnis: Raspberry Pi
1. Norėdami įdiegti naujausią MQTT serverį ir klientą RPi, norėdami naudoti naują saugyklą, pirmiausia turite importuoti saugyklos paketo pasirašymo raktą.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key pridėti mosquitto-repo.gpg.key
2. Leiskite saugyklą pasiekti apt.
cd /etc/apt/sources.list.d/
3. Priklausomai nuo to, kurią „Debian“versiją naudojate.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get atnaujinimas
4. Įdiekite „Mosquitto“serverį naudodami komandą.
sudo apt-get install mosquitto
Jei diegdami „Mosquitto“gaunate klaidų.
#################################################################
Šie paketai turi nepatenkintų priklausomybių: mosquitto: Priklauso: libssl1.0.0 (> = 1.0.1), bet jo negalima įdiegti paketai.
#################################################################
Tada naudokite šią komandą, kad išspręstumėte problemas.
sudo apt-pataisytas diegimas
5. Įdiegę MQTT serverį, įdiekite klientą naudodami komandą
sudo apt-get install mosquitto-customers
Paslaugas galite patikrinti naudodami komandą.
systemctl status mosquitto.paslauga
Kaip įdiegtas mūsų MQTT serveris ir klientas. Dabar galime tai patikrinti naudodami prenumeratą ir paskelbimą. Norėdami užsiprenumeruoti ir paskelbti, galite patikrinti komandas arba apsilankyti svetainėje, kaip nurodyta toliau.
Mosquitto sub
Pub Mosquitto
Norėdami įdiegti paho-mqtt biblioteką, naudokite žemiau esančią komandą.
sudo pip įdiegti paho-mqtt
Paho
3 žingsnis: Kaip nustatyti statinį IP adresą
Eikite į katalogą cd /etc ir atidarykite failą dhcpcd.conf naudodami bet kurį redaktorių. Pabaigoje parašykite šias keturias eilutes.
sąsaja eth0 static ip_address = 192.168.1.100 // ip, kurį norite naudoti
sąsaja wlan0
statinis ip_address = 192.168.1.68
statiniai maršrutizatoriai = 192.168.1.1 // jūsų numatytasis šliuzas
statinis domeno_vardo_serveris = 192.168.1.1
Po to išsaugokite ir iš naujo paleiskite „pi“.
4 žingsnis: „NodeMCU“
Įdiekite reikalingas bibliotekas „Arduino IDE“, skirtoje „NodeMCU“
1. Eikite į Eskizas ==> Įtraukti biblioteką ==> Tvarkyti bibliotekas.
2. Ieškokite „mqtt“ir įdiekite „Adafruit“biblioteką arba galite įdiegti bet kurią biblioteką.
3. Tai priklauso nuo „sleepydog“bibliotekos, todėl mums taip pat reikia šios bibliotekos.
Programa pateikta aukščiau, tik norint patikrinti, ar ji veikia, ar ne. Čia aš nesukūriau jokio scenarijaus RPi. Mes tiesiog naudojame komandas užsiprenumeruoti ir paskelbti. Vėliau sukursime valdymo scenarijų.
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 ==> pagrindinio kompiuterio vardas-t ==> tema
-m ==> pranešimas
Patikrinę programą „Mqtt_check“, įkelkite visą programą „NodeMCU“
5 veiksmas: „Python“scenarijus
Kaip jau aptariau aukščiau, mums reikia „python“scenarijaus, skirto šviesos diodams valdyti mygtukais. Taigi, mes sukursime scenarijų. Scenarijus pateiktas aukščiau.
Kai vykdote scenarijų, jūsų scenarijus turėtų atrodyti taip, kaip parodyta paveikslėlyje, jei rezultato kodas nėra lygus nuliui, tai yra klaida, kurią galite patikrinti paho svetainėje.
6 žingsnis: jungtys ir grandinės schema
Mygtuko sąsaja, LED su „NodeMCU“
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katodas (-ve)
GPIO5 (D1) ===> Anodas (+ve)
Mygtuko sąsaja, LED su RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> katodas (-ve)
GPIO 24 ===> Anodas (+ve)
7 žingsnis: rezultatas
Įsitikinkite, kad scenarijus veikia, kitaip jis negalės valdyti šviesos diodų naudodami mygtukus.
Rekomenduojamas:
Namų automatizavimas naudojant „Raspberry Pi“naudojant relės lentą: 7 žingsniai
Namų automatizavimas naudojant „Raspberry Pi“naudojant relės lentą: Dauguma žmonių nori didelio komforto, tačiau už priimtiną kainą. Jaučiamės tingūs apšviesti namus kiekvieną vakarą, kai saulė nusileidžia, ir kitą rytą, vėl išjungdami šviesą arba įjungdami/išjungdami oro kondicionierių/ventiliatorių/šildytuvus
Judėjimo valdymas naudojant „Raspberry Pi“ir LIS3DHTR, 3 ašių akselerometras, naudojant „Python“: 6 žingsniai
Judėjimo valdymas naudojant „Raspberry Pi“ir „LIS3DHTR“, 3 ašių akselerometrą, naudojant „Python“: grožis supa mus, tačiau paprastai turime vaikščioti sode, kad tai žinotume. - „RumiAs“kaip išsilavinusi grupė, kuri, panašu, esame, didžiąją savo energijos dalį investuojame į darbą prieš kompiuterius ir mobiliuosius telefonus. Todėl mes dažnai leidžiame savo gerovei
Interneto laikrodis: rodyti datą ir laiką naudojant OLED naudojant ESP8266 „NodeMCU“su NTP protokolu: 6 žingsniai
Interneto laikrodis: rodyti datą ir laiką naudojant OLED naudojant ESP8266 „NodeMCU“su NTP protokolu: Sveiki, vaikinai, šioje instrukcijoje mes sukursime interneto laikrodį, kuris gaus laiko iš interneto, todėl šiam projektui vykdyti nereikės jokio RTC, o tik veikiantis interneto ryšys Ir šiam projektui jums reikia esp8266, kuris turės
Vartų valdymas naudojant „Google“padėjėją naudojant ESP8266 „NodeMCU“: 6 žingsniai
Vartų valdymas naudojant „Google“padėjėją naudojant ESP8266 „NodeMCU“: tai yra mano pirmasis projektas, skirtas instrukcijoms, todėl, jei yra galimų patobulinimų, pakomentuokite toliau. Idėja yra naudoti „Google“asistentą, norint nusiųsti signalą į vartų valdymo plokštę. Taigi, siunčiant komandą, bus relė, kuri uždarys
Darbo su „AWS IoT“pradžia naudojant belaidį temperatūros jutiklį naudojant MQTT: 8 žingsniai
Darbo su „AWS IoT“su belaidžiu temperatūros jutikliu naudojimas naudojant MQTT: Ankstesnėse instrukcijose mes perėjome įvairias debesų platformas, tokias kaip „Azure“, „Ubidots“, „ThingSpeak“, „Losant“ir kt. Mes beveik naudojome MQTT protokolą, skirtą jutiklių duomenims į debesį siųsti. visa debesų platforma. Norėdami gauti daugiau informacijos