البرنامج التعليمي: تحديد نوع جهاز بوابة IoT جديد في تطبيق Azure IoT Central

في هذا البرنامج التعليمي، يمكنك إنشاء قالب جهاز بوابة Smart Building. يتضمن جهاز بوابة Smart Building ارتباطات مع أجهزة انتقال البيانات من الخادم الأخرى.

رسم تخطيطي يوضح العلاقة بين جهاز البوابة وأجهزة انتقال البيانات من الخادم الخاصة به.

يمكن لجهاز البوابة أيضا:

  • إرسال بيانات تتبع الاستخدام الخاص بها، مثل درجة الحرارة.
  • الاستجابة إلى تحديثات الخاصية القابلة للكتابة التي قام بإنشائها أحد المشغلين. على سبيل المثال، يمكن للمشغل تغيير الفاصل الزمني لإرسال بيانات تتبع الاستخدام.
  • الاستجابة للأوامر، مثل إعادة تشغيل الجهاز.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء قوالب أجهزة انتقال البيانات من الخادم
  • إنشاء قالب جهاز بوابة
  • نشر قالب الجهاز
  • إنشاء أجهزة المحاكاة

المتطلبات الأساسية

لإكمال الخطوات في هذا البرنامج التعليمي، تحتاج إلى:

إنشاء قوالب أجهزة انتقال البيانات من الخادم

يستخدم هذا البرنامج التعليمي قوالب الأجهزة لجهاز أداة استشعار مؤقتة لHobo MX-100 وRS40 Occupancy Sensor لإنشاء أجهزة محاكاة انتقال البيانات من الخادم.

لإنشاء قالب جهاز لجهاز أداة استشعار مؤقتة من نوع البدء Hobo MX-100:

  1. في الجزء الأيمن، حدد "Device Templates". ثم حدد "‎+ New" لبدء إضافة القالب.

  2. مرر لأسفل حتى تتمكن من رؤية الإطار المتجانب لجهاز أداة الاستشعار المؤقتة لHobo MX-100. حدد الإطار المتجانب ثم حدد التالي: مراجعة.

  3. في صفحة المراجعة، حدد "Create" لإضافة قالب الجهاز إلى التطبيق.

لإنشاء قالب جهاز خاص بجهاز استشعار الإشغال RS40 قم بما يأتي:

  1. في الجزء الأيمن، حدد "Device Templates". ثم حدد "‎+ New" لبدء إضافة القالب.

  2. مرر لأسفل حتى تتمكن من رؤية الإطار المتجانب لجهاز استشعار الإشغال ل Rigado RS40. حدد الإطار المتجانب ثم حدد التالي: مراجعة.

  3. في صفحة المراجعة، حدد "Create" لإضافة قالب الجهاز إلى التطبيق.

لديك الآن قوالب جهاز لنوعي جهاز انتقال البيانات من الخادم:

لقطة شاشة تعرض قوالب جهاز انتقال البيانات من الخادم.

إنشاء قالب جهاز بوابة

في هذا البرنامج التعليمي، يمكنك إنشاء قالب جهاز لجهاز بوابة من البداية. ستستخدم هذا القالب لاحقاً لإنشاء جهاز بوابة للمحاكاة في التطبيق.

لإضافة قالب جهاز لبوابة جديدة إلى التطبيق، قم بما يأتي:

  1. في الجزء الأيمن، حدد "Device Templates". ثم حدد "‎+ New" لبدء إضافة القالب.

  2. في صفحة تحديد نوع القالب، حدد واجهة "IoT Device"، ثم حدد "Next: Customize".

  3. في صفحة تخصيص الجهاز، حدد خانة الاختيار "This is a gateway device".

  4. أدخل Smart Building gateway device بصفته اسم القالب ثم حدد "Next: Review".

  5. في صفحة مراجعة+ إنشاء حدد إنشاء.

  6. في صفحة إنشاء نموذج، حدد واجهة "Custom model".

  7. حدد "‎+ Add capability" لإضافة إمكانية.

  8. أدخل Send Data بصفته اسم العرض، ثم حدد "Property" بصفتها نوع الإمكانية.

  9. حدد منطقي كنوع المخطط، وقم بتعيين قابل للكتابة عليه، ثم حدد حفظ.

إضافة العلاقات

بعد ذلك ستقوم بإضافة علاقات إلى القوالب الخاصة بقوالب جهاز انتقال البيانات من الخادم:

  1. في قالب "Smart Building gateway device" حدد "Relationships".

  2. حدد ‎+ Add relationship. أدخل أداة الاستشعار البيئية كاسم العرض، وحدد Hobo MX-100 كهدف.

  3. حدد ‎+ Add relationship مرة أخرى. أدخل Occupancy Sensor بصفته اسم العرض، وحدد "RS40 Occupancy Sensor" بصفته الهدف.

  4. حدد حفظ.

لقطة شاشة تعرض علاقات البوابة.

إضافة خصائص السحابة

يمكن أن يتضمن قالب جهاز البوابة خصائص سحابة. لا توجد خصائص السحابة إلا في تطبيق IoT Central، ولا يتم إرسالها أبداً إلى جهاز ما أو استلامها منه.

لإضافة خصائص السحابة إلى قالب "Smart Building gateway device".

  1. في قالب جهاز بوابة Smart Building، حدد نموذج جهاز بوابة Smart Building.

  2. استخدم المعلومات الموجودة في الجدول التالي لإضافة خاصيتين للسحابة إلى قالب جهاز البوابة.

    ‏‫اسم العرض‬ نوع القدرة النوع الدلالي مخطط
    تاريخ آخر خدمة خاصية السحابة بلا التاريخ
    اسم العميل خاصية السحابة بلا السلسلة‬
  3. حدد حفظ.

إنشاء طرق العرض

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

  • نماذج لعرض خصائص الجهاز والسحابة وتحريرها.
  • طرق عرض لتصور الأجهزة.

لإنشاء طرق العرض الافتراضية لقالب Smart Building gateway device:

  1. في قالب "Smart Building gateway device" حدد "Views".

  2. حدد واجهة "Generate default views" وتأكد من تحديد كل الخيارات.

  3. حدد "Generate default dashboard view(s)".

نشر قالب الجهاز

قبل أن تتمكن من إنشاء جهاز بوابة للمحاكاة، أو توصيل جهاز بوابة حقيقي، ستحتاج إلى نشر قالب جهازك.

لنشر قالب جهاز البوابة، قم بما يأتي:

  1. حدد قالب "Smart Building gateway device" من صفحة قوالب الأجهزة.

  2. حدد نشر.

  3. في مربع الحوار "Publish a Device Template" اختر "Publish".

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

لمعرفة المزيد حول تعديل قالب جهاز بعد نشره، راجع تحرير قالب جهاز موجود.

إنشاء أجهزة المحاكاة

يستخدم هذا البرنامج التعليمي أجهزة المحاكاة الخاصة بانتقال البيانات من الخادم وجهاز بوابة للمحاكاة.

لإنشاء جهاز بوابة للمحاكاة، قم بما يأتي:

  1. في صفحة الأجهزة، حدد Smart Building gateway device في قائمة قوالب الأجهزة.

  2. حدد ‎+ New لبدء إضافة جهاز جديد.

  3. احتفظ بمعرّف الجهازواسم الجهاز اللذين تم إنشاؤهما. تأكد من أن مفتاح المحاكاة هو نعم. حدد إنشاء.

لإنشاء أجهزة محاكاة انتقال البيانات من الخادم:

  1. في صفحة الأجهزة، حدد "RS40 Occupancy Sensor" في قائمة قوالب الأجهزة.

  2. حدد ‎+ New لبدء إضافة جهاز جديد.

  3. احتفظ بمعرّف الجهازواسم الجهاز اللذين تم إنشاؤهما. تأكد من أن مفتاح المحاكاة هو نعم. حدد إنشاء.

  4. في صفحة الأجهزة ، حدد Hobo MX-100 في قائمة قوالب الأجهزة.

  5. حدد ‎+ New لبدء إضافة جهاز جديد.

  6. احتفظ بمعرّف الجهازواسم الجهاز اللذين تم إنشاؤهما. تأكد من أن مفتاح المحاكاة هو نعم. حدد إنشاء.

لقطة شاشة تعرض أجهزة المحاكاة.

أضف علاقات جهاز انتقال البيانات من الخادم إلى جهاز بوابة

الآن بعد أن أصبحت لديك أجهزة محاكاة في تطبيقك، يمكنك إنشاء العلاقات بين أجهزة انتقال البيانات من الخادم وجهاز البوابة:

  1. في صفحة الأجهزة، حدد Hobo MX-100 في قائمة قوالب الأجهزة، ثم حدد جهاز Hobo MX-100 الذي تمت محاكاته.

  2. حدد "Attach to gateway".

  3. في مربع الحوار "Attach to gateway" حدد قالب "Smart Building gateway device" ثم حدد مثيل محاكاة قمت بإنشائه سابقاً.

  4. حدد إرفاق.

  5. في صفحة الأجهزة، حدد "RS40 Occupancy Sensor" في قائمة قوالب الأجهزة، ثم حدد جهاز المحاكاة "RS40 Occupancy Sensor".

  6. حدد "Attach to gateway".

  7. في مربع الحوار "Attach to gateway" حدد قالب "Smart Building gateway device" ثم حدد مثيل محاكاة قمت بإنشائه سابقاً.

  8. حدد إرفاق.

تم الآن توصيل كلا جهازي المحاكاة لانتقال البيانات من الخادم بجهاز بوابة المحاكاة. إذا قمت بالانتقال إلى عرض "Downstream Devices" لجهاز البوابة، فسيمكنك الاطلاع على الأجهزة ذات الصلة الخاصة بانتقال البيانات من الخادم:

لقطة شاشة تعرض الأجهزة المرفقة بالبوابة.

توصيل أجهزة حقيقية خاصة بانتقال البيانات من الخادم

في البرنامج التعليمي إنشاء تطبيق خاص بالعميل وتوصيله بتطبيق Azure IoT Central، تعرض عينة التعليمة البرمجية كيفية تضمين معرّف الطراز من قالب الجهاز في حمولة التوفير التي يرسلها الجهاز.

عند توصيل جهاز انتقال البيانات من الخادم، يمكنك تعديل حمولة التوفير لتضمين معرف جهاز البوابة. يتيح معرف النموذج ل IoT Central تعيين الجهاز إلى قالب جهاز انتقال البيانات من الخادم الصحيح. يتيح معرّف البوابة لحل IoT Central تأسيس العلاقة بين جهاز انتقال البيانات من الخادم والبوابة الخاصة به. في هذه الحالة، ستظهر حمولة التوفير التي يرسلها الجهاز بتنسيق JSON التالي:

{
  "modelId": "dtmi:rigado:HoboMX100;2",
  "iotcGateway":{
    "iotcGatewayId": "gateway-device-001"
  }
}

يمكن للبوابة تسجيل وتوفير جهاز انتقال البيانات من الخادم، وربط جهاز انتقال البيانات من الخادم بالبوابة على النحو التالي:

var crypto = require('crypto');


var ProvisioningTransport = require('azure-iot-provisioning-device-mqtt').Mqtt;
var SymmetricKeySecurityClient = require('azure-iot-security-symmetric-key').SymmetricKeySecurityClient;
var ProvisioningDeviceClient = require('azure-iot-provisioning-device').ProvisioningDeviceClient;

var provisioningHost = "global.azure-devices-provisioning.net";
var idScope = "<The ID scope from your SAS group enrollment in IoT Central>";
var groupSymmetricKey = "<The primary key from the SAS group enrollment>";
var registrationId = "<The device ID for the downstream device you're creating>";
var modelId = "<The model you're downstream device should use>";
var gatewayId = "<The device ID of your gateway device>";

// Calculate the device key from the group enrollment key
function computeDerivedSymmetricKey(deviceId, masterKey) {
    return crypto.createHmac('SHA256', Buffer.from(masterKey, 'base64'))
        .update(deviceId, 'utf8')
        .digest('base64');
}

var symmetricKey = computeDerivedSymmetricKey(registrationId, groupSymmetricKey);

var provisioningSecurityClient = new SymmetricKeySecurityClient(registrationId, symmetricKey);

var provisioningClient = ProvisioningDeviceClient.create(provisioningHost, idScope, new ProvisioningTransport(), provisioningSecurityClient);

// Use the DPS payload to:
// - specify the device capability model to use.
// - associate the device with a gateway.
var provisioningPayload = {modelId: modelId, iotcGateway: { iotcGatewayId: gatewayId}}

provisioningClient.setProvisioningPayload(provisioningPayload);

provisioningClient.register(function(err, result) {
  if (err) {
    console.log("Error registering device: " + err);
  } else {
    console.log('The registration status is: ' + result.status)
   }
});

تنظيف الموارد

إذا كنت لا تخطط لإكمال أي تشغيل سريع أو برامج تعليمية أخرى في IoT Central، فإنه يمكنك حذف تطبيق IoT Central الخاص بك:

  1. في تطبيق IoT Central، انتقل إلى إدارة التطبيقات>.
  2. حدد Delete ثم قم بتأكيد الإجراء الخاص بك.

الخطوة التالية

بعد ذلك يمكنك تعلم كيفية القيام بما يأتي: