جدول المحتويات:
- الخطوة 1: مواصفات الأجهزة والبرامج
- الخطوة 2: تكوين المستشعر اللاسلكي وجهاز الاستقبال Zigmo باستخدام XCTU
- الخطوة 3: تحليل قيم الاهتزاز ودرجة الحرارة اللاسلكية باستخدام أداة Labview
- الخطوة 4: تكوين إعدادات DHCP / IP الثابتة باستخدام Captive Portal
- الخطوة 5: حفظ إعدادات WiFi باستخدام Captive Portal
- الخطوة 6: نشر قراءات أجهزة الاستشعار على UbiDots
- الخطوة 7: تصور البيانات
فيديو: الشروع في العمل مع مستشعرات درجة الحرارة والاهتزاز اللاسلكية طويلة المدى: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:35
أحيانًا يكون الاهتزاز هو سبب المشكلات الخطيرة في العديد من التطبيقات. من أعمدة الماكينة والمحامل إلى أداء القرص الصلب ، يتسبب الاهتزاز في تلف الماكينة ، والاستبدال المبكر ، وانخفاض الأداء ، وإحداث ضرر كبير في الدقة. يمكن أن تؤدي المراقبة والتحليل الزمني للاهتزاز في الماكينة إلى حل مشكلة التلف المبكر وتآكل جزء الماكينة.
في هذا الدليل ، سنعمل على مستشعرات الاهتزاز ودرجة الحرارة اللاسلكية بعيدة المدى لـ IoT. هذه مستشعرات من الدرجة الصناعية مع العديد من التطبيقات واسعة النطاق مثل.
- تشغيل المعادن
- توليد الطاقة
- التعدين
- الأغذية والمشروبات
لذلك ، في هذا Instructable ، سوف نمر بما يلي:
- تكوين أجهزة الاستشعار اللاسلكية باستخدام XCTU و Labview UI.
- الحصول على قيم الاهتزاز من المستشعر.
- فهم عمل جهاز xbee وبروتوكول xbee.
- تكوين بيانات اعتماد WiFi وتكوين IP باستخدام البوابة المقيدة
الخطوة 1: مواصفات الأجهزة والبرامج
مواصفات الأجهزة
- أجهزة استشعار لاسلكية للاهتزاز ودرجة الحرارة
- جهاز استقبال Zigmo
- جهاز ESP32 BLE / WiFi
مواصفات البرنامج
- اردوينو IDE
- أداة LabView
الخطوة 2: تكوين المستشعر اللاسلكي وجهاز الاستقبال Zigmo باستخدام XCTU
يحتاج كل جهاز إنترنت الأشياء إلى بروتوكول اتصال لوضع الجهاز على السحابة ولإعداد واجهة لاسلكية بين الأجهزة المختلفة.
هنا تستخدم المستشعرات اللاسلكية وجهاز الاستقبال Zigmo حل XBee منخفض الطاقة وطويل المدى. يستخدم XBee بروتوكول ZigBee الذي يحدد العملية في نطاقات 902 إلى 928 ميجا هرتز ISM.
يمكن تكوين Xbee باستخدام برنامج XCTU
- ابحث عن جهاز Xbee أو أضف جهاز Xbee جديدًا بالنقر فوق الرمز الأيسر العلوي.
- سيتم إدراج الجهاز في اللوحة اليمنى.
- انقر نقرًا مزدوجًا على الجهاز لرؤية الإعدادات.
- انقر الآن على أيقونة وحدة التحكم في الزاوية اليمنى العليا
- يمكنك أن ترى القيمة القادمة من إخراج وحدة التحكم
- نحصل هنا على إطار طوله 54 بايت
- سيتم معالجة هذه البايتات بشكل أكبر للحصول على القيم الحقيقية. تم ذكر إجراء الحصول على قيم درجة الحرارة والاهتزاز الحقيقية في الخطوات القادمة.
الخطوة 3: تحليل قيم الاهتزاز ودرجة الحرارة اللاسلكية باستخدام أداة Labview
يعمل المستشعر في وضعين
- وضع التكوين: قم بتكوين معرف عموم ، والتأخير ، وعدد مرات إعادة المحاولة وما إلى ذلك. المزيد عن هذا خارج نطاق هذا التوجيه وسيتم شرحه في التعليمات التالية.
- وضع التشغيل: نقوم بتشغيل الجهاز في وضع التشغيل. ولتحليل هذه القيمة ، نستخدم Labview Utility
تعرض واجهة مستخدم Labview هذه القيم في الرسوم البيانية الجميلة. يعرض القيم الحالية والسابقة. يمكنك الانتقال إلى هذا الرابط لتنزيل Labview UI.
انقر فوق أيقونة التشغيل من قائمة الصفحة المقصودة للانتقال إلى وضع التشغيل.
الخطوة 4: تكوين إعدادات DHCP / IP الثابتة باستخدام Captive Portal
نحن نستخدم البوابة المقيدة لحفظ بيانات اعتماد WiFi وللتحريك عبر إعدادات IP. للحصول على مقدمة مفصلة عن البوابة المقيدة ، يمكنك الاطلاع على التعليمات التالية.
تعطينا البوابة المقيدة خيار الاختيار بين إعدادات Static و DHCP. ما عليك سوى إدخال بيانات الاعتماد مثل Static IP وقناع الشبكة الفرعية والبوابة وسيتم تكوين بوابة المستشعر اللاسلكي على عنوان IP هذا.
الخطوة 5: حفظ إعدادات 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 هذا.
- مجلس الاختراق NCD ESP32.
- أجهزة استشعار درجة الحرارة والرطوبة اللاسلكية ncd.
- pubsubclient
- UbiDots
موصى به:
Node-RED مع مستشعر درجة الحرارة والاهتزاز بعيد المدى لـ IoT: 34 خطوة
Node-RED مع مستشعر درجة الحرارة والاهتزاز بعيد المدى لـ IoT: تقديم مستشعر درجة الحرارة اللاسلكي طويل المدى من NCD ، والذي يضم نطاقًا يصل إلى 28 ميلًا باستخدام بنية شبكة لاسلكية. يعمل جهاز استشعار درجة الحرارة HIH9130 من هانيويل على نقل درجة حرارة عالية الدقة و
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
ThingSpeak و ESP32 ودرجة الحرارة والرطوبة اللاسلكية طويلة المدى: 5 خطوات
ThingSpeak و ESP32 ودرجة الحرارة والرطوبة اللاسلكية طويلة المدى: في هذا البرنامج التعليمي ، سنقيس بيانات درجات الحرارة والرطوبة المختلفة باستخدام مستشعر درجة الحرارة والرطوبة. سوف تتعلم أيضًا كيفية إرسال هذه البيانات إلى ThingSpeak. بحيث يمكنك تحليلها من أي مكان لتطبيقات مختلفة
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب
استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية: 8 خطوات (بالصور)
استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية: في المجتمع المعاصر ، تعني الزيادة في عدد ركاب السكك الحديدية أنه يجب على شركات السكك الحديدية بذل المزيد من الجهد لتحسين الشبكات لمواكبة الطلب. في هذا المشروع سوف نوضح على نطاق صغير كيف يمكن لأجهزة استشعار درجة الحرارة ومياه الأمطار والاهتزاز