فهرست مطالب:

شروع به کار با سنسورهای دما و ارتعاش بی سیم طولانی برد: 7 مرحله
شروع به کار با سنسورهای دما و ارتعاش بی سیم طولانی برد: 7 مرحله

تصویری: شروع به کار با سنسورهای دما و ارتعاش بی سیم طولانی برد: 7 مرحله

تصویری: شروع به کار با سنسورهای دما و ارتعاش بی سیم طولانی برد: 7 مرحله
تصویری: اگر یکی از این ۷ نشانه را در وجود تان مشاهده کردید پس شما یک نابغه هستید. 2024, جولای
Anonim
شروع به کار با سنسورهای دما و ارتعاش بی سیم بلند برد
شروع به کار با سنسورهای دما و ارتعاش بی سیم بلند برد

گاهی اوقات ارتعاش عامل مشکلات جدی در بسیاری از برنامه ها است. ارتعاش از شافت ها و یاتاقان های ماشین گرفته تا عملکرد هارد دیسک باعث آسیب دستگاه ، تعویض زودهنگام ، عملکرد پایین و ضربه بزرگی به دقت می شود. نظارت و تجزیه و تحلیل مرتباً ارتعاشات در دستگاه می تواند مشکل صدمات اولیه و ساییدگی قطعات دستگاه را برطرف کند.

در این قسمت آموزشی ، ما روی سنسورهای ارتعاش و دما بی سیم دوربرد IoT کار خواهیم کرد. اینها سنسورهای درجه صنعتی هستند و کاربردهای گسترده ای مانند آنها دارند.

  • فلزکاری
  • تولید برق
  • معدن
  • غذا و نوشیدنی

بنابراین ، در این دستورالعمل موارد زیر را طی می کنیم:

  • پیکربندی سنسورهای بی سیم با استفاده از XCTU و Labview UI.
  • دریافت مقادیر ارتعاش از سنسور.
  • آشنایی با عملکرد دستگاه xbee و پروتکل xbee
  • پیکربندی اعتبارنامه WiFi و پیکربندی IP با استفاده از درگاه ضبط شده

مرحله 1: مشخصات سخت افزار و نرم افزار

مشخصات سخت افزار و نرم افزار
مشخصات سخت افزار و نرم افزار
مشخصات سخت افزار و نرم افزار
مشخصات سخت افزار و نرم افزار
مشخصات سخت افزار و نرم افزار
مشخصات سخت افزار و نرم افزار

مشخصات سخت افزار

  • سنسورهای ارتعاش و دما بی سیم
  • گیرنده زیگمو
  • دستگاه ESP32 BLE/ WiFi

مشخصات نرم افزار

  • آردوینو IDE
  • ابزار LabView

مرحله 2: پیکربندی سنسور بی سیم و گیرنده زیگمو با استفاده از XCTU

پیکربندی سنسور بی سیم و گیرنده زیگمو با استفاده از XCTU
پیکربندی سنسور بی سیم و گیرنده زیگمو با استفاده از XCTU
پیکربندی سنسور بی سیم و گیرنده زیگمو با استفاده از XCTU
پیکربندی سنسور بی سیم و گیرنده زیگمو با استفاده از XCTU

هر دستگاه اینترنت اشیا به یک پروتکل ارتباطی نیاز دارد تا دستگاه را روی ابر قرار دهد و یک رابط بی سیم بین دستگاه های مختلف ایجاد کند.

در اینجا سنسورهای بی سیم و گیرنده زیگمو از قدرت کم و راه حل طولانی برد XBee استفاده می کنند. XBee از پروتکل ZigBee استفاده می کند که عملکرد را در باندهای ISM 902 تا 928 مگاهرتز مشخص می کند.

Xbee را می توان با استفاده از نرم افزار XCTU پیکربندی کرد

  1. با کلیک روی نماد بالا سمت چپ ، دستگاه Xbee را جستجو کنید یا یک دستگاه Xbee جدید اضافه کنید.
  2. دستگاه در پانل سمت چپ لیست شده است.
  3. برای مشاهده تنظیمات روی دستگاه دوبار کلیک کنید.
  4. حالا روی نماد کنسول در گوشه بالا سمت راست کلیک کنید
  5. می توانید مقدار خروجی کنسول را مشاهده کنید
  6. در اینجا ما فریم با طول 54 بایت را دریافت می کنیم
  7. این بایت ها بیشتر به دست می آیند تا مقادیر واقعی را بدست آورند. روش بدست آوردن مقادیر واقعی دما و ارتعاش در مراحل بعدی ذکر شده است.

مرحله 3: تجزیه و تحلیل دما و ارتعاش بی سیم با استفاده از ابزار Labview Utility

تجزیه و تحلیل دما و ارتعاش بی سیم با استفاده از ابزار Labview
تجزیه و تحلیل دما و ارتعاش بی سیم با استفاده از ابزار Labview
تجزیه و تحلیل درجه حرارت و ارتعاش بی سیم با استفاده از ابزار Labview
تجزیه و تحلیل درجه حرارت و ارتعاش بی سیم با استفاده از ابزار Labview

سنسور در دو حالت اجرا می شود

  • حالت پیکربندی: پیکربندی شناسه Pan ، تأخیر ، تعداد امتحانات مجدد و غیره. بیشتر در این مورد از حوصله این دستورالعمل خارج است و در دستورالعمل بعدی توضیح داده خواهد شد.
  • حالت اجرا: ما دستگاه را در حالت اجرا اجرا می کنیم. و برای تجزیه و تحلیل این مقدار از ابزار Labview Utility استفاده می کنیم

این رابط کاربری Labview مقادیر را در نمودارهای زیبا نشان می دهد. مقادیر فعلی و گذشته را نشان می دهد. برای بارگیری رابط کاربری Labview می توانید به این پیوند بروید.

از منوی صفحه فرود روی نماد اجرا کلیک کنید تا به حالت اجرا بروید.

مرحله 4: پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal

پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal
پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal
پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal
پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal
پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal
پیکربندی DHCP/IP Static Settings با استفاده از Captive Portal

ما از پورتال ضبط شده برای ذخیره اعتبار WiFi و حرکت در تنظیمات IP استفاده می کنیم. برای آشنایی بیشتر با پورتال اسیر ، می توانید موارد زیر را به صورت آموزشی آموزش دهید.

پورتال باز به ما این امکان را می دهد که بین تنظیمات Static و DHCP یکی را انتخاب کنیم. فقط اطلاعاتی مانند IP Static ، Subnet Mask ، gateway را وارد کرده و Wateless Sensor Gateway در آن IP پیکربندی می شود.

مرحله 5: ذخیره تنظیمات WiFi با استفاده از Captive Portal

ذخیره تنظیمات WiFi با استفاده از پورتال اسیر
ذخیره تنظیمات WiFi با استفاده از پورتال اسیر

یک صفحه وب میزبانی می شود که در آن لیستی از شبکه های WiFi موجود و RSSI را نشان می دهد. شبکه WiFi و رمز عبور را انتخاب کرده و submit را وارد کنید. اعتبارنامه در EEPROM و تنظیم IP در SPIFFS ذخیره می شود. بیشتر در این مورد می توان در این دستورالعمل یافت.

مرحله 6: انتشار خوانش های حسگر در UbiDots

در اینجا ما از سنسورهای دما و ارتعاش بی سیم با گیرنده دروازه ESP 32 برای دریافت اطلاعات دما و رطوبت استفاده می کنیم. ما داده ها را با استفاده از پروتکل MQTT به UbiDots ارسال می کنیم. MQTT به جای درخواست و پاسخ ، مکانیزم انتشار و اشتراک را دنبال می کند. سریعتر و قابل اطمینان تر از HTTP است. این به شرح زیر عمل می کند.

خواندن اطلاعات سنسور بی سیم

ما از سنسورهای دما و ارتعاش بی سیم یک فریم 29 بایت دریافت می کنیم. این قاب برای دریافت دمای واقعی و داده های ارتعاش دستکاری می شود

if (Serial2.available ()) {data [0] = Serial2.read ()؛ تاخیر (k) ؛ if (data [0] == 0x7E) {Serial.println ("بسته را دریافت کردم")؛ در حالی که (! Serial2.available ())؛ برای (i = 1؛ i <55؛ i ++) {data = Serial2.read ()؛ تأخیر (1) ؛ } if (data [15] == 0x7F) /////// برای بررسی صحت داده های recive {if (data [22] == 0x08) //////// مطمئن شوید نوع سنسور درست است {rms_x = (((uint16_t) (((داده [24]) << 16) + ((داده [25]) << 8) + (داده [26]))/100) ؛ rms_y = ((uint16_t) (((داده [27]) << 16) + ((داده [28]) << 8) + (داده [29]))/100) ؛ rms_z = ((uint16_t) (((داده [30]) << 16) + ((داده [31]) << 8) + (داده [32]))/100) ؛ max_x = ((uint16_t) (((داده [33]) << 16) + ((داده [34]) << 8) + (داده [35]))/100) ؛ max_y = ((uint16_t) (((داده [36]) << 16) + ((داده [37]) << 8) + (داده [38]))/100) ؛ max_z = ((uint16_t) (((داده [39]) << 16) + ((داده [40]) << 8) + (داده [41]))/100) ؛

min_x = ((uint16_t) (((داده [42]) << 16) + ((داده [43]) << 8) + (داده [44]))/100) ؛ min_y = ((uint16_t) (((داده [45]) << 16) + ((داده [46]) << 8) + (داده [47]))/100) ؛ min_z = ((uint16_t) (((داده [48]) << 16) + ((داده [49]) << 8) + (داده [50]))/100) ؛

cTemp = (((((داده [51]) * 256) + داده [52])) ؛ باتری شناور = ((داده [18] * 256) + داده [19]) ؛ ولتاژ شناور = 0.00322 * باتری ؛ Serial.print ("شماره سنسور") ؛ Serial.println (داده [16]) ؛ Serial.print ("نوع سنسور") ؛ Serial.println (داده [22]) ؛ Serial.print ("نسخه سیستم عامل") ؛ Serial.println (داده [17]) ؛ Serial.print ("دما در سانتیگراد:") ؛ Serial.print (cTemp) ؛ Serial.println ("C") ؛ Serial.print ("ارتعاش RMS در محور X:") ؛ Serial.print (rms_x)؛ Serial.println ("میلی گرم") ؛ Serial.print ("ارتعاش RMS در محور Y:") ؛ Serial.print (rms_y) ؛ Serial.println ("میلی گرم") ؛ Serial.print ("ارتعاش RMS در محور Z:") ؛ Serial.print (rms_z) ؛ Serial.println ("میلی گرم") ؛

Serial.print ("حداقل ارتعاش در محور X:") ؛

Serial.print (min_x) ؛ Serial.println ("میلی گرم") ؛ Serial.print ("حداقل ارتعاش در محور Y:") ؛ Serial.print (min_y) ؛ Serial.println ("میلی گرم") ؛ Serial.print ("حداقل ارتعاش در محور Z:") ؛ Serial.print (min_z) ؛ Serial.println ("میلی گرم") ؛

Serial.print ("مقدار ADC:") ؛

Serial.println (باتری) ؛ Serial.print ("ولتاژ باتری:") ؛ Serial.print (ولتاژ) ؛ Serial.println ("\ n")؛ if (ولتاژ <1) {Serial.println ("زمان تعویض باتری") ؛ }}} else {for (i = 0؛ i <54؛ i ++) {Serial.print (data )؛ Serial.print ("،") ؛ تأخیر (1) ؛ }}}}

اتصال به UbiDots MQTT API

شامل فایل سرصفحه برای فرآیند MQTT

#شامل "PubSubClient.h"

تعریف متغیرهای دیگر برای MQTT مانند نام مشتری ، آدرس کارگزار ، شناسه توکن (ما شناسه توکن را از EEPROM واکشی می کنیم)

#تعریف MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"؛ محموله بار [100] ؛ موضوع char [150]؛ // ایجاد متغیر برای ذخیره شناسه توکن String tokenId؛

ایجاد متغیرها برای ذخیره داده های مختلف حسگر و ایجاد یک متغیر char برای ذخیره موضوع

#تعریف VARIABLE_LABEL_TEMPF "tempF" // Assing the variable variable #define VARIABLE_LABEL_TEMPC "tempC" // Assing the variable variable #define VARIABLE_LABEL_BAT "bat" #deabine VARIABLE_LABEL_HUMID label "humid" // assing

char topic1 [100]؛

char topic2 [100]؛ char topic3 [100]؛

انتشار داده ها در مبحث MQTT ذکر شده ، بارگذاری آن شبیه {"tempc": {value: "tempData"}} خواهد بود

sprintf (topic1، "٪ s"، "")؛ sprintf (topic1، "٪ s٪ s"، "/v1.6/devices/"، DEVICE_LABEL)؛ sprintf (بار ، "٪ s" ، "") ؛

// سرعت بار Sprintf را پاک می کند (بار ، "{"٪ s / ":" ، VARIABLE_LABEL_TEMPC) ؛

// مقدار sprintf را اضافه می کند (بار ، "٪ s {" value / ":٪ s}" ، بار ، str_cTemp) ؛

// مقدار sprintf (بار ، "٪ s}" ، بار) را اضافه می کند ؛

// براکت های دیکشنری Serial.println (payload) را می بندد.

Serial.println (client.publish (topic1، payload)؟ "published": "notpublished")؛

// برای موضوعات دیگر نیز همین کار را انجام دهید

client.publish () داده ها را در UbiDots منتشر می کند

مرحله 7: تجسم داده ها

تجسم داده ها
تجسم داده ها
  • به Ubidots بروید و وارد حساب خود شوید.
  • از سربرگ Data که در بالا ذکر شده است ، به داشبورد بروید.
  • اکنون روی نماد "+" کلیک کنید تا ویجت های جدید اضافه شوند.
  • یک ویجت از لیست انتخاب کرده و یک متغیر و دستگاه ها را اضافه کنید.
  • داده های حسگر را می توان با استفاده از ابزارک های مختلف در داشبورد تجسم کرد.

کد کلی

کد Over برای HTML و ESP32 را می توانید در این مخزن GitHub پیدا کنید.

  1. برد شکست NCD ESP32.
  2. ncd سنسورهای دما و رطوبت بی سیم
  3. pubsubclient
  4. UbiDots

توصیه شده: