Mundarija:

Uzoq masofali simsiz harorat va tebranish sensorlari bilan ishlashni boshlash: 7 qadam
Uzoq masofali simsiz harorat va tebranish sensorlari bilan ishlashni boshlash: 7 qadam

Video: Uzoq masofali simsiz harorat va tebranish sensorlari bilan ishlashni boshlash: 7 qadam

Video: Uzoq masofali simsiz harorat va tebranish sensorlari bilan ishlashni boshlash: 7 qadam
Video: Go`za ekinlarini zararli ogranizimlarini hisobga olish va rivojlanishini bashorat qilish 2024, Noyabr
Anonim
Uzoq masofali simsiz harorat va tebranish sensorlari bilan ishlashni boshlash
Uzoq masofali simsiz harorat va tebranish sensorlari bilan ishlashni boshlash

Ba'zida tebranish ko'plab ilovalarda jiddiy muammolarga sabab bo'ladi. Mashina shaftlari va podshipniklaridan tortib qattiq disk ishlashigacha tebranish mashinaning shikastlanishiga, erta almashtirishga, past ishlashga olib keladi va aniqlikka katta zarba beradi. Mashinada tebranishning monitoringi va vaqti -vaqti bilan tahlil qilinishi, mashina qismining erta shikastlanishi va eskirishi muammosini hal qilishi mumkin.

Bu yo'riqnomada biz uzoq masofali IoT simsiz tebranish va harorat sensori ustida ishlaymiz. Bu sanoat darajasidagi datchiklar, masalan, ko'plab keng qo'llaniladigan dasturlar.

  • Metallga ishlov berish
  • Quvvat ishlab chiqarish
  • Konchilik
  • Oziq -ovqat va ichimliklar

Shunday qilib, ushbu qo'llanmada biz quyidagilarni boshdan kechiramiz:

  • XCTU va Labview UI yordamida simsiz sensorlarni sozlash.
  • Sensordan tebranish qiymatlarini olish.
  • Xbee qurilmasi va xbee protokoli ishini tushunish.
  • Portativ port yordamida WiFi hisob ma'lumotlari va IP konfiguratsiyasini sozlash

1 -qadam: Uskuna va dasturiy ta'minot spetsifikatsiyasi

Uskuna va dasturiy ta'minot spetsifikatsiyasi
Uskuna va dasturiy ta'minot spetsifikatsiyasi
Uskuna va dasturiy ta'minot spetsifikatsiyasi
Uskuna va dasturiy ta'minot spetsifikatsiyasi
Uskuna va dasturiy ta'minot spetsifikatsiyasi
Uskuna va dasturiy ta'minot spetsifikatsiyasi

Uskuna texnik xususiyatlari

  • Simsiz tebranish va harorat sensori
  • Zigmo qabul qilgich
  • ESP32 BLE/ WiFi qurilmasi

Dastur xususiyatlari

  • Arduino IDE
  • LabView yordam dasturi

2 -qadam: XCTU yordamida simsiz sensor va zigmo qabul qilgichni sozlash

XCTU yordamida simsiz sensor va zigmo qabul qilgichni sozlash
XCTU yordamida simsiz sensor va zigmo qabul qilgichni sozlash
XCTU yordamida simsiz sensor va zigmo qabul qilgichni sozlash
XCTU yordamida simsiz sensor va zigmo qabul qilgichni sozlash

Har bir IoT qurilmasi qurilmani bulutga qo'yish va turli qurilmalar o'rtasida simsiz interfeysni o'rnatish uchun aloqa protokoliga muhtoj.

Bu erda simsiz sensorlar va Zigmo qabul qilgich kam quvvatli va uzoq masofali XBee echimidan foydalanadi. XBee 902 dan 928 MGts gacha bo'lgan ISM diapazonlarida ishlashni belgilaydigan ZigBee protokolidan foydalanadi.

Xbee -ni XCTU dasturi yordamida sozlash mumkin

  1. Xbee qurilmasini qidiring yoki yuqori chapdagi belgini bosish orqali yangi Xbee qurilmasini qo'shing.
  2. Qurilma chap panelda ko'rsatiladi.
  3. sozlamalarni ko'rish uchun qurilmani ikki marta bosing.
  4. Endi yuqori o'ng burchakdagi konsol belgisini bosing
  5. Siz konsolda chiqadigan qiymatni ko'rishingiz mumkin
  6. Bu erda biz 54 bayt uzunlikdagi ramka olamiz
  7. haqiqiy baytlarni olish uchun bu baytlar yanada manipulyatsiya qilinadi. haqiqiy harorat va tebranish qiymatlarini olish tartibi kelgusi bosqichlarda aytib o'tiladi.

3 -qadam: Labview yordam dasturi yordamida simsiz harorat va tebranish qiymatlarini tahlil qilish

Labview Utility yordamida simsiz harorat va tebranish qiymatlarini tahlil qilish
Labview Utility yordamida simsiz harorat va tebranish qiymatlarini tahlil qilish
Labview Utility yordamida simsiz harorat va tebranish qiymatlarini tahlil qilish
Labview Utility yordamida simsiz harorat va tebranish qiymatlarini tahlil qilish

Sensor ikki rejimda ishlaydi

  • Konfiguratsiya rejimi: Pan identifikatorini, kechiktirishni, qayta urinishlar sonini va boshqalarni sozlang. Bu haqda ko'proq ma'lumot berish mumkin emas va keyingi ko'rsatmada tushuntiriladi.
  • Ishlash rejimi: Biz qurilmani Ishlash rejimida ishga tushiramiz. Va bu qiymatni tahlil qilish uchun biz Labview Utility dasturidan foydalanamiz

Bu Labview foydalanuvchi interfeysi qiymatlarni chiroyli grafiklarda ko'rsatadi. U hozirgi va o'tgan qiymatlarni ko'rsatadi. Labview UI -ni yuklab olish uchun ushbu havolaga o'tishingiz mumkin.

ishga tushirish rejimiga o'tish uchun ochilish sahifasi menyusidagi Ishga tushirish belgisini bosing.

4 -qadam: DHCP/statik IP sozlamalarini tutqun portal yordamida sozlash

Captive Portal yordamida DHCP/Statik IP sozlamalarini sozlash
Captive Portal yordamida DHCP/Statik IP sozlamalarini sozlash
Captive Portal yordamida DHCP/Statik IP sozlamalarini sozlash
Captive Portal yordamida DHCP/Statik IP sozlamalarini sozlash
Captive Portal yordamida DHCP/Statik IP sozlamalarini sozlash
Captive Portal yordamida DHCP/Statik IP sozlamalarini sozlash

Biz Wi -Fi ma'lumotlarini saqlash va IP sozlamalari bo'ylab harakatlanish uchun asir portalidan foydalanmoqdamiz. Asir portalda batafsil tanishish uchun siz quyidagi ko'rsatmalarni o'tishingiz mumkin.

Asir portal bizga Statik va DHCP sozlamalarini tanlash imkoniyatini beradi. Statik IP, pastki tarmoq niqobi, shlyuz va simsiz sensorlar shluzi kabi hisob ma'lumotlarini kiriting, u IP -da sozlanadi.

5 -qadam: Captive portal yordamida WiFi sozlamalarini saqlash

Tarmoq portali yordamida Wi -Fi sozlamalarini saqlash
Tarmoq portali yordamida Wi -Fi sozlamalarini saqlash

Veb -sahifa mavjud, u erda mavjud WiFi tarmoqlari va RSSI ko'rsatiladigan ro'yxat mavjud. Wi -Fi tarmog'ini va parolni tanlang va yuborishni kiriting. Hisob ma'lumotlari EEPROMda saqlanadi va IP sozlamalari SPIFFSda saqlanadi. Bu haqida ko'proq ma'lumotni ushbu ko'rsatmalarni topishingiz mumkin.

6 -qadam: Sensor o'qilishini UbiDots -da nashr etish

Bu erda biz harorat va namlik ma'lumotlarini olish uchun ESP 32 shluzi qabul qilgichli simsiz harorat va tebranish sensorlaridan foydalanamiz. Biz MQTT protokoli yordamida ma'lumotlarni UbiDots -ga yuboramiz. MQTT nashr qilish va obuna bo'lish mexanizmidan ko'ra, so'rov va javobni bajaradi. Bu HTTP -ga qaraganda tezroq va ishonchli. Bu quyidagicha ishlaydi.

Simsiz sensor ma'lumotlarini o'qish

Biz simsiz harorat va tebranish sensorlaridan 29 baytli ramka olamiz. Bu ramka haqiqiy harorat va tebranish ma'lumotlarini olish uchun boshqariladi

if (Serial2.available ()) {data [0] = Serial2.read (); kechikish (k); if (ma'lumotlar [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); uchun (i = 1; i <55; i ++) {ma'lumotlar = Serial2.read (); kechikish (1); } if (ma'lumotlar [15] == 0x7F) /////// qaytariladigan ma'lumotlarning to'g'riligini tekshirish uchun {if (ma'lumotlar [22] == 0x08) //////// sensor turiga ishonch hosil qiling. to'g'ri {rms_x = ((uint16_t) (((ma'lumotlar [24]) << 16) + ((ma'lumotlar [25]) << 8) + (ma'lumotlar [26]))/100); rms_y = ((uint16_t) (((ma'lumotlar [27]) << 16) + ((ma'lumotlar [28]) << 8) + (ma'lumotlar [29]))/100); rms_z = ((uint16_t) (((ma'lumotlar [30]) << 16) + ((ma'lumotlar [31]) << 8) + (ma'lumotlar [32]))/100); max_x = ((uint16_t) (((ma'lumotlar [33]) << 16) + ((ma'lumotlar [34]) << 8) + (ma'lumotlar [35]))/100); max_y = ((uint16_t) (((ma'lumotlar [36]) << 16) + ((ma'lumotlar [37]) << 8) + (ma'lumotlar [38]))/100); max_z = ((uint16_t) (((ma'lumotlar [39]) << 16) + ((ma'lumotlar [40]) << 8) + (ma'lumotlar [41]))/100);

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

cTemp = (((((ma'lumotlar [51]) * 256) + ma'lumotlar [52])); float batareya = ((ma'lumotlar [18] * 256) + ma'lumotlar [19]); suzuvchi kuchlanish = 0,00322 * batareya; Serial.print ("Sensor raqami"); Serial.println (ma'lumotlar [16]); Serial.print ("Sensor turi"); Serial.println (ma'lumotlar [22]); Serial.print ("Dasturiy ta'minot versiyasi"); Serial.println (ma'lumotlar [17]); Serial.print ("Selsiy bo'yicha harorat:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("X o'qida RMS tebranishi:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("Y o'qida RMS tebranishi:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("Z o'qida RMS tebranishi:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("X o'qida minimal tebranish:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Y o'qida minimal tebranish:"); Ketma -ket chop etish (min_y); Serial.println ("mg"); Serial.print ("Z o'qida minimal tebranish:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("ADC qiymati:");

Serial.println (batareya); Serial.print ("Batareya quvvati:"); Ketma -ket chop etish (kuchlanish); Serial.println ("\ n"); if (kuchlanish <1) {Serial.println ("Batareyani almashtirish vaqti"); }}} boshqa {uchun (i = 0; i <54; i ++) {Serial.print (ma'lumotlar ); Serial.print (","); kechikish (1); }}}}

UbiDots MQTT API -ga ulanish

MQTT jarayoni uchun sarlavha faylini qo'shing

#"PubSubClient.h" ni qo'shing

MQTT uchun mijoz nomi, broker manzili, token identifikatori kabi boshqa o'zgaruvchilarni belgilang (biz token identifikatorini EEPROMdan olamiz)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; yuk yuki [100]; char mavzusi [150]; // token identifikatorini saqlash uchun o'zgaruvchini yaratish String tokenId;

Har xil sensor ma'lumotlarini saqlash uchun o'zgaruvchilar yarating va mavzuni saqlash uchun char o'zgaruvchisini yarating

#define VARIABLE_LABEL_TEMPF "tempF" // O'zgaruvchilar yorlig'ini belgilash #VARIABLE_LABEL_TEMPC "tempC" ni belgilash // O'zgaruvchilar yorlig'ini belgilash #define VARIABLE_LABEL_BAT "bat" #VARIABLE_LABEL_HUMID "nam nam" ni belgilash //

char mavzu1 [100];

char mavzu2 [100]; char mavzu3 [100];

ma'lumotlarni MQTT mavzusida e'lon qiling, yuk "{tempc": {value: "tempData"}} kabi ko'rinadi

sprintf (mavzu1, "%s", ""); sprintf (mavzu1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (yuk, "%s", "");

// Sprintf yukini tozalaydi (yuk, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// sprintf qiymatini qo'shadi (yuk, "%s {" qiymati / ":%s}", yuk, str_cTemp);

// sprintf qiymatini qo'shadi (yuk, "%s}", yuk);

// Serial.println (foydali yuk) lug'at qavslarini yopadi;

Serial.println (client.publish (mavzu1, yuk)? "Chop etilgan": "nashr etilmagan");

// Boshqa mavzu uchun ham shunday qiling

client.publish () ma'lumotlarni UbiDots -da e'lon qiladi

7 -qadam: ma'lumotlarni vizualizatsiya qilish

Ma'lumotlarni vizualizatsiya qilish
Ma'lumotlarni vizualizatsiya qilish
  • Ubidots -ga o'ting va hisobingizga kiring.
  • Yuqorida ko'rsatilgan Ma'lumotlar yorlig'idan Boshqaruv paneliga o'ting.
  • Endi yangi vidjetlarni qo'shish uchun "+" belgisini bosing.
  • Ro'yxatdan vidjetni tanlang va o'zgaruvchi va qurilmalarni qo'shing.
  • Sensor ma'lumotlarini asboblar panelida turli vidjetlar yordamida ko'rish mumkin.

Umumiy kod

HTML va ESP32 uchun Over kodini ushbu GitHub omboridan topish mumkin.

  1. ncd ESP32 uzilish taxtasi.
  2. ncd Simsiz harorat va namlik sensori.
  3. publisubent
  4. UbiDots

Tavsiya: