Satura rādītājs:

Raspberry Pi Runājot ar ESP8266, izmantojot MQTT: 8 soļi
Raspberry Pi Runājot ar ESP8266, izmantojot MQTT: 8 soļi

Video: Raspberry Pi Runājot ar ESP8266, izmantojot MQTT: 8 soļi

Video: Raspberry Pi Runājot ar ESP8266, izmantojot MQTT: 8 soļi
Video: Установка приложения ArduBlock 2024, Novembris
Anonim
Raspberry Pi runā ar ESP8266, izmantojot MQTT
Raspberry Pi runā ar ESP8266, izmantojot MQTT

Šajā projektā es paskaidrošu, kas ir MQTT protokols un kā tas tiek izmantots, lai sazinātos starp ierīcēm. Pēc tam kā praktisku paraugdemonstrējumu es parādīšu, kā iestatīt klienta un starpnieka sistēmu, kur tiek izmantots ESP8266 modulis un RPi saruna viens otram vai nosūtīt ziņojumu, nospiežot pogu.

Nepieciešams materiāls

1. Aveņu Pi 3

2. NodeMCU

3. LED

4. Poga

5. Rezistori (10k, 475 omi)

1. darbība: kas ir MQTT un kā tas darbojas

MQTT

MQTT ir datu pārraides protokols no mašīnas uz mašīnu (M2M). MQTT tika izveidots ar mērķi savākt datus no daudzām ierīcēm un pēc tam pārnest šos datus uz IT infrastruktūru. Tas ir viegls un tāpēc ir ideāli piemērots attālinātai uzraudzībai, īpaši M2M savienojumos, kuriem nepieciešams neliels koda nospiedums vai kur tīkla joslas platums ir ierobežots.

Kā darbojas MQTT

MQTT ir publicēšanas/abonēšanas protokols, kas ļauj tīkla ierīcēm publicēt starpniekam. Klienti izveido savienojumu ar šo brokeri, kas pēc tam nodrošina saziņu starp abām ierīcēm. Katra ierīce var abonēt vai reģistrēties noteiktām tēmām. Kad cits klients publicē ziņojumu par abonētu tēmu, brokeris pārsūta ziņojumu jebkuram abonentam.

MQTT ir divvirzienu, un tas nodrošina stāvokļa izpratni. Ja tīkla malas ierīce zaudē savienojumu, visi abonētie klienti tiks informēti ar MQTT servera funkciju “Pēdējā griba un testaments”, lai jebkurš sistēmas pilnvarots klients varētu publicēt jaunu vērtību atpakaļ tīkla ierīce, saglabājot divvirzienu savienojumu.

Projekts ir sadalīts 3 daļās

Pirmkārt, mēs izveidojam MQTT serveri RPi un instalējam dažas bibliotēkas.

Otrkārt, mēs instalēsim bibliotēkas Arduino IDE, lai NodeMCU darbotos ar MQTT, augšupielādētu kodu un pārbaudītu, vai serveris darbojas.

Visbeidzot, mēs izveidojam skriptu programmā Rpi, augšupielādējam nepieciešamo kodu NodeMCU un palaižam python skriptu, lai kontrolētu gaismas diodes gan no servera, gan no klienta puses. Šeit serveris ir RPi un klients ir NodeMCU.

2. darbība: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Lai RPi instalētu jaunāko MQTT serveri un klientu, lai izmantotu jauno repozitoriju, vispirms jāimportē repozitorija pakotnes parakstīšanas atslēga.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key pievienot mosquitto-repo.gpg.key

2. Padariet repozitoriju pieejamu apt.

cd /etc/apt/sources.list.d/

3. Atkarībā no izmantotās Debian versijas.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get update

4. Instalējiet Mosquitto serveri, izmantojot komandu.

sudo apt-get install mosquitto

Ja, instalējot Mosquitto, rodas šādas kļūdas.

#################################################################

Šīm pakotnēm ir neatbilstošas atkarības: mosquitto: Depends: libssl1.0.0 (> = 1.0.1), bet tas nav instalējams Atkarībā: libwebsockets3 (> = 1.2), bet tas nav instalējams. iepakojumi.

#################################################################

Pēc tam izmantojiet šo komandu, lai novērstu problēmas.

sudo apt-labot instalētu instalāciju

5. Pēc MQTT servera instalēšanas instalējiet klientu, izmantojot komandu

sudo apt-get install mosquitto-customers

Pakalpojumus var pārbaudīt, izmantojot komandu.

systemctl statuss mosquitto.pakalpojums

Tā kā mūsu MQTT serveris un klients ir instalēts. Tagad mēs to varam pārbaudīt, izmantojot abonēšanu un publicēšanu. Lai abonētu un publicētu, varat pārbaudīt komandas vai apmeklēt vietni, kā norādīts zemāk.

Mosquitto Sub

Krogs Mosquitto

Lai instalētu paho-mqtt bibliotēku, izmantojiet zemāk esošo komandu.

sudo pip instalējiet paho-mqtt

Paho

3. darbība. Kā iestatīt statisko IP adresi

Kā iestatīt statisko IP adresi
Kā iestatīt statisko IP adresi

Dodieties uz direktoriju cd /etc un atveriet failu dhcpcd.conf, izmantojot jebkuru redaktoru. Beigās uzrakstiet šīs četras rindas.

interfeiss eth0 static ip_address = 192.168.1.100 // ip, kuru vēlaties izmantot

interfeiss wlan0

statiskā ip_adrese = 192.168.1.68

statiskie maršrutētāji = 192.168.1.1 // jūsu noklusējuma vārteja

statiskais domēna_vārda_serveris = 192.168.1.1

Pēc tam saglabājiet to un pārstartējiet savu pi.

4. solis: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Instalējiet nepieciešamās bibliotēkas Arduino IDE NodeMCU

1. Dodieties uz Skice ==> Iekļaut bibliotēku ==> Pārvaldīt bibliotēkas.

2. Meklējiet mqtt un instalējiet bibliotēku, izmantojot Adafruit, vai arī varat instalēt jebkuru bibliotēku.

3. Tas ir atkarīgs no sleepydog bibliotēkas, tāpēc mums ir nepieciešama arī šī bibliotēka.

Programma ir dota iepriekš, tikai lai pārbaudītu, vai tā darbojas vai nē. Šeit es neesmu izveidojis nevienu skriptu RPi. Mēs tikai izmantojam komandas, lai abonētu un publicētu. Mēs izveidosim skriptu kontrolei vēlāk.

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 ==> saimniekdatora nosaukums-t ==> tēma

-m ==> ziņa

Pēc programmas Mqtt_check pārbaudes augšupielādējiet visu programmu NodeMCU

5. darbība: Python skripts

Python skripts
Python skripts
Python skripts
Python skripts

Kā es apspriedu iepriekš, mums ir nepieciešams python skripts, lai kontrolētu gaismas diodes, izmantojot pogas. Tātad, mēs izveidosim skriptu. Skripts ir norādīts iepriekš.

Palaižot skriptu, jūsu skriptam vajadzētu izskatīties tā, kā parādīts attēlā; ja rezultāta kods nav nulle, tad tā ir kļūda, kuru varat pārbaudīt paho vietnē.

6. darbība. Savienojumi un shēmas shēma

Savienojumi un shēmas shēma
Savienojumi un shēmas shēma
Savienojumi un shēmas shēma
Savienojumi un shēmas shēma

Pogas saskarne, LED ar NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katods (-ve)

GPIO5 (D1) ===> Anods (+ve)

Pogas saskarne, LED ar RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katods (-ve)

GPIO 24 ===> Anods (+ve)

7. solis: rezultāts

Image
Image
Rezultāts
Rezultāts

Pārliecinieties, vai skripts darbojas, pretējā gadījumā tas nevarēs vadīt LED, izmantojot pogas.

Ieteicams: