Turinys:

„Raspberry Pi“kalbasi su ESP8266 naudojant MQTT: 8 žingsniai
„Raspberry Pi“kalbasi su ESP8266 naudojant MQTT: 8 žingsniai

Video: „Raspberry Pi“kalbasi su ESP8266 naudojant MQTT: 8 žingsniai

Video: „Raspberry Pi“kalbasi su ESP8266 naudojant MQTT: 8 žingsniai
Video: The Choice is Ours (2016) Official Full Version 2024, Lapkritis
Anonim
„Raspberry Pi“kalbasi su ESP8266 naudojant MQTT
„Raspberry Pi“kalbasi su ESP8266 naudojant MQTT

Š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

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
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ą

Kaip nustatyti statinį IP adresą
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“

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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

„Python“scenarijus
„Python“scenarijus
„Python“scenarijus
„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

Jungtys ir grandinės schema
Jungtys ir grandinės schema
Jungtys ir grandinės schema
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

Image
Image
Rezultatas
Rezultatas

Įsitikinkite, kad scenarijus veikia, kitaip jis negalės valdyti šviesos diodų naudodami mygtukus.

Rekomenduojamas: