البرنامج التعليمي: قم بتوصيل نموذج من تطبيقات أجهزة IoT Plug and Play التي تعمل على Linux أو Windows إلى IoT Hub

يوضح لك هذا البرنامج التعليمي كيفية إنشاء نموذج تطبيق جهاز IoT أجهزة التوصيل و التشغيل، وتوصيله بمركز IoT الخاص بك، واستخدام أداة مستكشف Azure IoT لعرض القياس عن بعد الذي يرسله. يتواجد التطبيق النموذجي مكتوبًا في C ويتم تضمينه في SDK جهاز IoT Azure لـ C. يمكن لمنشئ الحلول استخدام أداة مستكشف Azure IoT لفهم قدرات جهاز IoT Plug and Play دون الحاجة إلى عرض أي رمز للجهاز.

استعراض التعليمة البرمجية

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

قبل المتابعة، تأكد من إعداد بيئتك، بما في ذلك مركز IoT.

يمكنك إكمال هذا البرنامج التعليمي على Linux أو Windows. أوامر shell في هذا البرنامج التعليمي تتبع اصطلاح Linux لفواصل المسار ''،/إذا كنت تتابع على Windows فتأكد من تبديل هذه الفواصل بـ '\'.

تختلف المتطلبات الأساسية تبعًا لنظام التشغيل:

Linux

يفترض هذا البرنامج التعليمي أنك تستخدم Ubuntu Linux. تم اختبار الخطوات في هذا البرنامج التعليمي باستخدام Ubuntu 18.04.

لإكمال هذا البرنامج التعليمي على Linux، قم بتثبيت البرنامج التالي على بيئة Linux المحلية لديك:

تثبيت GCC، Git، cmake، وكافة التبعيات المطلوبة باستخدام الأمر apt-get:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

تحقق من إصدار cmake هو فوق 2.8.12 وإصدار GCC سحابة القطاع الحكومي فوق 4.4.7.

cmake --version
gcc --version

Windows

لإكمال هذا البرنامج التعليمي على Windows، قم بتثبيت البرنامج التالي في بيئة Windows المحلية:

قم بتنزيل الرمز

في هذا البرنامج التعليمي، يمكنك إعداد بيئة تطوير يمكنك استخدامها لاستنساخ وبناء Azure IoT Hub Device C SDK.

افتح موجه الأوامر في الدليل الذي تختاره. نفذ الأمر التالي لاستنساخ مستودع GitHubAzure IoT C SDKs and Libraries في هذا الموقع:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

توقع أن تستغرق هذه العملية دقائق عدة لإكمالها.

بناء التعليمة البرمجية

يمكنك إنشاء التعليمات البرمجية وتشغيلها باستخدام Visual Studio أو cmake في سطر الأوامر.

استخدام Visual Studio

  1. افتح المجلد الجذر من المستودع المستنسخ. بعد بضع ثوان، دعم CMake في Visual Studio بإنشاء كل ما تحتاجه لتشغيل وتصحيح المشروع.

  2. عندما يكون Visual Studio جاهزا، في مستكشف الحلول، انتقل إلى نموذج iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. انقر بزر الماوس الأيمن فوق ملف pnp_simple_thermostat.c وحدد Add Debug Configuration. حدد Default.

  4. Visual Studio يفتح ملف launch.vs.js. تحرير هذا الملف كما هو موضح في القصاصة البرمجية التالية لتعيين متغيرات البيئة المطلوبة. قمت بعمل ملاحظة من معرف النطاق والمفتاح الأساسي للتسجيل عند الانتهاء من إعداد البيئة الخاصة بك لوحدات تشغيل سريع وبرامج تعليمية لدى IoT Plug and Play:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. انقر بزر الماوس الأيمن فوق ملف pnp_simple_thermostat.c وحدد تعيين كعنصر بدء التشغيل.

  6. لتتبع تنفيذ التعليمات البرمجية في Visual Studio، أضف نقطة توقف إلى الدالة main في ملف pnp_simple_thermostat.c .

  7. يمكنك الآن تشغيل وتصحيح العينة من القائمة Debug.

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

استخدام cmake لإنشاء التعليمات البرمجية

يمكنك استخدام الأداة المساعدة سطر الأوامر cmake لإنشاء التعليمات البرمجية:

  1. أنشئ مجلد فرعي cmake في المجلد الجذر من الجهاز SDK المستنسخ ثم انتقل إلى هذا المجلد:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. شغل الأوامر التالية لإنشاء SDK ونماذج:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

تشغيل نموذج الجهاز

