جدول المحتويات:

الشروع في العمل مع مستشعرات درجة الحرارة والاهتزاز اللاسلكية طويلة المدى: 7 خطوات
الشروع في العمل مع مستشعرات درجة الحرارة والاهتزاز اللاسلكية طويلة المدى: 7 خطوات

فيديو: الشروع في العمل مع مستشعرات درجة الحرارة والاهتزاز اللاسلكية طويلة المدى: 7 خطوات

فيديو: الشروع في العمل مع مستشعرات درجة الحرارة والاهتزاز اللاسلكية طويلة المدى: 7 خطوات
فيديو: SKINWALKER RANCH - مقابلة إريك بارد الموسم الرابع 2024, يوليو
Anonim
الشروع في العمل مع أجهزة استشعار درجة الحرارة والاهتزاز اللاسلكية طويلة المدى
الشروع في العمل مع أجهزة استشعار درجة الحرارة والاهتزاز اللاسلكية طويلة المدى

أحيانًا يكون الاهتزاز هو سبب المشكلات الخطيرة في العديد من التطبيقات. من أعمدة الماكينة والمحامل إلى أداء القرص الصلب ، يتسبب الاهتزاز في تلف الماكينة ، والاستبدال المبكر ، وانخفاض الأداء ، وإحداث ضرر كبير في الدقة. يمكن أن تؤدي المراقبة والتحليل الزمني للاهتزاز في الماكينة إلى حل مشكلة التلف المبكر وتآكل جزء الماكينة.

في هذا الدليل ، سنعمل على مستشعرات الاهتزاز ودرجة الحرارة اللاسلكية بعيدة المدى لـ IoT. هذه مستشعرات من الدرجة الصناعية مع العديد من التطبيقات واسعة النطاق مثل.

  • تشغيل المعادن
  • توليد الطاقة
  • التعدين
  • الأغذية والمشروبات

لذلك ، في هذا Instructable ، سوف نمر بما يلي:

  • تكوين أجهزة الاستشعار اللاسلكية باستخدام XCTU و Labview UI.
  • الحصول على قيم الاهتزاز من المستشعر.
  • فهم عمل جهاز xbee وبروتوكول xbee.
  • تكوين بيانات اعتماد WiFi وتكوين IP باستخدام البوابة المقيدة

الخطوة 1: مواصفات الأجهزة والبرامج

مواصفات الأجهزة والبرامج
مواصفات الأجهزة والبرامج
مواصفات الأجهزة والبرامج
مواصفات الأجهزة والبرامج
مواصفات الأجهزة والبرامج
مواصفات الأجهزة والبرامج

مواصفات الأجهزة

  • أجهزة استشعار لاسلكية للاهتزاز ودرجة الحرارة
  • جهاز استقبال Zigmo
  • جهاز ESP32 BLE / WiFi

مواصفات البرنامج

  • اردوينو IDE
  • أداة LabView

الخطوة 2: تكوين المستشعر اللاسلكي وجهاز الاستقبال Zigmo باستخدام XCTU

تكوين جهاز استشعار لاسلكي وجهاز استقبال Zigmo باستخدام XCTU
تكوين جهاز استشعار لاسلكي وجهاز استقبال Zigmo باستخدام XCTU
تكوين جهاز استشعار لاسلكي وجهاز استقبال Zigmo باستخدام XCTU
تكوين جهاز استشعار لاسلكي وجهاز استقبال Zigmo باستخدام XCTU

يحتاج كل جهاز إنترنت الأشياء إلى بروتوكول اتصال لوضع الجهاز على السحابة ولإعداد واجهة لاسلكية بين الأجهزة المختلفة.

هنا تستخدم المستشعرات اللاسلكية وجهاز الاستقبال Zigmo حل XBee منخفض الطاقة وطويل المدى. يستخدم XBee بروتوكول ZigBee الذي يحدد العملية في نطاقات 902 إلى 928 ميجا هرتز ISM.

يمكن تكوين Xbee باستخدام برنامج XCTU

  1. ابحث عن جهاز Xbee أو أضف جهاز Xbee جديدًا بالنقر فوق الرمز الأيسر العلوي.
  2. سيتم إدراج الجهاز في اللوحة اليمنى.
  3. انقر نقرًا مزدوجًا على الجهاز لرؤية الإعدادات.
  4. انقر الآن على أيقونة وحدة التحكم في الزاوية اليمنى العليا
  5. يمكنك أن ترى القيمة القادمة من إخراج وحدة التحكم
  6. نحصل هنا على إطار طوله 54 بايت
  7. سيتم معالجة هذه البايتات بشكل أكبر للحصول على القيم الحقيقية. تم ذكر إجراء الحصول على قيم درجة الحرارة والاهتزاز الحقيقية في الخطوات القادمة.

الخطوة 3: تحليل قيم الاهتزاز ودرجة الحرارة اللاسلكية باستخدام أداة Labview

تحليل قيم درجة الحرارة والاهتزاز اللاسلكي باستخدام أداة Labview
تحليل قيم درجة الحرارة والاهتزاز اللاسلكي باستخدام أداة Labview
تحليل قيم الاهتزاز ودرجة الحرارة اللاسلكية باستخدام أداة Labview
تحليل قيم الاهتزاز ودرجة الحرارة اللاسلكية باستخدام أداة Labview

يعمل المستشعر في وضعين

  • وضع التكوين: قم بتكوين معرف عموم ، والتأخير ، وعدد مرات إعادة المحاولة وما إلى ذلك. المزيد عن هذا خارج نطاق هذا التوجيه وسيتم شرحه في التعليمات التالية.
  • وضع التشغيل: نقوم بتشغيل الجهاز في وضع التشغيل. ولتحليل هذه القيمة ، نستخدم Labview Utility

تعرض واجهة مستخدم Labview هذه القيم في الرسوم البيانية الجميلة. يعرض القيم الحالية والسابقة. يمكنك الانتقال إلى هذا الرابط لتنزيل Labview UI.

انقر فوق أيقونة التشغيل من قائمة الصفحة المقصودة للانتقال إلى وضع التشغيل.

الخطوة 4: تكوين إعدادات DHCP / IP الثابتة باستخدام Captive Portal

تكوين إعدادات DHCP / IP الثابتة باستخدام بوابة مقيدة
تكوين إعدادات DHCP / IP الثابتة باستخدام بوابة مقيدة
تكوين إعدادات DHCP / IP الثابتة باستخدام بوابة مقيدة
تكوين إعدادات DHCP / IP الثابتة باستخدام بوابة مقيدة
تكوين إعدادات DHCP / IP الثابتة باستخدام بوابة مقيدة
تكوين إعدادات DHCP / IP الثابتة باستخدام بوابة مقيدة

نحن نستخدم البوابة المقيدة لحفظ بيانات اعتماد WiFi وللتحريك عبر إعدادات IP. للحصول على مقدمة مفصلة عن البوابة المقيدة ، يمكنك الاطلاع على التعليمات التالية.

تعطينا البوابة المقيدة خيار الاختيار بين إعدادات Static و DHCP. ما عليك سوى إدخال بيانات الاعتماد مثل Static IP وقناع الشبكة الفرعية والبوابة وسيتم تكوين بوابة المستشعر اللاسلكي على عنوان IP هذا.

الخطوة 5: حفظ إعدادات WiFi باستخدام Captive Portal

حفظ إعدادات WiFi باستخدام Captive Portal
حفظ إعدادات WiFi باستخدام Captive Portal

تتم استضافة صفحة ويب حيث توجد قائمة تعرض شبكات WiFi المتاحة وهناك RSSI. حدد شبكة WiFi وكلمة المرور وأدخل إرسال. سيتم حفظ بيانات الاعتماد في EEPROM وسيتم حفظ إعداد IP في SPIFFS. يمكن العثور على المزيد حول هذا في هذا الدليل.

الخطوة 6: نشر قراءات أجهزة الاستشعار على UbiDots

نحن هنا نستخدم مستشعرات درجة الحرارة والاهتزاز اللاسلكية مع مستقبل بوابة ESP 32 للحصول على بيانات درجة الحرارة والرطوبة. نحن نرسل البيانات إلى UbiDots باستخدام بروتوكول MQTT. تتبع MQTT آلية النشر والاشتراك بدلاً من ذلك الطلب والاستجابة. إنه أسرع وموثوق من HTTP. هذا يعمل على النحو التالي.

