Mündəricat:
- Addım 1: MQTT nədir və necə işləyir
- Addım 2: Raspberry Pi
- Addım 3: Statik IP ünvanını necə qurmaq olar
- Addım 4: NodeMCU
- Addım 5: Python Script
- Addım 6: Bağlantılar və dövrə diaqramı
- Addım 7: Nəticə
Video: Raspberry Pi MQTT istifadə edərək ESP8266 ilə danışır: 8 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
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
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
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 üçü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
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ı
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ə
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ə:
Uno ilə ESP8266 WeMos D1 R1 Wifi Prosessoru istifadə edərək ESP32-Cam ilə Şəkillər çəkin və göndərin: 7 addım
Uno ilə ESP8266 WeMos D1 R1 Wifi Prosessorundan istifadə edərək ESP32-Kamera ilə Şəkillər çəkin və göndərin: Uno ilə ESP8266 WeMos D1 R1 WiFI Prosessoru istifadə edərək ESP32-Cam (OV2640) istifadə edərək şəkil çəkin və e-poçtla göndərin, Google Diskə qeyd edin və göndərin Twilio istifadə edən Whatsapp.Tələblər: Uno ilə ESP8266 WeMos D1 R1 WiFI Prosessoru (https: // protosupplies
İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: 6 Addım
İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: Salam uşaqlar, bu təlimatlarda internetdən vaxt alacaq bir internet saatı quracağıq, bu layihənin işləməsi üçün heç bir RTC lazım olmayacaq, yalnız işləyən internet bağlantısı Və bu layihə üçün bir esp8266 ehtiyacınız olacaq
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə - 433mhz ilə HT12E və HT12D istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: 5 addım
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə | HT12E və HT12D -dən 433mhz istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: Bu təlimatda sizə HT12E kodlu 433mhz ötürücü qəbuledici modulu istifadə edərək RADIO uzaqdan idarə etməyi göstərəcəyəm. HT12D kod deşifratoru IC. Bu təlimatda çox ucuz komponentləri istifadə edərək məlumat göndərə və ala bilərsiniz: HT