في إعداد بيئتك، قمت بإنشاء أربعة متغيرات بيئة لتكوين العينة لاستخدام خدمة توفير الأجهزة (DPS) للاتصال بمركز إنترنت الأشياء الخاص بك:

  • IOTHUB_DEVICE_SECURITY_TYPEمع القيمة DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE مع نطاق معرف DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_IDمع القيمة my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEYمع مفتاح التسجيل الأساسي.
  • IOTHUB_DEVICE_DPS_ENDPOINTمع القيمة global.azure-devices-provisioning.net

لمعرفة المزيد حول تكوين العينة، راجع نموذج readme.

لتشغيل نموذج التطبيق في SDK الذي يحاكي IoT Plug and Play في إرسال القياسات عن بعد إلى مركز IoT:

من مجلد cmake انتقل إلى المجلد الذي يحتوي على الملف القابل للتنفيذ وشغله:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

تلميح

لتتبع تنفيذ التعليمات البرمجية في Visual Studio على Windows، أضف نقطة توقف إلى الدالة mainفي ملف pnp_simple_thermostat.c .

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

استخدام مستكشف إنترنت الأشياء الخاص بـAzure للتحقق من صحة التعليمات البرمجية

بعد بدء نموذج عميل الجهاز، استخدم أداة مستكشف Azure IoT للتحقق من عملها.

  1. افتح مستكشف Azure IoT.

  2. في صفحة IoT hubs ، إذا لم تكن قد أضفت بالفعل اتصالا إلى مركز IoT، فحدد + Add connection. أدخل سلسلة الاتصال لمركز IoT الذي أنشأته مسبقا وحدد حفظ.

  3. في صفحة أجهزة التوصيل و التشغيل الإعدادات IoT، حدد + إضافة > مجلد محلي وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة IoT hubs ، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز IoT.

  5. انقر فوق معرف الجهاز الخاص بالجهاز الذي قمت بإنشائه مسبقا.

  6. توضح القائمة الموجودة على اليسار أنواع المعلومات المختلفة المتاحة للجهاز.

  7. حدد مكونات أجهزة التوصيل و التشغيل IoT لعرض معلومات النموذج لجهازك.

  8. يمكنك عرض المكونات المختلفة للجهاز. المكون الافتراضي وأي مكون إضافي. حدد مكونًا للعمل معه.

  9. حدد صفحة بيانات تتبع الاستخدام ثم حدد البدء لعرض بيانات تتبع الاستخدام التي يرسلها الجهاز لهذا المكون.

  10. حدد صفحة الخصائص (للقراءة فقط) لعرض خصائص القراءة فقط التي تم الإبلاغ عنها لهذا المكون.

  11. حدد صفحة Properties (قابل للكتابة) لعرض الخصائص القابلة للكتابة التي يمكنك تحديثها لهذا المكون.

  12. حدد خاصية باسمها، وأدخل قيمة جديدة لها، وحدد تحديث القيمة المطلوبة.

  13. لمشاهدة القيمة الجديدة تظهر، حدد الزر تحديث .

  14. حدد صفحة الأوامر لعرض جميع الأوامر لهذا المكون.

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

مراجعة الرمز

يطبّق هذا النموذج جهاز منظم حراري بسيط لـ IoT Plug and Play. لا يستخدم نموذج منظم الحرارة مكونات أجهزة التوصيل و التشغيل IoT. إن ملف نموذج لغة تعريف التوأم الرقمي (DTDL) لجهاز المنظم الحراري يحدد بيانات تتبع الاستخدام والخصائص والأوامر التي ينفذها الجهاز.

تستخدم التعليمات البرمجية للجهاز الوظيفة القياسية للاتصال بمركز IoT:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

يرسل الجهاز معرف الطراز الخاص بنموذج DTDL الذي ينفذه في طلب الاتصال. عندما يرسل الجهاز معرف نموذج، يصبح جهاز IoT Plug and Play:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

التعليمة البرمجية التي تُحدّث الخصائص، وتتعامل مع الأوامر، وترسل بيانات تتبع الاستخدام مطابقة للتعليمات البرمجية للجهاز الذي لا يستخدم اصطلاحات IoT Plug and Play.

تستخدم التعليمات البرمجية مكتبة JSON لتحليل كائنات JSON في الحمولات المرسلة من مركز IoT الخاص بك:

// JSON parser
#include "parson.h"

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

في حالة انتهائك من الاطلاع على خطوات البداية السريعة والبرامج التعليمية، فراجع تنظيف الموارد.

