البرنامج التعليمي: قم بتوصيل نموذج من تطبيقات أجهزة 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 المحلية لديك:

تثبيت سحابة القطاع الحكومي،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 C SDK.

افتح موجه الأوامر في الدليل الذي تختاره. نفذ الأمر التالي لاستنساخ مستودع GitHub⁧⁩Azure 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 وحدد إضافة تكوين تتبع الأخطاء. حدد 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 IoT للتحقق من صحة التعليمات البرمجية

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

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

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

  3. في صفحة IoT أجهزة التوصيل و التشغيل Settings، حدد + Add > Local folder وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة ⁧⁩مراكز IoT⁧⁩، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز 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 ووصله وتشغيله دون الحاجة إلى عرض أي رمز للجهاز.

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

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

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

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

قم بتنزيل الكود

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

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

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 IoT للتحقق من صحة التعليمات البرمجية

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

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

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

  3. في صفحة IoT أجهزة التوصيل و التشغيل Settings، حدد + Add > Local folder وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

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

  5. انقر فوق ⁧⁩معرف الجهاز⁧⁩ للجهاز الذي أنشأته سابقًا.

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

  7. حدد ⁧⁩مكونات توصيل وتشغيل IoT⁧⁩ لعرض معلومات الطراز لجهازك.

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

  9. حدد صفحة ⁧⁩القياس عن بُعد⁧⁩، ثم حدد ⁧⁩ابدأ⁧⁩ لعرض بيانات القياس عن بُعد التي يرسلها الجهاز لهذا المكون.

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

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

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

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

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

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

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

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

يتصل رمز الجهاز بمركز IoT باستخدام الطريقة القياسية CreateFromConnectionString. يرسل الجهاز معرف الطراز الخاص بنموذج DTDL الذي ينفذه في طلب الاتصال. الجهاز الذي يرسل معرّف النموذج هو جهاز توصيل وتشغيل IoT:

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 لفهم قدرات جهاز IoT Plug and 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 IoT للتحقق من صحة التعليمات البرمجية

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

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

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

  3. في صفحة IoT أجهزة التوصيل و التشغيل Settings، حدد + Add > Local folder وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة ⁧⁩مراكز IoT⁧⁩، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز 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:

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 ووصله وتشغيله دون الحاجة إلى عرض أي رمز للجهاز.

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

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

قبل المتابعة، تأكد من إعداد بيئتك، بما في ذلك مركز 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 . النموذج الذي تطبقه هذه العينة لا يستخدم ⁧⁩المكونات⁧⁩ الخاصة بتوصيل وتشغيل جهاز إنترنت الأشياء 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 IoT للتحقق من صحة التعليمات البرمجية

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

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

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

  3. في صفحة IoT أجهزة التوصيل و التشغيل Settings، حدد + Add > Local folder وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة ⁧⁩مراكز IoT⁧⁩، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز 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 لفهم قدرات جهاز IoT Plug and Play دون الحاجة إلى عرض أي رمز للجهاز.

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

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

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

لإكمال هذا البرنامج التعليمي، تحتاج Python 3.7 على جهاز التطوير الخاص بك. يمكنك تنزيل أحدث إصدار موصى به لمنصات متعددة من python.org. يمكنك التحقق من إصدار Python الخاص بك مع الأمر التالي:

python --version

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

pip install azure-iot-device

استنساخ مستودع Python SDK IoT والتحقق من الماجستير:

git clone 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 IoT للتحقق من صحة التعليمات البرمجية

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

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

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

  3. في صفحة IoT أجهزة التوصيل و التشغيل Settings، حدد + Add > Local folder وحدد مجلد النماذج المحلية حيث حفظت ملفات النموذج.

  4. في صفحة ⁧⁩مراكز IoT⁧⁩، انقر فوق اسم المركز الذي تريد العمل معه. يمكنك مشاهدة قائمة الأجهزة المسجلة في مركز 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 لأغراض تعليمية وتصحيح الأخطاء. في سيناريو الإنتاج، تكون العينات مخصصة للأجهزة المقيدة فقط.

استخدام Azure RTOS

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

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

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

عينات

يسرد الجدول التالي عينات توضح لك كيفية البدء على أجهزة مختلفة باستخدام Azure RTOS وIoT Plug and Play:

الشركة المُصنّعة جهاز عينات
رقاقه 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، راجع: