تنفيذ الجهاز وأفضل الممارسات ل IoT central
توفر هذه المقالة معلومات حول كيفية تنفيذ الأجهزة التي تتصل بتطبيق IoT المركزي. ويتضمن أيضا بعض أفضل الممارسات. لمعرفة المزيد حول عملية الاتصال الإجمالية، راجع توصيل جهاز.
للحصول على نموذج التعليمات البرمجية لتنفيذ الجهاز، راجع البرنامج التعليمي: إنشاء تطبيق عميل وتوصيله بتطبيق Azure IoT Central.
تنفيذ الجهاز
يجب أن تتبع الأجهزة التي تتصل ب IoT Central اصطلاحات أجهزة التوصيل و التشغيل IoT. تتمثل إحدى هذه الاصطلاحات في أنه يجب على الجهاز إرسال معرف طراز طراز الجهاز الذي ينفذه عند الاتصال. يمكن معرف النموذج تطبيق IoT Central من تعيين الجهاز إلى قالب الجهاز الصحيح.
يتضمن قالب جهاز IoT Central نموذجا يحدد السلوكيات التي يجب أن ينفذها جهاز من هذا النوع. تتضمن السلوكيات بيانات تتبع الاستخدام والخصائص والأوامر.
يحتوي كل نموذج على معرف نموذج رقمي مزدوج فريد (DTMI)، مثل dtmi:com:example:Thermostat;1
. عندما يتصل جهاز ب IoT Central، فإنه يرسل DTMI للنموذج الذي ينفذه. يمكن ل IoT Central بعد ذلك تعيين قالب الجهاز الصحيح إلى الجهاز.
يحدد أجهزة التوصيل و التشغيل IoT مجموعة من الاصطلاحات التي يجب أن يتبعها الجهاز عند تنفيذ نموذج لغة تعريف التوأم الرقمي (DTDL).
تتضمن SDKs لجهاز Azure IoT دعم اصطلاحات أجهزة التوصيل و التشغيل IoT.
طراز الجهاز
بالنسبة ل IoT Central، يتم تعريف نموذج الجهاز باستخدام لغة نمذجة DTDL v2 . تتيح لك هذه اللغة تحديد:
- بيانات تتبع الاستخدام التي يرسلها الجهاز. يتضمن التعريف اسم ونوع بيانات القياس عن بعد. على سبيل المثال، يرسل الجهاز القياس عن بعد لدرجة الحرارة كمضاعف.
- الخصائص التي يقدمها الجهاز إلى IoT Central. يتضمن تعريف الخاصية اسمه ونوع البيانات الخاص به. على سبيل المثال، يبلغ الجهاز عن حالة الصمام كقيم منطقية.
- الخصائص التي يمكن أن يتلقاها الجهاز من IoT Central. اختياريا، يمكنك وضع علامة على خاصية على أنها قابلة للكتابة. على سبيل المثال، يرسل IoT Central درجة حرارة هدف كمضاعفة إلى جهاز.
- الأوامر التي يستجيب لها الجهاز. يتضمن التعريف اسم الأمر وأسماء وأنواع البيانات لأي معلمات. على سبيل المثال، يستجيب الجهاز لأمر إعادة التشغيل الذي يحدد عدد الثوان التي يجب انتظارها قبل إعادة التشغيل.
إشعار
يعرف IoT Central بعض الملحقات للغة DTDL v2. لمعرفة المزيد، راجع ملحق IoT Central.
يمكن أن يكون نموذج DTDL بدون مكون أو نموذج متعدد المكونات :
- نموذج بدون مكون: لا يستخدم النموذج البسيط المكونات المضمنة أو المتتالية. يتم تعريف جميع بيانات تتبع الاستخدام والخصائص والأوامر مكون جذر واحد. على سبيل المثال، راجع نموذج Thermostat .
- نموذج متعدد المكونات. نموذج أكثر تعقيدا يتضمن مكونين أو أكثر. تتضمن هذه المكونات مكون جذر واحد ومكونا متداخلا واحدا أو أكثر. على سبيل المثال، راجع نموذج وحدة تحكم درجة الحرارة.
تلميح
يمكنك استيراد نموذج جهاز كامل أو واجهة فردية وتصديرها من قالب جهاز IoT Central كملف DTDL v2.
لمعرفة المزيد حول نماذج الأجهزة، راجع دليل نمذجة IoT أجهزة التوصيل و التشغيل
الاصطلاحات
يجب أن يتبع الجهاز اصطلاحات أجهزة التوصيل و التشغيل IoT عندما يتبادل البيانات مع IoT Central. وتشمل الاصطلاحات ما يلي:
- إرسال DTMI عند الاتصال ب IoT Central.
- إرسال حمولات JSON وبيانات التعريف المنسقة بشكل صحيح إلى IoT Central.
- الاستجابة بشكل صحيح للخصائص والأوامر القابلة للكتابة من IoT Central.
- اتبع اصطلاحات التسمية لأوامر المكونات.
إشعار
حاليا، لا يدعم IoT Central بشكل كامل صفيف DTDL وأنواع البيانات الجغرافية المكانية.
لمعرفة المزيد حول اصطلاحات أجهزة التوصيل و التشغيل IoT، راجع اصطلاحات أجهزة التوصيل و التشغيل IoT.
لمعرفة المزيد حول تنسيق رسائل JSON التي يتبادلها الجهاز مع IoT Central، راجع بيانات تتبع الاستخدام والخصائص وحمولة الأوامر.
عدد تطوير البرامج للجهاز
استخدم أحد SDKs لجهاز Azure IoT لتنفيذ سلوك جهازك. يجب أن تكون التعليمات البرمجية:
- سجل الجهاز باستخدام DPS واستخدم المعلومات من DPS للاتصال بمركز IoT الداخلي في تطبيق IoT Central.
- أعلن عن DTMI للنموذج الذي ينفذه الجهاز.
- إرسال بيانات تتبع الاستخدام بالتنسيق الذي يحدده نموذج الجهاز. يستخدم IoT Central النموذج في قالب الجهاز لتحديد كيفية استخدام بيانات تتبع الاستخدام للتصورات والتحليل.
- مزامنة قيم الخصائص بين الجهاز وIoT Central. يحدد النموذج أسماء الخصائص وأنواع البيانات بحيث يمكن ل IoT Central عرض المعلومات.
- تنفيذ معالجات الأوامر للأوامر المحددة في النموذج. يحدد النموذج أسماء الأوامر والمعلمات التي يجب أن يستخدمها الجهاز.
لمزيد من المعلومات حول دور قوالب الأجهزة، راجع ما هي قوالب الأجهزة؟.
يلخص الجدول التالي كيفية تعيين ميزات جهاز Azure IoT Central إلى ميزات IoT Hub:
Azure IoT Central | Azure IoT Hub |
---|---|
القياس عن بعد | المراسلة من جهاز إلى سحابة |
الأوامر غير المتصلة | المراسلة من السحابة إلى الجهاز |
الخاصية | خصائص الجهاز المزدوج المبلغ عنها |
الخاصية (قابل للكتابة) | الخصائص المطلوبة والمبلغ عنها لتوائم الجهاز |
الأمر | أساليب مباشرة |
بروتوكولات الاتصال
تتضمن بروتوكولات الاتصال التي يمكن للجهاز استخدامها للاتصال ب IoT Central MQTT وAMQP وHTTPS. داخليا، يستخدم IoT Central مركز IoT لتمكين اتصال الجهاز. لمزيد من المعلومات حول بروتوكولات الاتصال التي يدعمها IoT Hub لاتصال الجهاز، راجع اختيار بروتوكول اتصال.
إذا لم يتمكن جهازك من استخدام أي من البروتوكولات المدعومة، فاستخدم Azure IoT Edge لإجراء تحويل البروتوكول. يدعم IoT Edge سيناريوهات التحليل الذكي الأخرى لإلغاء تحميل المعالجة من تطبيق Azure IoT Central.
الطوابع الزمنية لبيانات تتبع الاستخدام
بشكل افتراضي، يستخدم IoT Central وقت الرسالة في قائمة الانتظار عندما يعرض بيانات تتبع الاستخدام على لوحات المعلومات والمخططات. يتم تعيين وقت وضع الرسالة في قائمة الانتظار داخليا عندما يتلقى IoT Central الرسالة من الجهاز.
يمكن للجهاز تعيين الخاصية iothub-creation-time-utc
عند إنشاء رسالة لإرسالها إلى IoT Central. إذا كانت هذه الخاصية موجودة، فإن IoT Central تستخدمها عندما تعرض بيانات تتبع الاستخدام على لوحات المعلومات والمخططات.
يمكنك تصدير كل من الوقت الذي تم وضعه في قائمة الانتظار والخاصية iothub-creation-time-utc
عند تصدير القياس عن بعد من تطبيق IoT Central.
لمعرفة المزيد حول خصائص الرسالة، راجع خصائص النظام لرسائل IoT Hub من جهاز إلى سحابة.
أفضل الممارسات
توضح هذه التوصيات كيفية تنفيذ الأجهزة للاستفادة من قابلية الوصول العالية المضمنة والتعافي من الكوارث والتحجيم التلقائي في IoT Central.
توفير الأجهزة
مع تغير عدد مراكز IoT في التطبيق الخاص بك، قد يحتاج الجهاز إلى الاتصال بمركز مختلف.
قبل أن يتصل الجهاز ب IoT Central، يجب تسجيله وتوفيره في الخدمات الأساسية. عند إضافة جهاز إلى تطبيق IoT Central، يضيف IoT Central إدخالا إلى مجموعة تسجيل DPS. تظهر المعلومات من مجموعة التسجيل مثل نطاق المعرف ومعرف الجهاز والمفاتيح في واجهة مستخدم IoT Central.
عندما يتصل جهاز بتطبيق IoT Central لأول مرة، توفر DPS الجهاز في أحد مراكز IoT المرتبطة بمجموعة التسجيلات. ثم يرتبط الجهاز بمركز IoT هذا. يستخدم DPS نهج تخصيص لتحميل موازنة التوفير عبر مراكز IoT في التطبيق. تتأكد هذه العملية من أن كل مركز IoT يحتوي على عدد مماثل من الأجهزة المقدمة.
لمعرفة المزيد حول التسجيل والتزويد في IoT Central، راجع دليل اتصال جهاز IoT Central.
معالجة حالات فشل الاتصال
لأغراض التحجيم أو التعافي من الكوارث، قد يقوم IoT Central بتحديث مراكز IoT الأساسية الخاصة به. للحفاظ على الاتصال، يجب أن تعالج التعليمات البرمجية لجهازك أخطاء اتصال معينة عن طريق إنشاء اتصال بنقطة نهاية IoT Hub جديدة.
إذا حصل الجهاز على أي من الأخطاء التالية عند الاتصال، فيجب إعادة تزويد الجهاز ب DPS للحصول على سلسلة الاتصال جديد. تعني هذه الأخطاء أن سلسلة الاتصال لم يعد صالحا:
- نقطة نهاية IoT Hub غير قابلة للوصول.
- الرمز المميز للأمان منتهية الصلاحية.
- تم تعطيل الجهاز في IoT Hub.
إذا حصل الجهاز على أي من الأخطاء التالية عند الاتصال، يجب أن يستخدم استراتيجية التراجع لإعادة محاولة الاتصال. تعني هذه الأخطاء أن سلسلة الاتصال لا تزال صالحة، ولكن الظروف المؤقتة تمنع الجهاز من الاتصال:
- الجهاز المحظور للمشغل.
- خطأ داخلي 500 من الخدمة.
لمعرفة المزيد حول رموز أخطاء الجهاز، راجع استكشاف أخطاء اتصالات الجهاز وإصلاحها.
لمعرفة المزيد حول تنفيذ عمليات إعادة الاتصال التلقائية، راجع إدارة عمليات إعادة توصيل الجهاز لإنشاء تطبيقات مرنة.
حاليا، لا يمكن لأجهزة IoT Edge التنقل بين مراكز IoT.
اختبار قدرات تجاوز الفشل
يتيح لك Azure CLI اختبار قدرات تجاوز الفشل للتعليمات البرمجية لجهازك. يعمل أمر CLI عن طريق تبديل تسجيل جهاز مؤقتا إلى مركز IoT داخلي مختلف. للتحقق من عمل تجاوز فشل الجهاز، تحقق من أن الجهاز لا يزال يرسل بيانات تتبع الاستخدام ويستجيب للأوامر.
لتشغيل اختبار تجاوز الفشل لجهازك، قم بتشغيل الأمر التالي:
az iot central device manual-failover \
--app-id {Application ID of your IoT Central application} \
--device-id {Device ID of the device you're testing} \
--ttl-minutes {How to wait before moving the device back to it's original IoT hub}
تلميح
للعثور على معرف التطبيق، انتقل إلى إدارة التطبيقات > في تطبيق IoT Central.
إذا نجح الأمر، فسترى الإخراج الذي يبدو مثل المثال التالي:
Command group 'iot central device' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
"hubIdentifier": "6bd4...bafa",
"message": "Success! This device is now being failed over. You can check your device'’'s status using 'iot central device registration-info' command. The device will revert to its original hub at Tue, 18 May 2021 11:03:45 GMT. You can choose to failback earlier using device-manual-failback command. Learn more: https://aka.ms/iotc-device-test"
}
لمعرفة المزيد حول أمر CLI، راجع az iot central device manual-failover.
يمكنك الآن التحقق من أن بيانات تتبع الاستخدام من الجهاز لا تزال تصل إلى تطبيق IoT Central.
تلميح
لمشاهدة نموذج التعليمات البرمجية للجهاز الذي يعالج تجاوز الفشل بلغات برمجة مختلفة، راجع عملاء قابلية وصول عالية ل IoT Central.
الخطوات التالية
بعض الخطوات التالية المقترحة هي:
- أكمل البرنامج التعليمي إنشاء تطبيق عميل وتوصيله بتطبيق Azure IoT Central
- مراجعة مفاهيم مصادقة الجهاز في IoT Central
- تعرف على كيفية مراقبة اتصال الجهاز باستخدام Azure CLI
- اقرأ عن أجهزة Azure IoT Edge وAzure IoT Central