Mündəricat:
- Addım 1: Avadanlıq və Proqram Təminatı
- Addım 2: Simsiz Təzyiq və Temperatur Sensorları
- Addım 3: WiFi -yə qoşulun
- Addım 4: ESP32 -də UbiDots qurmaq
- Addım 5: Sensor oxunuşlarını UbiDots -da yayımlayın
- Addım 6: Məlumatların görselleştirilmesi
- Addım 7: Ümumi Kod
Video: MQTT istifadə edərək Simsiz Təzyiq Sensoru Verilərinin Yayımlanması: 7 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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ı
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 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
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
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
- 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ə:
MSP432 LaunchPad və Python istifadə edərək İstilik Sensorunun (TMP006) Canlı Verilərinin Planlaşdırılması: 9 Addım
MSP432 LaunchPad və Python istifadə edərək İstilik Sensorunun (TMP006) Canlı Verilərinin Planlaşdırılması: TMP006, obyektlə təmas etmədən obyektin temperaturunu ölçən bir temperatur sensoru. Bu təlimatda, Python istifadə edərək BoosterPack-dən (TI BOOSTXL-EDUMKII) canlı temperatur məlumatlarını tərtib edəcəyik
IoT: Node-RED istifadə edərək İşıq Sensoru Verilərinin Vizualaşdırılması: 7 Addım
IoT: Node-RED istifadə edərək İşıq Sensoru Verilərinin Vizualaşdırılması: Bu təlimatda internetə bağlı bir sensorun necə yaradılacağını öyrənəcəksiniz! Bu nümayiş üçün ətraf işıq sensoru (TI OPT3001) istifadə edəcəm, ancaq seçdiyiniz hər hansı bir sensor (temperatur, rütubət, potensiometr və s.) İşləyəcək. Sensor dəyərləri
Təzyiq sensoru istifadə edərək suyun miqdarını ölçmək: 5 addım
Təzyiq Sensorundan İstifadə Edilən Su Kəmiyyətlərinin Ölçülməsi: Tankdakı suyun miqdarını ölçmək üçün bir təzyiq sensoru istifadə edilmişdir
Google Charts istifadə edərək Simsiz Sensor Verilərinin Vizualaşdırılması: 6 Addım
Google Qrafiklərindən istifadə edərək Simsiz Sensor Verilərinin Görüntülənməsi: Maşının dayanma müddətini minimuma endirmək üçün maşınların proqnozlaşdırılan təhlili çox vacibdir. Daimi yoxlama, maşının işləmə müddətini artırmağa kömək edir və öz növbəsində arızaya qarşı tolerantlığı artırır. Simsiz Vibrasiya və Temperatur
MQTT istifadə edərək Simsiz Temperatur Sensoru olan AWS IoT ilə İşə Başlama: 8 Addım
MQTT istifadə edən Simsiz Temperatur Sensoru olan AWS IoT -ə Başlarkən: Əvvəlki Təlimatlarda Azure, Ubidots, ThingSpeak, Losant və s. Kimi bulud platformalarından keçdik. bütün bulud platforması. Ətraflı məlumat üçün