قراءة بيانات جهاز الاستشعار اللاسلكي

نحصل على إطار 29 بايت من مستشعرات درجة الحرارة والاهتزاز اللاسلكية. يتم معالجة هذا الإطار للحصول على بيانات الاهتزاز ودرجة الحرارة الفعلية

إذا (Serial2.available ()) {data [0] = Serial2.read () ؛ تأخير (ك) ؛ if (data [0] == 0x7E) {Serial.println ("Got Packet") ؛ بينما (! Serial2.available ()) ، لـ (i = 1 ؛ i <55 ؛ i ++) {data = Serial2.read () ؛ تأخير (1) ؛ } إذا كانت (البيانات [15] == 0x7F) /////// للتحقق مما إذا كانت البيانات المتتالية صحيحة {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 = ((((data [51]) * 256) + data [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 ("mg") ؛ Serial.print ("اهتزاز RMS في المحور Y:") ؛ Serial.print (rms_y) ؛ Serial.println ("mg") ؛ Serial.print ("اهتزاز RMS في المحور Z:") ؛ Serial.print (rms_z) ؛ Serial.println ("mg") ؛

Serial.print ("أدنى اهتزاز في المحور السيني:") ؛

Serial.print (min_x) ؛ Serial.println ("mg") ؛ Serial.print ("أدنى اهتزاز في المحور Y:") ؛ Serial.print (min_y) ؛ Serial.println ("mg") ؛ Serial.print ("أدنى اهتزاز في المحور Z:") ؛ Serial.print (min_z) ؛ Serial.println ("mg") ؛

Serial.print ("قيمة ADC:") ؛

Serial.println (بطارية) ؛ Serial.print ("جهد البطارية:") ؛ Serial.print (الجهد) ؛ Serial.println ("\ n") ؛ إذا (الجهد <1) {Serial.println ("الوقت لاستبدال البطارية") ؛ }}} else {for (i = 0؛ i <54؛ i ++) {Serial.print (data )؛ Serial.print ("،") ؛ تأخير (1) ؛ }}}}

الاتصال بواجهة برمجة تطبيقات UbiDots MQTT

قم بتضمين ملف الرأس لعملية MQTT

# تضمين "PubSubClient.h"

تحديد متغيرات أخرى لـ MQTT مثل اسم العميل وعنوان الوسيط ومعرف الرمز المميز (نقوم بإحضار معرف الرمز المميز من EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com" ؛ حمولة شار [100] ؛ موضوع شار [150] ؛ // إنشاء متغير لتخزين معرف الرمز المميز String tokenId ؛

قم بإنشاء متغيرات لتخزين بيانات المستشعر المختلفة وإنشاء متغير char لتخزين الموضوع

#define VARIABLE_LABEL_TEMPF "tempF" // تعيين تسمية المتغير # عرّف VARIABLE_LABEL_TEMPC "tempC" // تعيين تسمية المتغير #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assing the variable label

شار 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 (الحمولة) ؛

Serial.println (client.publish (topic1، payload)؟ "منشور": "notpublished") ؛

// افعل الشيء نفسه بالنسبة لموضوع آخر أيضًا

client.publish () ينشر البيانات إلى UbiDots

الخطوة 7: تصور البيانات

تصور البيانات
تصور البيانات
  • انتقل إلى Ubidots وقم بتسجيل الدخول إلى حسابك.
  • انتقل إلى لوحة المعلومات من علامة التبويب البيانات المدرجة في الأعلى.
  • الآن انقر فوق رمز "+" لإضافة الأدوات الجديدة.
  • حدد عنصر واجهة مستخدم من القائمة وأضف متغيرًا وأجهزة.
  • يمكن تصور بيانات المستشعر على لوحة القيادة باستخدام أدوات مختلفة.

الكود العام

يمكن العثور على كود Over لـ HTML و ESP32 في مستودع GitHub هذا.

  1. مجلس الاختراق NCD ESP32.
  2. أجهزة استشعار درجة الحرارة والرطوبة اللاسلكية ncd.
  3. pubsubclient
  4. UbiDots

موصى به: