Mündəricat:

Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır: 8 addım
Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır: 8 addım

Video: Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır: 8 addım

Video: Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır: 8 addım
Video: Ev köməkçisi - WS2812B ünvan lentini ESP8266 vasitəsilə WLED proqram təminatı ilə birləşdirin 2024, Noyabr
Anonim
Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır
Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır

Bu layihədə, MQTT protokolunun nə olduğunu və cihazlar arasında necə ünsiyyət qurulduğunu izah edəcəyəm, sonra praktiki bir nümayiş olaraq, ESP8266 modulunun və RPi müzakirəsinin olduğu bir müştəri və broker sisteminin necə qurulacağını göstərəcəyəm. bir düyməyə basıldıqda bir -birinizə mesaj göndərin.

Tələb olunan material

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Düymə

5. Rezistorlar (10k, 475 ohm)

Addım 1: MQTT nədir və necə işləyir

MQTT

MQTT, maşından maşına (M2M) məlumat ötürmə protokoludur. MQTT, bir çox cihazdan məlumat toplamaq və sonra həmin məlumatları İT infrastrukturuna nəql etmək məqsədi ilə yaradılmışdır. Yüngül və buna görə də kiçik bir kod izi tələb edən və ya şəbəkə bant genişliyinin məhdud olduğu M2M bağlantılarında uzaqdan izləmə üçün idealdır.

MQTT necə işləyir

MQTT, şəbəkə kənarındakı cihazların bir brokerə yayımlamasına imkan verən yayım/abunə protokoludur. Müştərilər bu brokerə qoşulur, sonra iki cihaz arasında ünsiyyətə vasitəçilik edir. Hər bir cihaz müəyyən mövzulara abunə ola və ya qeydiyyatdan keçə bilər. Başqa bir müştəri abunə mövzu ilə əlaqədar bir mesaj dərc edərkən, broker mesajı abunə olan hər hansı bir müştəriyə göndərir.

MQTT iki istiqamətlidir və iclasda məlumatlılığı təmin edir. Şəbəkə kənarında olan bir cihaz bağlantısını itirərsə, bütün abunəçilərə MQTT serverinin "Son İstək vəsiyyət" xüsusiyyəti bildiriləcək ki, sistemdəki hər hansı bir səlahiyyətli müştəri yeni bir dəyəri yenidən kənarda yayımlaya bilsin. ikitərəfli əlaqəni qoruyan şəbəkə cihazı.

Layihə 3 hissəyə bölünüb

Birincisi, RPi -də MQTT serveri yaradırıq və bəzi kitabxanaları quraşdırırıq.

İkincisi, MQTT ilə işləmək üçün NodeMCU üçün Arduino IDE -də kitabxanalar quraşdıracağıq, kodu yükləyəcəyik və serverin işləyib işləmədiyini yoxlayacağıq.

Nəhayət, Rpi -də bir skript yaradırıq, NodeMCU -da lazımi kodu yükləyirik və ledləri həm server, həm də müştəri tərəfdən idarə etmək üçün python skriptini işə salırıq. Burada server RPi və müştəri NodeMCU -dur.

Addım 2: Raspberry Pi

Moruq Pi
Moruq Pi
Moruq Pi
Moruq Pi
Moruq Pi
Moruq Pi
Moruq Pi
Moruq Pi

1. RPi -də ən son MQTT serverini və müştərisini qurmaq üçün, yeni depodan istifadə etmək üçün əvvəlcə depo paketi imzalama açarını idxal etməlisiniz.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key mosquitto-repo.gpg.key əlavə edin

2. Depoyu apt üçün əlçatan edin.

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

3. Hansı Debian versiyasından istifadə etdiyinizə görə.

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

sudo wget

sudo apt-get yeniləməsi

4. Komut istifadə edərək Mosquitto serverini quraşdırın.

sudo apt-get mosquitto quraşdırın

Mosquitto -nu bu şəkildə quraşdırarkən səhvlər alırsınızsa.

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

Aşağıdakı paketlərin yerinə yetirilməyən asılılıqları var: ağcaqanad: Asılıdır: libssl1.0.0 (> = 1.0.1), lakin quraşdırıla bilməz Bağlıdır: libwebsockets3 (> = 1.2), lakin quraşdırıla bilməz E: Problemləri düzəltmək mümkün deyil, pozulmuş vəziyyətdə qalmısınız paketlər.

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

Sonra problemləri həll etmək üçün bu əmri istifadə edin.

sudo apt-fix-broken quraşdırma

5. MQTT serverini qurduqdan sonra əmrdən istifadə edərək müştəri quraşdırın

sudo apt-get ağcaqanad müştəriləri quraşdırın

Əmri istifadə edərək xidmətləri yoxlaya bilərsiniz.

systemctl status mosquitto.service

MQTT serverimiz və müştərimiz quraşdırıldığı üçün. İndi abunə olub dərc edərək yoxlaya bilərik. Abunə olmaq və yayımlamaq üçün əmrləri yoxlaya və ya aşağıda verildiyi kimi veb saytı ziyarət edə bilərsiniz.

Ağcaqanad Alt

Mosquitto Pub

Paho-mqtt kitabxanasını qurmaq üçün aşağıdakı əmrdən istifadə edin.

sudo pip paho-mqtt quraşdırın

Paho

Addım 3: Statik IP ünvanını necə qurmaq olar

Statik IP ünvanını necə qurmaq olar
Statik IP ünvanını necə qurmaq olar

Cd /etc qovluğuna gedin və hər hansı bir redaktordan istifadə edərək dhcpcd.conf faylını açın. Sonda bu dörd sətri yazın.

interfeysi eth0 statik ip_address = 192.168.1.100 // istifadə etmək istədiyiniz ip

wlan0 interfeysi

statik ip_address = 192.168.1.68

statik yönləndiricilər = 192.168.1.1 // Varsayılan ağ geçidiniz

statik domain_name_servers = 192.168.1.1

Bundan sonra onu saxla və pi -ni yenidən başladın.

Addım 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

NodeMCU üçün Arduino IDE -də tələb olunan kitabxanaları quraşdırın

1. Sketch ==> Kitabxanaya daxil olun ==> Kitabxanaları idarə edin.

2. Adafruit tərəfindən mqtt axtarın və kitabxana qurun və ya hər hansı bir kitabxana quraşdıra bilərsiniz.

3. Bu sleepydog kitabxanasından asılıdır, buna görə də bu kitabxanaya ehtiyacımız var.

Proqram yuxarıda verilmişdir, yalnız onun işləyib -işləmədiyini yoxlamaq üçün. Burada RPi -də heç bir skript yaratmamışam. Abunə olmaq və yayımlamaq üçün sadəcə əmrlərdən istifadə edirik. Daha sonra nəzarət etmək üçün bir skript yaradacağıq.

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 ==> ev sahibi adı-t ==> mövzu

-m ==> mesaj

Mqtt_check proqramını yoxladıqdan sonra NodeMCU -da proqramı tamamlayın

Addım 5: Python Script

Python Script
Python Script
Python Script
Python Script

Yuxarıda müzakirə etdiyim kimi düymələrdən istifadə edərək ledləri idarə etmək üçün python skriptinə ehtiyacımız var. Belə ki, skript yaradacağıq. Ssenari yuxarıda verilmişdir.

Skript işlədərkən skriptiniz şəkildə göstərildiyi kimi olmalıdır, əgər nəticə kodu sıfır deyilsə, bu bir səhvdir, paho veb saytındakı xətanı yoxlaya bilərsiniz.

Addım 6: Bağlantılar və dövrə diaqramı

Bağlantılar və dövrə diaqramı
Bağlantılar və dövrə diaqramı
Bağlantılar və dövrə diaqramı
Bağlantılar və dövrə diaqramı

NodeMCU ilə LED düyməsinin birləşməsi

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katod (-ve)

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

Düymənin interfeysi, RPi ilə LED

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katod (-ve)

GPIO 24 ===> Anod (+ve)

Addım 7: Nəticə

Image
Image
Nəticə
Nəticə

Skriptin işlədiyinə əmin olun, əks halda düymələri istifadə edərək led -i idarə edə bilməyəcək.

Tövsiyə: