Sisukord:

Vaarika Pi Rääkides ESP8266 -ga MQTT abil: 8 sammu
Vaarika Pi Rääkides ESP8266 -ga MQTT abil: 8 sammu

Video: Vaarika Pi Rääkides ESP8266 -ga MQTT abil: 8 sammu

Video: Vaarika Pi Rääkides ESP8266 -ga MQTT abil: 8 sammu
Video: Лучший секретный секрет: малина Pi $ 10.00 Компьютер 2024, November
Anonim
Vaarika Pi räägib ESP8266 -ga, kasutades MQTT -d
Vaarika Pi räägib ESP8266 -ga, kasutades MQTT -d

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

Vaarika Pi
Vaarika Pi
Vaarika Pi
Vaarika Pi
Vaarika Pi
Vaarika Pi
Vaarika Pi
Vaarika 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

Staatilise IP -aadressi seadistamine
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

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

Pythoni skript
Pythoni skript
Pythoni skript
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

Ühendused ja vooluahela skeem
Ühendused ja vooluahela skeem
Ühendused ja vooluahela skeem
Ü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

Image
Image
Tulemus
Tulemus

Veenduge, et skript töötab, vastasel juhul ei saa see nuppe juhtida.

Soovitan: