Satura rādītājs:
- 1. darbība: kas ir MQTT un kā tas darbojas
- 2. darbība: Raspberry Pi
- 3. darbība. Kā iestatīt statisko IP adresi
- 4. solis: NodeMCU
- 5. darbība: Python skripts
- 6. darbība. Savienojumi un shēmas shēma
- 7. solis: rezultāts
Video: Raspberry Pi Runājot ar ESP8266, izmantojot MQTT: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Š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
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
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
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
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
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
Pārliecinieties, vai skripts darbojas, pretējā gadījumā tas nevarēs vadīt LED, izmantojot pogas.
Ieteicams:
Led kontrole, izmantojot lietotni Blynk, izmantojot Nodemcu, izmantojot internetu: 5 soļi
Led kontrole, izmantojot lietotni Blynk, izmantojot Nodemcu, izmantojot internetu: Sveiki, visi šodien, mēs jums parādīsim, kā jūs varat kontrolēt LED, izmantojot viedtālruni internetā
Kontrolējiet sadzīves tehniku, izmantojot Alexa, izmantojot ESP8266 vai ESP32: 8 soļi
Kontrolējiet sadzīves tehniku, izmantojot Alexa, izmantojot ESP8266 vai ESP32: Hei, kas notiek, puiši! Akarsh šeit no CETech. Šis mans projekts palīdzēs jūsu dzīvei kļūt vieglākai, un jūs jutīsities kā karalis pēc tam, kad būsit kontrolējis ierīces savā mājā, vienkārši dodot komandu Alexa. Galvenais, kas ir aiz šī p
Kā izveidot vairākas ESP sarunas, izmantojot ESP-NOW, izmantojot ESP32 un ESP8266: 8 soļi
Kā izveidot vairākas ESP sarunas, izmantojot ESP-NOW, izmantojot ESP32 un ESP8266: Manā notiekošajā projektā man ir nepieciešami vairāki ESP, lai sarunātos viens ar otru bez maršrutētāja. Lai to izdarītu, es izmantošu ESP-NOW, lai bezvadu sazinātos savā starpā bez ESP maršrutētāja
Atskaņojiet dziesmas, izmantojot Arduino, izmantojot ADC līdz PWM, izmantojot Flyback transformatoru vai skaļruni: 4 soļi
Atskaņot dziesmas ar Arduino, izmantojot ADC, lai PWM Flyback transformatorā vai skaļrunī: Sveiki, puiši, šī ir mana cita pamācības otrā daļa (tas bija daudz grūti). Būtībā šajā projektā esmu izmantojis ADC un taimeri savā Arduino, lai pārvērst audio signālu par PWM signālu. Tas ir daudz vieglāk nekā mana iepriekšējā instrukcija
Kontrolējiet Arduino, izmantojot viedtālruni, izmantojot USB, izmantojot lietotni Blynk: 7 soļi (ar attēliem)
Kontrolējiet Arduino, izmantojot viedtālruni, izmantojot USB, izmantojot lietotni Blynk: Šajā apmācībā mēs iemācīsimies lietot lietotni Blynk un Arduino, lai kontrolētu lampu, kombinācija notiks, izmantojot USB seriālo portu. Šīs pamācības mērķis ir parādīt vienkāršākais risinājums, lai attālināti kontrolētu savu Arduino vai c