Sisukord:
- Samm: mis on MQTT ja kuidas see toimib
- 2. samm: Raspberry Pi
- Samm: staatilise IP -aadressi seadistamine
- Samm: NodeMCU
- Samm: Pythoni skript
- 6. samm: ühendused ja vooluahela skeem
- 7. samm: tulemus
Video: Vaarika Pi Rääkides ESP8266 -ga MQTT abil: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Selles projektis selgitan, mis on MQTT -protokoll ja kuidas seda kasutatakse seadmete vaheliseks suhtlemiseks. Seejärel demonstreerin praktilise näitena, kuidas seadistada kliendi- ja maaklerisüsteem, kus ESP8266 moodul ja RPi -kõne üksteisele või saata sõnum, kui nuppu vajutatakse.
Vajalik materjal
1. Vaarika Pi 3
2. NodeMCU
3. LED
4. Nupp
5. Takistid (10k, 475 oomi)
Samm: mis on MQTT ja kuidas see toimib
MQTT
MQTT on masinatevaheline (M2M) andmeedastusprotokoll. MQTT loodi eesmärgiga koguda andmeid paljudest seadmetest ja seejärel need andmed IT -infrastruktuuri transportida. See on kerge ja sobib seetõttu ideaalselt kaugjälgimiseks, eriti M2M -ühenduste puhul, mis nõuavad väikest koodijalajälge või kus võrgu ribalaius on piiratud.
Kuidas MQTT töötab
MQTT on avaldamis-/tellimisprotokoll, mis võimaldab võrguserva seadmetel maaklerile avaldada. Kliendid loovad selle maakleriga ühenduse, mis seejärel vahendab kahe seadme vahelist suhtlust. Iga seade saab teatud teemasid tellida või registreerida. Kui teine klient avaldab tellitud teemal sõnumi, edastab maakler sõnumi kõigile tellinud klientidele.
MQTT on kahesuunaline ja säilitab seansi teadlikkuse. Kui võrguserva seade kaotab ühenduse, teavitatakse kõiki tellitud kliente MQTT serveri funktsiooniga „Viimane tahe ja testament”, nii et kõik süsteemi volitatud kliendid saavad avaldada uue väärtuse tagasi võrguseade, säilitades kahesuunalise ühenduse.
Projekt on jagatud 3 osaks
Esiteks loome RPi -le MQTT -serveri ja installime mõned teegid.
Teiseks installime Arduino IDE -sse teegid, et NodeMCU töötaks koos MQTT -ga, laadige kood üles ja kontrollige, kas server töötab või mitte.
Lõpuks loome Rpi -s skripti, laadime NodeMCU -s üles vajaliku koodi ja käivitame pythoni skripti, et juhtida LED -e nii serveri- kui ka kliendipoolselt. Siin on server RPi ja klient on NodeMCU.
2. samm: Raspberry Pi
1. Viimase MQTT serveri ja kliendi installimiseks RPi -sse, uue hoidla kasutamiseks peaksite esmalt importima hoidla paketi allkirjastamisvõtme.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key lisage mosquitto-repo.gpg.key
2. Tee hoidla apt kättesaadavaks.
cd /etc/apt/sources.list.d/
3. Sõltuvalt sellest, millist Debiani versiooni kasutate.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Installige Mosquitto server käsu abil.
sudo apt-get install mosquitto
Kui saate Mosquitto installimisel selliseid vigu.
#################################################################
Järgmistel pakettidel on täitmata sõltuvused: mosquitto: Sõltub: libssl1.0.0 (> = 1.0.1), kuid see pole installitav. Sõltub: libwebsockets3 (> = 1.2), kuid seda ei saa installida. pakendid.
#################################################################
Seejärel kasutage seda käsku probleemide lahendamiseks.
sudo apt --fix-purustatud install
5. Pärast MQTT -serveri installimist installige klient käsu abil
sudo apt-get install mosquitto-kliendid
Teenuseid saate kontrollida käsuga.
systemctl staatus mosquitto.teenus
Kuna meie MQTT server ja klient on installitud. Nüüd saame seda tellimise ja avaldamise abil kontrollida. Tellimiseks ja avaldamiseks saate kontrollida käske või külastada veebisaiti, nagu allpool näidatud.
Mosquitto alam
Pubi Mosquitto
Paho-mqtt teegi installimiseks kasutage allolevat käsku.
sudo pip install paho-mqtt
Paho
Samm: staatilise IP -aadressi seadistamine
Minge kataloogi cd /etc ja avage fail dhcpcd.conf mis tahes redaktori abil. Lõpus kirjutage need neli rida.
liides eth0 static ip_address = 192.168.1.100 // ip, mida soovite kasutada
liides wlan0
staatiline ip_address = 192.168.1.68
staatilised ruuterid = 192.168.1.1 // teie vaikevärav
staatiline domeeninimi_server = 192.168.1.1
Pärast seda salvestage see ja taaskäivitage oma pi.
Samm: NodeMCU
Installige NodeMCU jaoks vajalikud teegid Arduino IDE -sse
1. Avage Sketch ==> Kaasa raamatukogu ==> Halda teeke.
2. Otsige mqtt ja installige raamatukogu Adafruit'i kaudu või saate installida mis tahes kogu.
3. See sõltub sleepydogi raamatukogust, seega vajame ka seda raamatukogu.
Programm on toodud eespool, lihtsalt selleks, et kontrollida, kas see töötab või mitte. Siin pole ma RPi -s ühtegi skripti loonud. Me kasutame tellimiseks ja avaldamiseks lihtsalt käske. Loome hiljem kontrollimiseks skripti.
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 ==> hosti nimi-t ==> teema
-m ==> sõnum
Pärast programmi Mqtt_check kontrollimist laadige täielik programm NodeMCU -s üles
Samm: Pythoni skript
Nagu eespool arutasin, vajame nuppude abil LED -ide juhtimiseks pythoni skripti. Niisiis, loome skripti. Skript on toodud ülal.
Skripti käivitamisel peaks teie skript välja nägema nagu pildil näidatud. Kui tulemuse kood ei ole null, siis on see viga, mida saate paho veebisaidil kontrollida.
6. samm: ühendused ja vooluahela skeem
Nupu liides, LED koos NodeMCU -ga
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katood (-ve)
GPIO5 (D1) ===> Anood (+ve)
Nupu liides, LED RPi -ga
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katood (-ve)
GPIO 24 ===> Anood (+ve)
7. samm: tulemus
Veenduge, et skript töötab, vastasel juhul ei saa see nuppe juhtida.
Soovitan:
Lihtne seadistada IR -kaugjuhtimispult LIRC abil vaarika PI (RPi) jaoks - juuli 2019 [1. osa]: 7 sammu
Lihtne seadistada infrapuna kaugjuhtimispult LIRC abil Raspberry PI (RPi) jaoks - juuli 2019 [1. osa]: Pärast pikka otsimist olin üllatunud ja hämmeldunud vastuolulise teabe üle, kuidas oma RPi projekti jaoks IR -kaugjuhtimispulti seadistada. Ma arvasin, et see oleks lihtne, kuid Linuxi infrapunajuhtimise (LIRC) seadistamine on olnud pikka aega problemaatiline
Lennukimonitor Vaarika PI ja DVB -pulga abil: 3 sammu
Lennukimonitor Vaarika PI ja DVB -mälupulga abil: kui olete sageli lendaja või lihtsalt kirglik lennukite vastu, siis peavad Flightradaril või Flightaware 2 -l olema veebisaidid (või rakendused, kuna on ka mobiilirakendusi), mida kasutate iga päev Mõlemad võimaldavad teil lennukeid reaalajas jälgida, vaadake lendu
Rääkides nutiklaasist pimedatele: 7 sammu
Rääkides nutiklaasist pimedatele: turul on saadaval mitmeid nutikaid tarvikuid, näiteks nutiklaase, nutikellasid jne. Kuid kõik need on meie jaoks ehitatud. Füüsiliselt puudega inimeste abistamiseks on tehnoloogia puudus. Tahtsin ehitada midagi, mis on
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
Rääkides Baymaxi kuvarist lastearsti kabinetis: 10 sammu (piltidega)
Rääkides Baymaxi kuvarist lastearsti kabinetis: “Tere. Mina olen Baymax, teie isiklik tervishoiukaaslane.” Minu kohalikus lastearstiametis on nad võtnud vastu huvitava strateegia, et muuta meditsiinikeskkond lastele vähem stressirohkeks ja lõbusamaks. Nad on täitnud e