يوضح لك هذا البرنامج التعليمي كيفية إنشاء نموذج تطبيق جهاز IoT أجهزة التوصيل و التشغيل، وتوصيله بمركز IoT الخاص بك، واستخدام أداة مستكشف Azure IoT لعرض القياس عن بعد الذي يرسله. تتم كتابة نموذج التطبيق بلغة C# ويتم تضمينه في Azure IoT SDK ل C#. يمكن لمنشئ الحلول استخدام أداة مستكشف إنترنت الأشياء الخاص بـAzure لفهم قدرات جهاز IoT Plug وPlay دون الحاجة إلى عرض أي رمز للجهاز.

استعراض التعليمة البرمجية

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

قبل المتابعة، تأكد من إعداد بيئتك، بما في ذلك مركز IoT.

يمكنك إكمال هذا البرنامج التعليمي على Linux أو Windows. أوامر shell في هذا البرنامج التعليمي تتبع اصطلاح Linux لفواصل المسار ''،/إذا كنت تتابع على Windows فتأكد من تبديل هذه الفواصل بـ '\'.

  • أحدث .NET SDK للنظام الأساسي الخاص بك.
  • Git.

قم بتنزيل الرمز

في هذا البرنامج التعليمي، يمكنك إعداد بيئة تطوير يمكنك استخدامها لاستنساخ وبناء Azure IoT SDK لمستودع C#‎.

افتح موجه أوامر في مجلد من اختيارك. قم بتشغيل الأمر التالي لنسخ مستودع GitHub Microsoft Azure IoT SDK ل C# (.NET) في هذا الموقع:

git clone  https://github.com/Azure/azure-iot-sdk-csharp

بناء التعليمة البرمجية

يمكنك الآن إنشاء العينة وتشغيلها. قم بتشغيل الأوامر التالية لإنشاء العينة:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

تشغيل نموذج الجهاز

لتشغيل النموذج، قم بتشغيل الأمر التالي:

dotnet run

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

استخدام مستكشف إنترنت الأشياء الخاص بـAzure للتحقق من صحة التعليمات البرمجية

بعد بدء نموذج عميل الجهاز، استخدم أداة مستكشف Azure IoT للتحقق من عملها.

  1. افتح مستكشف Azure IoT.

  2. في صفحة IoT hubs ، إذا لم تكن قد أضفت بالفعل اتصالا إلى مركز IoT، فحدد + Add connection. أدخل سلسلة الاتصال لمركز IoT الذي أنشأته مسبقا وحدد حفظ.

  3. في صفحة أجهزة التوصيل و التشغيل الإعدادات IoT، حدد + إضافة > مجلد محلي وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة IoT hubs ، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز IoT.

  5. انقر فوق معرف الجهاز الخاص بالجهاز الذي قمت بإنشائه مسبقا.

  6. توضح القائمة الموجودة على اليسار أنواع المعلومات المختلفة المتاحة للجهاز.

  7. حدد مكونات أجهزة التوصيل و التشغيل IoT لعرض معلومات النموذج لجهازك.

  8. يمكنك عرض المكونات المختلفة للجهاز. المكون الافتراضي وأي مكون إضافي. حدد مكونًا للعمل معه.

  9. حدد صفحة بيانات تتبع الاستخدام ثم حدد البدء لعرض بيانات تتبع الاستخدام التي يرسلها الجهاز لهذا المكون.

  10. حدد صفحة الخصائص (للقراءة فقط) لعرض خصائص القراءة فقط التي تم الإبلاغ عنها لهذا المكون.

  11. حدد صفحة Properties (قابل للكتابة) لعرض الخصائص القابلة للكتابة التي يمكنك تحديثها لهذا المكون.

  12. حدد خاصية باسمها، وأدخل قيمة جديدة لها، وحدد تحديث القيمة المطلوبة.

  13. لمشاهدة القيمة الجديدة تظهر، حدد الزر تحديث .

  14. حدد صفحة الأوامر لعرض جميع الأوامر لهذا المكون.

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

مراجعة الرمز

يطبّق هذا النموذج جهاز منظم حراري بسيط لـ IoT Plug and Play. النموذج الذي تطبقه هذه العينة لا يستخدم المكونات الخاصة بتوصيل وتشغيل جهاز إنترنت الأشياء IoT Plug and Play. إن ملف نموذج لغة تعريف Digital Twins (اختصارها DTDL) لجهاز المنظم الحراري يحدد بيانات قياس تتبع الاستخدام والخصائص والأوامر التي ينفذها الجهاز.

يتصل رمز الجهاز بمركز إنترنت الأشياء باستخدام CreateFromConnectionString الأسلوب القياسي. يرسل الجهاز معرف الطراز الخاص بنموذج DTDL الذي ينفذه في طلب الاتصال. عندما يرسل الجهاز معرف نموذج، يصبح جهاز IoT Plug and Play:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

يُخزن معرف النموذج في التعليمات البرمجية كما هو موضح في القصاصة البرمجية التالية:

private const string ModelId = "dtmi:com:example:Thermostat;1";

التعليمة البرمجية التي تُحدّث الخصائص، وتتعامل مع الأوامر، وترسل بيانات تتبع الاستخدام مطابقة للتعليمات البرمجية للجهاز الذي لا يستخدم اصطلاحات IoT Plug and Play.

يستخدم النموذج مكتبة JSON لتحليل كائنات JSON في الحمولات المرسلة من مركز IoT الخاص بك:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

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

في حالة انتهائك من الاطلاع على خطوات البداية السريعة والبرامج التعليمية، فراجع تنظيف الموارد.

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

استعراض التعليمة البرمجية

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

قبل المتابعة، تأكد من إعداد بيئتك، بما في ذلك مركز IoT.

يمكنك إكمال هذا البرنامج التعليمي على Linux أو Windows. أوامر shell في هذا البرنامج التعليمي تتبع اصطلاح Linux لفواصل المسار ''،/إذا كنت تتابع على Windows فتأكد من تبديل هذه الفواصل بـ '\'.

لإكمال هذا البرنامج التعليمي، قم بتثبيت البرنامج التالي في بيئة التطوير المحلية الخاصة بك:

قم بتنزيل الرمز

في هذا البرنامج التعليمي، يمكنك إعداد بيئة تطوير يمكنك استخدامها لاستنساخ وبناء Azure IoT Hub Device Java SDK.

افتح موجه الأوامر في الدليل الذي تختاره. نفذ الأمر التالي لنسخ مستودع GitHubAzure IoT Java SDKs and Libraries في هذا الموقع:

git clone https://github.com/Azure/azure-iot-sdk-java.git

بناء التعليمة البرمجية

انتقل إلى المجلد الجذر لعينة منظم الحرارة في مستودع Java SDK المستنسخ وقم ببنائه:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

تشغيل نموذج الجهاز

في إعداد بيئتك، قمت بإنشاء أربعة متغيرات بيئة لتكوين العينة لاستخدام خدمة توفير الأجهزة (DPS) للاتصال بمركز إنترنت الأشياء الخاص بك:

  • IOTHUB_DEVICE_SECURITY_TYPEمع القيمة DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE مع نطاق معرف DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_IDمع القيمة my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEYمع مفتاح التسجيل الأساسي.
  • IOTHUB_DEVICE_DPS_ENDPOINTمع القيمة global.azure-devices-provisioning.net

لمعرفة المزيد حول تكوين العينة، راجع نموذج readme.

من المجلد /device/iot-device-samples/pnp-device-sample/thermostat-device-sample، قم بتشغيل التطبيق:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

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

استخدام مستكشف إنترنت الأشياء الخاص بـAzure للتحقق من صحة التعليمات البرمجية

بعد بدء نموذج عميل الجهاز، استخدم أداة مستكشف Azure IoT للتحقق من عملها.

  1. افتح مستكشف Azure IoT.

  2. في صفحة IoT hubs ، إذا لم تكن قد أضفت بالفعل اتصالا إلى مركز IoT، فحدد + Add connection. أدخل سلسلة الاتصال لمركز IoT الذي أنشأته مسبقا وحدد حفظ.

  3. في صفحة أجهزة التوصيل و التشغيل الإعدادات IoT، حدد + إضافة > مجلد محلي وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة IoT hubs ، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز IoT.

  5. انقر فوق معرف الجهاز الخاص بالجهاز الذي قمت بإنشائه مسبقا.

  6. توضح القائمة الموجودة على اليسار أنواع المعلومات المختلفة المتاحة للجهاز.

  7. حدد مكونات أجهزة التوصيل و التشغيل IoT لعرض معلومات النموذج لجهازك.

  8. يمكنك عرض المكونات المختلفة للجهاز. المكون الافتراضي وأي مكون إضافي. حدد مكونًا للعمل معه.

  9. حدد صفحة بيانات تتبع الاستخدام ثم حدد البدء لعرض بيانات تتبع الاستخدام التي يرسلها الجهاز لهذا المكون.

  10. حدد صفحة الخصائص (للقراءة فقط) لعرض خصائص القراءة فقط التي تم الإبلاغ عنها لهذا المكون.

  11. حدد صفحة Properties (قابل للكتابة) لعرض الخصائص القابلة للكتابة التي يمكنك تحديثها لهذا المكون.

  12. حدد خاصية باسمها، وأدخل قيمة جديدة لها، وحدد تحديث القيمة المطلوبة.

  13. لمشاهدة القيمة الجديدة تظهر، حدد الزر تحديث .

  14. حدد صفحة الأوامر لعرض جميع الأوامر لهذا المكون.

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

مراجعة الرمز

يطبّق هذا النموذج جهاز منظم حراري بسيط لـ IoT Plug and Play. النموذج الذي تطبقه هذه العينة لا يستخدم المكونات الخاصة بتوصيل وتشغيل جهاز إنترنت الأشياء IoT Plug and Play. إن ملف نموذج لغة تعريف التوأم الرقمي (DTDL) لجهاز المنظم الحراري يحدد بيانات تتبع الاستخدام والخصائص والأوامر التي ينفذها الجهاز.

تستخدم التعليمات البرمجية للجهاز الفئة القياسية DeviceClient للاتصال بمركز IoT. يرسل الجهاز معرف الطراز الخاص بنموذج DTDL الذي ينفذه في طلب الاتصال. عندما يرسل الجهاز معرف نموذج، يصبح جهاز IoT Plug and Play:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

يُخزن معرف النموذج في التعليمات البرمجية كما هو موضح في القصاصة البرمجية التالية:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

التعليمة البرمجية التي تُحدّث الخصائص، وتتعامل مع الأوامر، وترسل بيانات تتبع الاستخدام مطابقة للتعليمات البرمجية للجهاز الذي لا يستخدم اصطلاحات IoT Plug and Play.

يستخدم النموذج مكتبة JSON لتحليل كائنات JSON في الحمولات المرسلة من مركز IoT الخاص بك:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

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

في حالة انتهائك من الاطلاع على خطوات البداية السريعة والبرامج التعليمية، فراجع تنظيف الموارد.

يوضح لك هذا البرنامج التعليمي كيفية إنشاء نموذج تطبيق جهاز IoT أجهزة التوصيل و التشغيل، وتوصيله بمركز IoT الخاص بك، واستخدام أداة مستكشف Azure IoT لعرض القياس عن بعد الذي يرسله. تتم كتابة نموذج التطبيق في Node.js ويتم تضمينه في SDK جهاز إنترنت الأشياء من Azure من أجل Node.js. يمكن لمنشئ الحلول استخدام أداة مستكشف إنترنت الأشياء الخاص بـAzure لفهم قدرات جهاز IoT Plug وPlay دون الحاجة إلى عرض أي رمز للجهاز.

استعراض التعليمة البرمجية

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

قبل المتابعة، تأكد من إعداد بيئتك، بما في ذلك مركز IoT.

يمكنك إكمال هذا البرنامج التعليمي على Linux أو Windows. أوامر shell في هذا البرنامج التعليمي تتبع اصطلاح Linux لفواصل المسار ''،/إذا كنت تتابع على Windows فتأكد من تبديل هذه الفواصل بـ '\'.

لإكمال هذا البرنامج التعليمي، ستحتاج إلى وجود Node.js لجهاز التطوير الخاص بك. يمكنك تنزيل أحدث إصدار موصى به لمنصات متعددة من nodejs.org.

يمكن التحقق من الإصدار الحالي من Node.js على جهاز التطوير باستخدام الأمر التالي:

node --version

قم بتنزيل الرمز

في هذا البرنامج التعليمي، يمكنك إعداد بيئة تطوير يمكنك استخدامها لاستنساخ وبناء Azure IoT Hub Device SDK Node.js.

افتح موجه الأوامر في الدليل الذي تختاره. نفّذ الأمر التالي لاستنساخ مستودع Microsoft Azure IoT SDK Node.js GitHub في هذا الموقع:

git clone https://github.com/Azure/azure-iot-sdk-node

تثبيت المكتبات المطلوبة

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

  1. في النافذة الطرفية المحلية، انتقل إلى مجلد المستودع المستنسخ الخاص بك وانتقل إلى مجلد /azure-iot-sdk-node/device/samples/pnp. ومن ثم شغّل الأمر التالي لتثبيت المكتبات المطلوبة:

    npm install
    

تشغيل نموذج الجهاز

يطبّق هذا النموذج جهاز منظم حراري بسيط لـ IoT Plug and Play. النموذج الذي تطبقه هذه العينة لا يستخدم المكونات الخاصة بتوصيل وتشغيل جهاز إنترنت الأشياء IoT Plug and Play. إن ملف نموذج لغة تعريف التوأم الرقمي (DTDL) لجهاز المنظم الحراري يحدد بيانات تتبع الاستخدام والخصائص والأوامر التي ينفذها الجهاز.

افتح الملف simple_thermostat.js. في هذا الملف، يمكنك مشاهدة كيفية:

  1. استيراد الواجهات المطلوبة.
  2. كتابة معالج تحديث خاصية ومعالج أمر.
  3. التعامل مع ترميمات الخاصية المطلوبة وإرسال القياس والبث عن بعد.
  4. اختياريًّا، توفير الجهاز باستخدام خدمة توفير الجهاز (DPS) من Azure.

في الوظيفة الرئيسية، يمكنك أن ترى كيف يأتي كل ذلك معًا:

  1. إنشاء الجهاز من سلسلة الاتصال أو توفير باستخدام DPS.)
  2. استخدم الخيار modelID لتحديد موديل جهاز التوصيل والتشغيل لإنترنت الأشياء IoT.
  3. تمكين معالج الأمر.
  4. أرسل القياس والبث عن بعد من الجهاز إلى مركزك.
  5. الحصول على الأجهزة التوأم وتحديث الخصائص المبلغ عنها.
  6. تمكين معالج تحديث الخاصية المطلوب.

في إعداد بيئتك، قمت بإنشاء أربعة متغيرات بيئة لتكوين العينة لاستخدام خدمة توفير الأجهزة (DPS) للاتصال بمركز إنترنت الأشياء الخاص بك:

  • IOTHUB_DEVICE_SECURITY_TYPEمع القيمة DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE مع نطاق معرف DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_IDمع القيمة my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEYمع مفتاح التسجيل الأساسي.
  • IOTHUB_DEVICE_DPS_ENDPOINTمع القيمة global.azure-devices-provisioning.net

لمعرفة المزيد حول تكوين العينة، راجع نموذج readme.

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

node pnp_simple_thermostat.js

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

رسائل تأكيد الجهاز

الاحتفاظ بالعينة قيد التشغيل أثناء إكمال الخطوات التالية.

استخدام مستكشف إنترنت الأشياء الخاص بـAzure للتحقق من صحة التعليمات البرمجية

بعد بدء نموذج عميل الجهاز، استخدم أداة مستكشف Azure IoT للتحقق من عملها.

  1. افتح مستكشف Azure IoT.

  2. في صفحة IoT hubs ، إذا لم تكن قد أضفت بالفعل اتصالا إلى مركز IoT، فحدد + Add connection. أدخل سلسلة الاتصال لمركز IoT الذي أنشأته مسبقا وحدد حفظ.

  3. في صفحة أجهزة التوصيل و التشغيل الإعدادات IoT، حدد + إضافة > مجلد محلي وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة IoT hubs ، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز IoT.

  5. انقر فوق معرف الجهاز الخاص بالجهاز الذي قمت بإنشائه مسبقا.

  6. توضح القائمة الموجودة على اليسار أنواع المعلومات المختلفة المتاحة للجهاز.

  7. حدد مكونات أجهزة التوصيل و التشغيل IoT لعرض معلومات النموذج لجهازك.

  8. يمكنك عرض المكونات المختلفة للجهاز. المكون الافتراضي وأي مكون إضافي. حدد مكونًا للعمل معه.

  9. حدد صفحة بيانات تتبع الاستخدام ثم حدد البدء لعرض بيانات تتبع الاستخدام التي يرسلها الجهاز لهذا المكون.

  10. حدد صفحة الخصائص (للقراءة فقط) لعرض خصائص القراءة فقط التي تم الإبلاغ عنها لهذا المكون.

  11. حدد صفحة Properties (قابل للكتابة) لعرض الخصائص القابلة للكتابة التي يمكنك تحديثها لهذا المكون.

  12. حدد خاصية باسمها، وأدخل قيمة جديدة لها، وحدد تحديث القيمة المطلوبة.

  13. لمشاهدة القيمة الجديدة تظهر، حدد الزر تحديث .

  14. حدد صفحة الأوامر لعرض جميع الأوامر لهذا المكون.

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

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

في حالة انتهائك من الاطلاع على خطوات البداية السريعة والبرامج التعليمية، فراجع تنظيف الموارد.

يوضح لك هذا البرنامج التعليمي كيفية إنشاء نموذج تطبيق جهاز IoT أجهزة التوصيل و التشغيل، وتوصيله بمركز IoT الخاص بك، واستخدام أداة مستكشف Azure IoT لعرض القياس عن بعد الذي يرسله. تمت كتابة نموذج التطبيق لـ Python وتم تضمينه في Azure IoT device SDK لـ Python. يمكن لمنشئ الحلول استخدام أداة مستكشف إنترنت الأشياء الخاص بـAzure لفهم قدرات جهاز IoT Plug وPlay دون الحاجة إلى عرض أي رمز للجهاز.

استعراض التعليمة البرمجية

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

قبل المتابعة، تأكد من إعداد بيئتك، بما في ذلك مركز IoT.

لإكمال هذا البرنامج التعليمي، تحتاج إلى تثبيت Python على جهاز التطوير الخاص بك. تحقق من Azure IoT Python SDK لمعرفة متطلبات إصدار Python الحالية. يمكنك التحقق من إصدار Python الخاص بك باستخدام الأمر التالي:

python --version

يمكنك تنزيل أحدث إصدار موصى به لمنصات متعددة من python.org.

في بيئة Python المحلية، قم بتثبيت الحزمة كما يلي:

pip install azure-iot-device

استنساخ مستودع Python SDK IoT:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

تشغيل نموذج الجهاز

يحتوي المجلد azure-iot-sdk-python/samples/pnp على نموذج التعليمات البرمجية لجهاز IoT أجهزة التوصيل و التشغيل. يستخدم هذا البرنامج التعليمي ملف simple_thermostat.py . يستخدم نموذج التعليمات البرمجية هذا جهازًا متوافقًا مع IoT Plug and Play ويستخدم Azure IoT Python Device Client Library.

افتح الملف simple_thermostat.py في محرر نص. لاحظ كيف يقوم بالتالي:

  1. يحدد معرّف نموذج مزدوجًا لجهاز واحد (DTMI) يمثل بشكل فريدThermostat. يجب أن يكون المعرّف المزدوج لجهاز واحد DTMI معروفًا للمستخدم ويختلف وفقًا لسيناريو تطبيق الجهاز. بالنسبة إلى العينة الحالية، يمثل النموذج منظم حرارة يحتوي على القياس عن بعد، والخصائص، والأوامر المرتبطة بمراقبة درجة الحرارة.

  2. لديه وظائف لتعريف تطبيقات معالج الأوامر. اكتب هذه المعالجات لتعريف كيفية استجابة الجهاز لطلبات الأوامر.

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

  4. تعريف دالة وحدة إصغاء لوحة مفاتيح الإدخال للسماح لك بإنهاء التطبيق.

  5. لديه وظيفة رئيسية. الوظيفة الرئيسية:

    1. تستخدم جهاز SDK لإنشاء عميل له والاتصال IoT hub الخاصة بك.

    2. تحديث الخصائص. يعرف targetTemperature نموذج Thermostat و maxTempSinceLastReboot كخاصيتين ل Thermostat. يتم تحديث الخصائص باستخدام patch_twin_reported_properties الأسلوب المحدد على device_client.

    3. بدء الاستماع لطلبات الأوامر باستخدام الدالة execute_command_listener. تعمل الدالة على إعداد "وحدة إصغاء" للاستماع إلى الأوامر القادمة من الخدمة. عند إعداد وحدة الاستماع، فإنك توفر method_nameو user_command_handlerو create_user_response_handler.

      • user_command_handlerتعرف الدالة ما يجب على الجهاز القيام به عند تلقي أمر.
      • تنشئ الدالة create_user_response_handler استجابة لإرسالها إلى مركز إنترنت الأشياء الخاص بك عندما يتم تنفيذ الأمر بنجاح. يمكنك عرض هذه الاستجابة في البوابة.
    4. يبدأ النموذج بإرسال القياس عن بُعد. يتم تعريف pnp_send_telemetry في الملف pnp_methods.py. يستخدم نموذج التعليمات البرمجية حلقة لاستدعاء هذه الدالة كل ثماني ثوانٍ.

    5. يعطّل جميع وحدات الإصغاء والمهام ثم ينهي الحلقة عند الضغط Q أو q.

في إعداد بيئتك، قمت بإنشاء أربعة متغيرات بيئة لتكوين العينة لاستخدام خدمة توفير الأجهزة (DPS) للاتصال بمركز إنترنت الأشياء الخاص بك:

  • IOTHUB_DEVICE_SECURITY_TYPEمع القيمة DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE مع نطاق معرف DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_IDمع القيمة my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEYمع مفتاح التسجيل الأساسي.
  • IOTHUB_DEVICE_DPS_ENDPOINTمع القيمة global.azure-devices-provisioning.net

لمعرفة المزيد حول تكوين العينة، راجع نموذج readme.

بعد أن تعرّفت الآن على التعليمات البرمجية، استخدم الأمر التالي لتشغيل العينة:

python simple_thermostat.py

تشاهد النتائج التالية، التي تشير إلى أن الجهاز يقوم بإرسال بيانات القياس عن بعد إلى لوحة الوصل، وهو الآن جاهز لتلقي الأوامر وتحديثات الخصائص:

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

الاحتفاظ بالعينة قيد التشغيل أثناء إكمال الخطوات التالية.

استخدام مستكشف إنترنت الأشياء الخاص بـAzure للتحقق من صحة التعليمات البرمجية

بعد بدء نموذج عميل الجهاز، استخدم أداة مستكشف Azure IoT للتحقق من عملها.

  1. افتح مستكشف Azure IoT.

  2. في صفحة IoT hubs ، إذا لم تكن قد أضفت بالفعل اتصالا إلى مركز IoT، فحدد + Add connection. أدخل سلسلة الاتصال لمركز IoT الذي أنشأته مسبقا وحدد حفظ.

  3. في صفحة أجهزة التوصيل و التشغيل الإعدادات IoT، حدد + إضافة > مجلد محلي وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة IoT hubs ، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز IoT.

  5. انقر فوق معرف الجهاز الخاص بالجهاز الذي قمت بإنشائه مسبقا.

  6. توضح القائمة الموجودة على اليسار أنواع المعلومات المختلفة المتاحة للجهاز.

  7. حدد مكونات أجهزة التوصيل و التشغيل IoT لعرض معلومات النموذج لجهازك.

  8. يمكنك عرض المكونات المختلفة للجهاز. المكون الافتراضي وأي مكون إضافي. حدد مكونًا للعمل معه.

  9. حدد صفحة بيانات تتبع الاستخدام ثم حدد البدء لعرض بيانات تتبع الاستخدام التي يرسلها الجهاز لهذا المكون.

  10. حدد صفحة الخصائص (للقراءة فقط) لعرض خصائص القراءة فقط التي تم الإبلاغ عنها لهذا المكون.

  11. حدد صفحة Properties (قابل للكتابة) لعرض الخصائص القابلة للكتابة التي يمكنك تحديثها لهذا المكون.

  12. حدد خاصية باسمها، وأدخل قيمة جديدة لها، وحدد تحديث القيمة المطلوبة.

  13. لمشاهدة القيمة الجديدة تظهر، حدد الزر تحديث .

  14. حدد صفحة الأوامر لعرض جميع الأوامر لهذا المكون.

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

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

في حالة انتهائك من الاطلاع على خطوات البداية السريعة والبرامج التعليمية، فراجع تنظيف الموارد.

إذا كنت تقوم بتطوير أجهزة مقيدة، يمكنك استخدام IoT Plug وPlay مع:

تتضمن هذه المقالة ارتباطات وموارد هذه السيناريوهات المقيدة.

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

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

استخدام SDK لـEmbedded C

تقدم SDK لـ Embedded C حلاً خفيف الوزن لتوصيل الأجهزة المقيدة بخدمات Azure IoT، بما في ذلك استخدام اصطلاحات IoT Plug and Play. تتضمن الارتباطات التالية عينات للأجهزة المستندة إلى MCU ولأغراض التعليم وتصحيح الأخطاء.

استخدام جهاز يستند إلى MCU

للحصول على برنامج تعليمي شامل كامل باستخدام SDK لـ Embedded C، وخدمة توفير الجهاز، وIoT Plug and Play على MCU، راجع إعادة تعيين PIC-IoT Wx Development Board للاتصال بـ Azure من خلال خدمة تزويد IoT Hub Device.

عينات تمهيدية

يحتوي SDK لمستودع C Embedded C على عدة نماذج توضح لك كيفية استخدام IoT Plug and Play:

إشعار

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

استخدام Eclipse ThreadX

يتضمن Eclipse ThreadX طبقة خفيفة الوزن تضيف الاتصال الأصلي إلى خدمات سحابة Azure IoT. توفر هذه الطبقة آلية بسيطة لتوصيل الأجهزة المقيدة ب Azure IoT أثناء استخدام الميزات المتقدمة ل Eclipse ThreadX. لمعرفة المزيد، راجع نظرة عامة على Eclipse ThreadX.

سلسلة الأدوات

يتم توفير نماذج Eclipse ThreadX مع أنواع مختلفة من مجموعات IDE وسلسلة الأدوات، مثل:

العينات

يسرد الجدول التالي العينات التي توضح لك كيفية البدء على أجهزة مختلفة باستخدام Eclipse ThreadX وIoT أجهزة التوصيل و التشغيل:

الشركة المصنعة الجهاز العينات
رقاقه ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
إس تي ميكروإلكترونكس 32F746GDISCOVERY IARSTM32Cube
إس تي ميكروإلكترونكس B-L475E-IOT01 GCC/CMakeIARSTM32Cube
إس تي ميكروإلكترونكس B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

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

في هذا البرنامج التعليمي، تعلمت كيفية توصيل جهاز توصيل وتشغيل IoT بمحور IoT. لمعرفة المزيد حول كيفية إنشاء حل يتفاعل مع أجهزة IoT Plug and Play، راجع: