Mündəricat:

MQTT istifadə edərək Simsiz Təzyiq Sensoru Verilərinin Yayımlanması: 7 Addım
MQTT istifadə edərək Simsiz Təzyiq Sensoru Verilərinin Yayımlanması: 7 Addım

Video: MQTT istifadə edərək Simsiz Təzyiq Sensoru Verilərinin Yayımlanması: 7 Addım

Video: MQTT istifadə edərək Simsiz Təzyiq Sensoru Verilərinin Yayımlanması: 7 Addım
Video: İşıq sensoru ilə mikrodalğalı varlıq sensoru - ümumi baxış, Tuya Smart və Home Assistant-da işləmə 2024, Dekabr
Anonim
MQTT istifadə edərək Simsiz Təzyiq Sensoru Məlumatlarının Nəşr Edilməsi
MQTT istifadə edərək Simsiz Təzyiq Sensoru Məlumatlarının Nəşr Edilməsi

ESP32 vəESP 8266, IoT sahəsində çox tanış bir SoC -dir. Bunlar IoT layihələri üçün bir növ xeyirdir. ESP 32, inteqrasiya edilmiş WiFi və BLE ilə bir cihazdır. Sadəcə SSID, parol və IP konfiqurasiyalarınızı verin və şeyləri buluda inteqrasiya edin. Bu təlimatda IoT platforması, MQTT, Captive portalları və s. Kimi IoT -nin bəzi əsas şərtləri üzərində düşünəcəyik

  • IoT Arxitekturası, çox sadə sözlərlə, cihazı buludda yerləşdirmək üçün quraşdırılmış bir cihazdan və IoT platformasından ibarətdir. Burada sensor məlumatlarını görüntüləmək üçün UbiDots IoT platformasından istifadə edirik.
  • IP parametrlərini və istifadəçi məlumatlarını idarə etmək istifadəçi üçün baş ağrısı ola bilər. İstifadəçi WiFi etimadnaməsini dəyişdirmək istəsə nə olar? İstifadəçi DHCP/Statik IP parametrlərini dəyişdirmək istəsə nə olar? ESP32 -nin hər dəfə yanması etibarlı deyil və hətta bu problemlərin həlli deyil. WiFi məlumatlarını və digər konfiqurasiyaları saxlamaq üçün əsir portaldan keçəcəyik.
  • MQTT indi IoT dünyasında çox yayılmış bir termin halına gəlir. Sürətli, möhkəm və arıq arxitekturaya görə Nəşr et və Abunə olun tərəfindən verilən tələb və cavabları (HTTP) aşdı.

Burada bu təlimatlı olaraq, nümayiş etdirəcəyik.

  • Captive Portal istifadə edərək WiFi və MQTT etimadnamələrinin verilməsi.
  • UbiDots -a birdən çox Sensor məlumatının nəşr edilməsi və abunə olması.
  • Simsiz Təzyiq və Temperatur Sensorundan Sensor məlumatlarının oxunması
  • ESP32 -dən bir veb forması yerləşdirmək.
  • SPIFFS ESP32 -dən oxumaq və yazmaq.

Addım 1: Avadanlıq və Proqram Təminatı

Avadanlıq spesifikasiyası

  • ESP32 WiFi/BLE
  • Simsiz Təzyiq və Temperatur Sensoru

Proqram Təminatı

  • Arduino IDE
  • XCTU
  • Labview Utility

Addım 2: Simsiz Təzyiq və Temperatur Sensorları

Simsiz Təzyiq və Temperatur Sensorları
Simsiz Təzyiq və Temperatur Sensorları
Simsiz Təzyiq və Temperatur Sensorları
Simsiz Təzyiq və Temperatur Sensorları
Simsiz Təzyiq və Temperatur Sensorları
Simsiz Təzyiq və Temperatur Sensorları

Xüsusiyyətləri

  • Sənaye dərəcəli sensor uzun mənzilli simsiz təzyiq temperatur sensoru
  • İşləmə Aralığı 0 -14000 mbar -40 ° - +85 ° C (-40 ° -185 ° F)
  • Yapılandırılabilir Daxili Hesablama Təzyiq Çözünürlüğü 0.012 ilə 0.065 mbar
  • Konfiqurasiya edilə bilən Daxili Hesablama İstiliyi 0.002 ilə 0.012 ° C arasında
  • Dəqiqlik ± 2,5 mbar, ± 2 ° C
  • Mütləq təzyiq, nisbi təzyiq və nisbi yüksəklik dəyişikliyi çıxışları
  • Bortda Anten ilə 2 Mile Görmə Aralığı
  • Yüksək Qazanclı Antenlərlə 28 Milə qədər Üstün LOS Aralığı
  • Raspberry Pi, Microsoft® Azure®, Arduino və daha çoxuna interfeys
  • DigiMesh® istifadə edərək Simsiz Mesh Şəbəkəsi

Labview Utility və XCTU istifadə edərək Simsiz Təzyiq və Temperatur Sensorunun Konfiqurasiyası

Sensor iki rejimdə işləyir

  • Konfiqurasiya Modu: Pan ID, gecikmə, təkrar cəhdlərin sayını və s. Konfiqurasiya edin. Bu barədə daha çox bu təlimat verilə bilən sahənin xaricindədir və növbəti təlimatda izah ediləcəkdir.
  • Çalışma rejimi: Cihazı Çalışma rejimində işləyirik. Və bu dəyəri təhlil etmək üçün Labview Utility -dən istifadə edirik

Bu Labview UI dəyərləri gözəl qrafiklərdə göstərir. Keçmiş dəyərləri olduğu kimi, cari vəziyyəti də göstərir. Labview UI yükləmək üçün bu linkə daxil ola bilərsiniz. Çalışma rejiminə keçmək üçün açılış səhifəsi menyusundan Çalış simgesini vurun.

Addım 3: WiFi -yə qoşulun

WiFi -yə qoşulur
WiFi -yə qoşulur
WiFi -yə qoşulur
WiFi -yə qoşulur

WiFi məlumatlarını saxlamaq və IP parametrlərində gəzmək üçün əsir portaldan istifadə edirik. Əsir portal haqqında ətraflı məlumat üçün aşağıdakı təlimatlardan keçə bilərsiniz.

Əsir portal bizə Statik və DHCP parametrləri arasında seçim etmək imkanı verir. Sadəcə Statik IP, Alt Ağ Maskası, ağ geçidi və Simsiz Sensor Ağ Geçidi kimi etimadnamələrini daxil edin ki, həmin IP -də konfiqurasiya olunsun.

Mövcud WiFi şəbəkələrini və RSSI -ni göstərən bir siyahının olduğu bir veb səhifəsi yerləşdirilir. WiFi şəbəkəsini və şifrəni seçin və göndərin daxil edin. Etimadnamələr EEPROM -da, IP qəbulu isə SPIFFS -də saxlanılacaq. Bu barədə daha çox məlumatı bu təlimatda tapa bilərsiniz.

Addım 4: ESP32 -də UbiDots qurmaq

ESP32 -də UbiDots qurmaq
ESP32 -də UbiDots qurmaq

Burada temperatur və Nəmlik məlumatlarını əldə etmək üçün ESP 32 cihazı ilə Simsiz Təzyiq və Temperatur Sensorlarından istifadə edirik. MQTT protokolundan istifadə edərək məlumatları UbiDots -a göndəririk. MQTT, tələb və cavabı deyil, yayım və abunə mexanizmini izləyir. HTTP -dən daha sürətli və etibarlıdır. Bu aşağıdakı kimi işləyir.

  • Sensorlardan məlumat əldə etmək, sensor oxunuşlarını dərc etmək, MQTT mövzusuna abunə olmaq kimi vəzifələri planlaşdırmaq üçün Task Scheduler -dən istifadə edirik.
  • Birincisi, Task Scheduler başlıq fayllarını daxil edin, bu nümunədir və vəzifələri planlaşdırır.
  • İki fərqli nəzarət əməliyyatına əsaslanan iki vəzifə təyin etdik.

#define _TASK_TIMEOUT#Scheduler ts daxildir; // --------- Tapşırıqlar ------------ // Tapşırıq tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Tapşırıq tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);

  • Tapşırıq 1, sensorun dəyərini oxumaq üçündür, bu tapşırıq 10 saniyəyə çatana qədər 1 saniyə ərzində işləyir.
  • Task1 vaxtı bitəndə yerli Wifi və MQTT brokerinə qoşuluruq.
  • İndi Task 2 aktivdir və Task 1'i deaktiv edirik
  • Tapşırıq 2, sensor məlumatlarını UbiDots MQTT brokerinə yayımlamaq üçündür, bu vəzifə 20 saniyəlik fasiləyə çatana qədər 20 saniyə ərzində işləyir.
  • Task2 vaxtına çatanda Task 1 yenidən aktiv edilir və Task2 deaktiv edilir. Burada yenə də yenilənmiş dəyəri əldə edirik və proses davam edir.

I2C Sensor Verilərinin oxunması

Simsiz Temperatur və Nəmlik Sensorlarından 29 baytlıq bir çərçivə alırıq. Bu çərçivə, faktiki temperatur və Nəmlik məlumatlarını əldə etmək üçün manipulyasiya olunur

əgər (Serial1.available ())

{data [0] = Serial1.read (); gecikmə (k); if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Serial1.read (); gecikmə (1); } if (data [15] == 0x7F) /////// recive məlumatların doğru olub olmadığını yoxlamaq üçün {if (data [22] == 0x06) //////// sensorun növündən əmin olun doğrudur {int cTemp = (((((data [24]) * 256) + data [25])); int16_t abs_pressure = (((((uint16_t) (data [26]) << 8) | data [27])*0.001); int rlt_pressure = (((((data [28]) * 256) + data [29]) * 0.001); int16_t delta_alt = (((((uint16_t) (məlumatlar [30]) << 8) | məlumatlar [31])*0.01); üzən batareya = ((məlumat [18] * 256) + məlumat [19]); float gərginliyi = 0.00322 * batareya; Serial.print ("Sensor nömrəsi"); Serial.println (məlumatlar [16]); Serial.print ("Sensor Tipi"); Serial.println (məlumatlar [22]); Serial.print ("Firmware Versiyası"); Serial.println (məlumatlar [17]); Serial.print ("Selsi temperaturu:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Mütləq təzyiq:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("Nisbi Təzyiq:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Hündürlüyü:"); Serial.println (delta_alt); Serial.print ("metr"); Serial.print ("ADC dəyəri:"); Serial.println (batareya); Serial.print ("Batareya Gərginliyi:"); Serial. çap (gərginlik); Serial.println ("\ n"); if (gərginlik <1) {Serial.println ("Batareyanı dəyişdirmə vaxtı"); }}} başqa {üçün (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); gecikmə (1); }}}}

UbiDots MQTT API -yə qoşulur

MQTT prosesi üçün başlıq faylını daxil edin

#daxil edin

müştəri adı, broker ünvanı, token ID kimi MQTT üçün digər dəyişənləri təyin edin

#define TOKEN "BBFF-***********************************" // Sizin Ubidots TOKEN#müəyyən edin MQTT_CLIENT_NAME "****************************"

char mqttBroker = "things.ubidots.com";

yük yükü [100]; char mövzusu [150]; // token ID tokenini saxlamaq üçün dəyişən yaradın

Addım 5: Sensor oxunuşlarını UbiDots -da yayımlayın

Sensor oxunuşlarını UbiDots -da yayımlayın
Sensor oxunuşlarını UbiDots -da yayımlayın

Fərqli sensor məlumatlarını saxlamaq üçün dəyişənlər yaradın və mövzunu saxlamaq üçün char dəyişənini yaradın

#define VARIABLE_LABEL_TEMPF "tempF" // Dəyişən etiketi təyin etmək #VARIABLE_LABEL_TEMPC "tempC" təyin edin // Dəyişən etiketi təyin etmək #define VARIABLE_LABEL_BAT "bat" #VARIABLE_LABEL_HUMID "nəmli" təyin etmək //

char mövzu1 [100];

char mövzu2 [100]; char mövzu3 [100];

məlumatları qeyd olunan MQTT mövzusunda yayımlayın, yük {{tempc ": {value:" tempData "}} kimi görünəcək

sprintf (mövzu1, "%s", ""); sprintf (mövzu1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (faydalı yük, "%s", ""); // faydalı yük sprintf (faydalı yük, "{"%s / ":", VARIABLE_LABEL_TEMPC); // sprintf dəyərini əlavə edir (yük, "%s {" dəyər / ":%s}", yük, str_cTemp); // sprintf dəyərini əlavə edir (yük, "%s}", yük); // Serial.println (faydalı yük) lüğət mötərizələrini bağlayır; Serial.println (client.publish (mövzu1, yük)? "Nəşr": "nəşr olunmayıb"); // Başqa mövzu üçün də eyni şeyi edin

client.publish () məlumatları UbiDots -da dərc edir

Addım 6: Məlumatların görselleştirilmesi

Məlumatların vizuallaşdırılması
Məlumatların vizuallaşdırılması
  • Ubidots -a gedin və hesabınıza daxil olun.
  • Yuxarıda göstərilən Məlumatlar sekmesinden Tablosuna gedin.
  • İndi yeni vidjetlər əlavə etmək üçün "+" işarəsini vurun.
  • Siyahıdan bir widget seçin və dəyişən və cihazlar əlavə edin.
  • Sensor məlumatları müxtəlif vidjetlərdən istifadə edərək tablosunda görüntülənə bilər.

Addım 7: Ümumi Kod

HTML və ESP32 üçün Aşırı kodu bu GitHub deposunda tapa bilərsiniz.

Kreditlər

  • ncd ESP32 qırılma lövhəsi.
  • ncd Simsiz Təzyiq və Temperatur Sensorları
  • pubsubclient
  • UbiDots
  • Vəzifə Planlayıcısı

Tövsiyə: