Mündəricat:

Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə İşə Başlama: 7 addım
Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə İşə Başlama: 7 addım

Video: Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə İşə Başlama: 7 addım

Video: Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə İşə Başlama: 7 addım
Video: Zigbee датчик климата SZ-T04 - быстрый отклик и гибкая настройка за небольшую стоимость 2024, Noyabr
Anonim
Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə Başlayın
Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə Başlayın

Bəzən vibrasiya bir çox tətbiqdə ciddi problemlərin səbəbidir. Maşın şaftlarından və rulmanlardan tutmuş sabit disk performansına qədər, vibrasiya maşın zədələnməsinə, erkən dəyişdirilməyə, aşağı performansa səbəb olur və dəqiqliyə böyük zərbə vurur. Maşındakı vibrasiyanın monitorinqi və zaman -zaman təhlili, maşın hissəsinin erkən zədələnməsi və aşınması problemini həll edə bilər.

Bu təlimatda IoT uzun mənzilli simsiz vibrasiya və temperatur sensörləri üzərində işləyəcəyik. Bunlar kimi bir çox geniş tətbiq olunan sənaye dərəcəli sensorlardır.

  • Metal emalı
  • Enerji istehsalı
  • Mədənçilik
  • Qida və içki

Beləliklə, bu Təlimat kitabında aşağıdakılardan keçəcəyik:

  • XCTU və Labview UI istifadə edərək Simsiz Sensorların Konfiqurasiyası.
  • Sensordan vibrasiya dəyərlərinin alınması.
  • Xbee cihazının və xbee protokolunun işini başa düşmək.
  • Əsir portaldan istifadə edərək WiFi etimadnaməsini və IP konfiqurasiyasını konfiqurasiya etmək

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

Avadanlıq və Proqram Təminatı
Avadanlıq və Proqram Təminatı
Avadanlıq və Proqram Təminatı
Avadanlıq və Proqram Təminatı
Avadanlıq və Proqram Təminatı
Avadanlıq və Proqram Təminatı

Avadanlıq spesifikasiyası

  • Simsiz Vibrasiya və Temperatur Sensorları
  • Ziqmo qəbuledicisi
  • ESP32 BLE/ WiFi cihazı

Proqram Təminatı

  • Arduino IDE
  • LabView Utility

Addım 2: XCTU istifadə edərək Simsiz Sensor və Zigmo Alıcısının Konfiqurasiyası

XCTU istifadə edərək Simsiz Sensor və Zigmo Alıcısının Konfiqurasiyası
XCTU istifadə edərək Simsiz Sensor və Zigmo Alıcısının Konfiqurasiyası
XCTU istifadə edərək Simsiz Sensor və Zigmo Alıcısının Konfiqurasiyası
XCTU istifadə edərək Simsiz Sensor və Zigmo Alıcısının Konfiqurasiyası

Hər bir IoT cihazı, cihazı bulud üzərində yerləşdirmək və fərqli cihazlar arasında simsiz bir interfeys qurmaq üçün bir ünsiyyət protokoluna ehtiyac duyur.

Burada Simsiz Sensorlar və Zigmo Alıcısı aşağı güc və uzun mənzilli XBee həllindən istifadə edir. XBee, 902 ilə 928 MHz ISM diapazonlarında əməliyyatı təyin edən bir ZigBee protokolundan istifadə edir.

Xbee, XCTU proqramı ilə konfiqurasiya edilə bilər

  1. Xbee cihazını axtarın və ya sol üstdəki simvolu tıklayaraq yeni bir Xbee cihazı əlavə edin.
  2. Cihaz sol paneldə göstəriləcək.
  3. parametrləri görmək üçün cihazı iki dəfə vurun.
  4. İndi sağ üst küncdəki konsol simgesini vurun
  5. Konsol çıxışında gələn dəyəri görə bilərsiniz
  6. Burada 54 bayt uzunluğunda bir çərçivə əldə edirik
  7. həqiqi dəyərləri əldə etmək üçün bu baytlar daha da manipulyasiya ediləcək. real temperatur və titrəmə dəyərlərini əldə etmək proseduru qarşıdakı addımlarda qeyd ediləcəkdir.

Addım 3: Kabelsiz Temperatur və Vibrasiya Dəyərlərinin Analizi Labview Utility -dən istifadə edir

Labview Utility istifadə edərək Simsiz Temperatur və Vibrasiya Dəyərlərinin Təhlili
Labview Utility istifadə edərək Simsiz Temperatur və Vibrasiya Dəyərlərinin Təhlili
Labview Utility istifadə edərək Simsiz Temperatur və Vibrasiya Dəyərlərinin Təhlili
Labview Utility istifadə edərək Simsiz Temperatur və Vibrasiya Dəyərlərinin Təhlili

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 4: Əsir Portaldan istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası

Captive Portal istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası
Captive Portal istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası
Captive Portal istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası
Captive Portal istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası
Captive Portal istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası
Captive Portal istifadə edərək DHCP/Statik IP Ayarlarının Konfiqurasiyası

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 olunacaq.

Addım 5: Əsir Portaldan istifadə edərək WiFi Ayarlarını Saxlayın

Əsir Portaldan istifadə edərək WiFi Ayarlarının Saxlanması
Əsir Portaldan istifadə edərək WiFi Ayarlarının Saxlanması

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 6: Sensor oxunuşlarını UbiDots -da yayımlayın

Burada temperatur və rütubət məlumatlarını əldə etmək üçün ESP 32 şlüz qəbuledicisi olan Simsiz Temperatur və Vibrasiya 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.

Simsiz Sensor Verilərinin Oxunması

Simsiz İstilik və Titrəmə Sensorlarından 29 baytlıq bir çərçivə alırıq. Bu çərçivə faktiki temperatur və Vibrasiya məlumatlarını əldə etmək üçün manipulyasiya olunur

if (Serial2.available ()) {data [0] = Serial2.read (); gecikmə (k); if (data [0] == 0x7E) {Serial.println ("Paket əldə etdim"); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); gecikmə (1); } if (data [15] == 0x7F) /////// recive məlumatların doğru olub olmadığını yoxlamaq üçün {if (data [22] == 0x08) //////// sensorun növündən əmin olun doğrudur {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [26]))/100); rms_y = ((uint16_t) ((((məlumatlar [27]) << 16) + ((məlumatlar [28]) << 8) + (məlumatlar [29]))/100); rms_z = ((uint16_t) (((məlumatlar [30]) << 16) + ((məlumatlar [31]) << 8) + (məlumatlar [32]))/100); max_x = ((uint16_t) ((((məlumatlar [33]) << 16) + ((məlumatlar [34]) << 8) + (məlumatlar [35]))/100); max_y = ((uint16_t) ((((məlumatlar [36]) << 16) + ((məlumatlar [37]) << 8) + (məlumatlar [38]))/100); max_z = ((uint16_t) ((((məlumatlar [39]) << 16) + ((məlumatlar [40]) << 8) + (məlumatlar [41]))/100);

min_x = ((uint16_t) (((məlumatlar [42]) << 16) + ((məlumatlar [43]) << 8) + (məlumatlar [44]))/100); min_y = ((uint16_t) ((((məlumatlar [45]) << 16) + ((məlumatlar [46]) << 8) + (məlumatlar [47]))/100); min_z = ((uint16_t) (((məlumatlar [48]) << 16) + ((məlumatlar [49]) << 8) + (məlumatlar [50]))/100);

cTemp = (((((məlumat [51]) * 256) + məlumat [52])); üzən batareya = ((məlumat [18] * 256) + məlumat [19]); üzmə 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 ("X oxunda RMS vibrasiyası:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("Y oxunda RMS vibrasiyası:"); Serial. çap (rms_y); Serial.println ("mg"); Serial.print ("Z oxunda RMS vibrasiyası:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("X oxunda minimum titrəmə:");

Serial. çap (min_x); Serial.println ("mg"); Serial.print ("Y oxunda minimum titrəmə:"); Serial. çap (min_y); Serial.println ("mg"); Serial.print ("Z oxunda minimum titrəmə:"); Serial. çap (min_z); Serial.println ("mg");

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 <54; i ++) {Serial.print (data ); Serial.print (","); gecikmə (1); }}}}

UbiDots MQTT API -yə qoşulur

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

#"PubSubClient.h" daxil edin

müştəri adı, broker ünvanı, token ID kimi MQTT üçün digər dəyişənləri təyin edin (EEPROM -dan token ID alırıq)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; yük yükü [100]; char mövzusu [150]; // Token ID String tokenId saxlamaq üçün dəyişən yaradı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 etiketin təyin edilməsi #VARIABLE_LABEL_TEMPC "tempC" təyin edin // Dəyişən etiketin təyin edilməsi #define VARIABLE_LABEL_BAT "bat" #VARIABLE_LABEL_HUMID "nəmli etiketin təyin edilməsi //"

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 7: 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.

Ümumi Kod

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

  1. ncd ESP32 qırılma lövhəsi.
  2. ncd Simsiz temperatur və Nəmlik Sensorları.
  3. pubsubclient
  4. UbiDots

Tövsiyə: