تحويل البيانات خارجيا ل IoT Central

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

  • اجعل تنسيق البيانات متوافقا مع تطبيق IoT Central.
  • تحويل الوحدات.
  • حساب مقاييس جديدة.
  • إثراء البيانات من مصادر أخرى.

توضح هذه المقالة كيفية تحويل بيانات الجهاز خارج IoT Central إما عند الدخول أو الخروج.

إشعار

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

يوضح الرسم التخطيطي التالي ثلاثة مسارات للبيانات التي تتضمن التحويلات:

ملخص مسارات تحويل البيانات لكل من الدخول والخروج

يعرض الجدول التالي ثلاثة أمثلة على أنواع التحويل:

التحويل ‏‏الوصف مثال ملاحظات
تنسيق الرسالة التحويل إلى رسائل JSON أو معالجتها. CSV إلى JSON عند الدخول. يقبل IoT Central رسائل JSON القيمة فقط. لمعرفة المزيد، راجع بيانات تتبع الاستخدام والخصائص وحمولة الأوامر.
حسابات الدالات الرياضية التي يمكن ل Azure Functions تنفيذها . تحويل الوحدة من فهرنهايت إلى مئوية. التحويل باستخدام نمط الخروج للاستفادة من دخول الجهاز القابل للتطوير من خلال الاتصال المباشر ب IoT Central. يتيح لك تحويل البيانات استخدام ميزات IoT Central مثل المرئيات والوظائف.
إثراء الرسائل لم يتم العثور على عمليات الإثراء من مصادر البيانات الخارجية في خصائص الجهاز أو بيانات تتبع الاستخدام. لمعرفة المزيد حول عمليات الإثراء الداخلية، راجع تصدير بيانات IoT إلى الوجهات السحابية باستخدام Blob Storage. أضف معلومات الطقس إلى الرسائل باستخدام بيانات الموقع من الأجهزة. التحويل باستخدام نمط الخروج للاستفادة من دخول الجهاز القابل للتطوير من خلال الاتصال المباشر ب IoT Central.

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

لإكمال الخطوات الواردة في هذا الدليل الإرشادي، تحتاج إلى:

تحويل البيانات عند الدخول

لتحويل بيانات الجهاز عند الدخول، هناك خياران:

  • IoT Edge: استخدم وحدة IoT Edge لتحويل البيانات من أجهزة انتقال البيانات من الخادم قبل إرسال البيانات إلى تطبيق IoT Central.

  • جسر جهاز IoT Central: يربط جسر جهاز IoT Central سحب أجهزة IoT الأخرى، مثل Sigfox والجزيئات وشبكة الأشياء ب IoT Central. يستخدم جسر الجهاز وظيفة Azure لإعادة توجيه البيانات ويمكنك تخصيص الدالة لتحويل بيانات الجهاز.

استخدام IoT Edge لتحويل بيانات الجهاز

تحويل البيانات عند الدخول باستخدام IoT Edge

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

  1. إعداد جهاز IoT Edge: قم بتثبيت وتوفير جهاز IoT Edge كبوابة وتوصيل البوابة بتطبيق IoT Central الخاص بك.

  2. الاتصال جهاز انتقال البيانات من الخادم إلى جهاز IoT Edge: الاتصال أجهزة انتقال البيانات من الخادم إلى جهاز IoT Edge وتوفيرها لتطبيق IoT Central الخاص بك.

  3. تحويل بيانات الجهاز في IoT Edge: إنشاء وحدة IoT Edge لتحويل البيانات. انشر الوحدة النمطية إلى جهاز بوابة IoT Edge الذي يقوم بإعادة توجيه بيانات الجهاز المحولة إلى تطبيق IoT Central.

  4. التحقق: إرسال البيانات من جهاز انتقال البيانات من الخادم إلى البوابة والتحقق من وصول بيانات الجهاز المحولة إلى تطبيق IoT Central.

في المثال الموضح في الأقسام التالية، يرسل جهاز انتقال البيانات من الخادم بيانات JSON بالتنسيق التالي إلى جهاز بوابة IoT Edge:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "celsius",
  }
}

يمكنك استخدام وحدة IoT Edge لتحويل البيانات وتحويل قيمة درجة الحرارة من Celsius إلى Fahrenheit قبل إرسالها إلى IoT Central:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "fahrenheit"
  }
}

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

توضح لك الخطوات التالية كيفية إعداد هذا السيناريو وتكوينه:

إنشاء الوحدة النمطية المخصصة

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

  • إنشاء الوحدة النمطية المخصصة.
  • أضف الوحدة النمطية المخصصة إلى سجل حاوية.

يقوم وقت تشغيل IoT Edge بتنزيل وحدات نمطية مخصصة من سجل حاوية مثل سجل حاوية Azure أو Docker Hub. يحتوي Azure Cloud Shell على جميع الأدوات التي تحتاجها لإنشاء سجل حاوية، وبناء الوحدة النمطية، وتحميل الوحدة النمطية إلى السجل:

لإنشاء سجل حاوية:

  1. افتح Azure Cloud Shell وسجل الدخول إلى اشتراك Azure الخاص بك.

  2. حدد Bash shell.

  3. قم بتشغيل الأوامر التالية لإنشاء سجل حاوية Azure:

    REGISTRY_NAME="{your unique container registry name}"
    az group create --name ingress-scenario --location eastus
    az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true
    az acr credential show -n $REGISTRY_NAME
    

    دون ملاحظة عن username القيم و password ، يمكنك استخدامها لاحقا. تحتاج فقط إلى واحدة من كلمات المرور الموضحة في إخراج الأمر.

لإنشاء الوحدة النمطية المخصصة في Azure Cloud Shell:

  1. في Azure Cloud Shell، استنسخ مستودع GitHub الذي يحتوي على التعليمات البرمجية لمصدر الوحدة النمطية:

    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  2. لإنشاء الوحدة النمطية المخصصة، قم بتشغيل الأوامر التالية في Azure Cloud Shell:

    cd iot-central-transform-with-iot-edge/custommodule/transformmodule
    az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .
    

    قد تستغرق الأوامر السابقة عدة دقائق للتشغيل.

إعداد جهاز IoT Edge

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

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

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

  1. احفظ نسخة من بيان النشر إلى جهاز التطوير المحلي: moduledeployment.json.

  2. افتح نسختك المحلية من ملف بيان moduledeployment.json في محرر نص.

  3. ابحث عن registryCredentials القسم واستبدل العناصر النائبة بالقيم التي قمت بتدوينها عند إنشاء سجل حاوية Azure. address تبدو القيمة مثل {your username}.azurecr.io.

  4. ابحث عن settings قسم ل transformmodule. استبدل {your username} بنفس القيمة التي استخدمتها في الخطوة السابقة. ا‏‏حفظ التغييرات.

  5. في تطبيق IoT Central، انتقل إلى صفحة بيانات Edge.

  6. حدد + جديد. أدخل اسما مثل Transformer لبيان التوزيع، ثم قم بتحميل ملف moduledeployment.json الذي قمت بتنزيله مسبقا. يتضمن بيان التوزيع وحدة نمطية مخصصة تسمى transformmodule.

  7. حدد Next ثم Create.

  8. في تطبيق IoT Central، انتقل إلى صفحة قوالب الأجهزة.

  9. حدد + جديد، وحدد Azure IoT Edge، ثم حدد التالي: تخصيص.

  10. أدخل جهاز بوابة IoT Edge كاسم قالب الجهاز. حدد هذا هو جهاز بوابة.

  11. حدد Next: Review، ثم حدد Create.

  12. في صفحة إنشاء نموذج ، حدد نموذج مخصص.

  13. في النموذج، حدد Modules ثم Import modules from manifest. حدد بيان توزيع المحول ثم حدد استيراد.

لا يحدد بيان النشر بيانات تتبع الاستخدام التي ترسلها الوحدة النمطية. لإضافة تعريفات بيانات تتبع الاستخدام إلى قالب الجهاز:

  1. حدد Module transformmodule في قسم Modulesفي قالب جهاز بوابة IoT Edge.

  2. حدد Add capability واستخدم المعلومات الموجودة في الجداول التالية لإضافة نوع بيانات تتبع الاستخدام جديد:

    الإعداد القيمة
    ‏‫اسم العرض‬ الجهاز
    الاسم device
    نوع القدرة القياس عن بعد
    النوع الدلالي بلا
    مخطط ‏‏الكائن

    تعريف الكائن:

    ‏‫اسم العرض‬ الاسم مخطط
    معرف الجهاز deviceId السلسلة‬

    احفظ تغييراتك.

  3. حدد Add capability واستخدم المعلومات الموجودة في الجداول التالية لإضافة نوع بيانات تتبع الاستخدام جديد:

    الإعداد القيمة
    ‏‫اسم العرض‬ Measurements
    الاسم وحدات القياس
    نوع القدرة القياس عن بعد
    النوع الدلالي بلا
    مخطط ‏‏الكائن

    تعريف الكائن:

    ‏‫اسم العرض‬ الاسم مخطط
    درجة الحرارة درجة الحرارة مزدوج
    الضغط الضغط مزدوج
    الرطوبة الرطوبة مزدوج
    المقياس‬ نطاق السلسلة‬

    احفظ تغييراتك.

  4. في النموذج، حدد العلاقات. لا تحدد العلاقات في الوحدة النمطية transformmodule .

  5. حدد إضافة علاقة.

  6. أدخل مستشعر انتقال البيانات من الخادم كاسم العرض، وأداة استشعار كاسم، وحدد أي كهدف. حدد حفظ.

  7. حدد نشر لنشر قالب الجهاز.

لتسجيل جهاز بوابة في IoT Central:

  1. في تطبيق IoT Central، انتقل إلى صفحة الأجهزة .

  2. حدد جهاز بوابة IoT Edge وحدد + جديد. أدخل جهاز بوابة IoT Edge كاسم الجهاز، وأدخل gateway-01 كمعرف الجهاز، وتأكد من تحديد جهاز بوابة IoT Edge كقالب الجهاز ولم يتم تحديد No ك محاكاة لهذا الجهاز؟. حدد Transformer كبيان الحافة. حدد إنشاء.

  3. في قائمة الأجهزة، انقر فوق جهاز بوابة IoT Edge، ثم حدد الاتصال.

  4. دون ملاحظة عن نطاق المعرف ومعرف الجهاز وقيم المفتاح الأساسي لجهاز بوابة IoT Edge. يمكنك استخدامها لاحقا.

لتسجيل جهاز انتقال البيانات من الخادم في IoT Central:

  1. في تطبيق IoT Central، انتقل إلى صفحة الأجهزة .

  2. لا تحدد قالب جهاز. حدد + جديد. أدخل انتقال البيانات من الخادم 01 كاسم الجهاز، وأدخل انتقال البيانات من الخادم-01 كمعرف الجهاز، وتأكد من أن قالب الجهاز غير محدد ولم يتم تحديد "لا " ك "محاكاة لهذا الجهاز؟". حدد إنشاء.

  3. في قائمة الأجهزة، انقر فوق جهاز انتقال البيانات من الخادم 01 ، ثم حدد إدارة إرفاق الجهاز > بالبوابة.

  4. في مربع الحوار إرفاق ببوابة ، حدد قالب جهاز بوابة IoT Edge، ومثيل جهاز جهاز بوابة IoT Edge. حدد إرفاق.

  5. على جهاز انتقال البيانات من الخادم 01، حدد الاتصال.

  6. دون ملاحظة عن نطاق المعرف ومعرف الجهاز وقيم المفتاح الأساسي لجهاز انتقال البيانات من الخادم 01. يمكنك استخدامها لاحقا.

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

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

الحقل القيمة
مجموعة الموارد ingress-scenario
بوابة بادئة تسمية DNS اسم DNS فريد لهذا الجهاز مثل <your name>edgegateway
بادئة تسمية DNS انتقال البيانات من الخادم اسم DNS فريد لهذا الجهاز مثل <your name>downstream
معرف النطاق نطاق المعرف الذي قمت بتدوينه مسبقا
بوابة IoT Edge لمعرف الجهاز gateway-01
بوابة مفتاح الجهاز IoT Edge قيمة المفتاح الأساسي التي دونتها مسبقا
نوع المصادقة كلمة المرور
مسؤول كلمة المرور أو المفتاح اختيارك لكلمة المرور لحساب AzureUser على كلا الجهازين الظاهريين.

نشر على زر Azure

حدد Review + Create، ثم حدد Create. يستغرق الأمر بضع دقائق لإنشاء الأجهزة الظاهرية في مجموعة موارد سيناريو الدخول.

للتحقق من تشغيل جهاز بوابة IoT Edge بشكل صحيح:

  1. افتح تطبيق IoT Central. ثم انتقل إلى جهاز بوابة IoT Edge على قائمة الأجهزة في صفحة الأجهزة .

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

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

لإنشاء شهادات العرض التوضيحي وتثبيتها على جهاز البوابة:

  1. استخدم SSH للاتصال بالجهاز الظاهري لجهاز البوابة وتسجيل الدخول إليه. يمكنك العثور على اسم DNS لهذا الجهاز الظاهري في مدخل Microsoft Azure. انتقل إلى الجهاز الظاهري edgegateway في مجموعة موارد سيناريو الدخول.

    تلميح

    قد تحتاج إلى فتح المنفذ 22 للوصول إلى SSH على كل من أجهزتك الظاهرية قبل أن تتمكن من استخدام SSH للاتصال من جهازك المحلي أو Azure Cloud Shell.

  2. قم بتشغيل الأوامر التالية لاستنساخ مستودع IoT Edge وإنشاء شهادات العرض التوضيحي:

    # Clone the repo
    cd ~
    git clone https://github.com/Azure/iotedge.git
    
    # Generate the demo certificates
    mkdir certs
    cd certs
    cp ~/iotedge/tools/CACertificates/*.cnf .
    cp ~/iotedge/tools/CACertificates/certGen.sh .
    ./certGen.sh create_root_and_intermediate
    ./certGen.sh create_edge_device_ca_certificate "mycacert"
    

    بعد تشغيل الأوامر السابقة، تصبح الملفات التالية جاهزة للاستخدام في الخطوات التالية:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem - شهادة المرجع المصدق الجذر المستخدمة لإنشاء جميع الشهادات التجريبية الأخرى لاختبار سيناريو IoT Edge.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem - شهادة المرجع المصدق للجهاز المشار إليها من ملف config.yaml . في سيناريو البوابة، شهادة المرجع المصدق هذه هي الطريقة التي يتحقق بها جهاز IoT Edge من هويته إلى أجهزة انتقال البيانات من الخادم.
    • ~/certs/private/iot-edge-device-mycacert.key.pem - المفتاح الخاص المقترن بشهادة المرجع المصدق للجهاز.

    لمعرفة المزيد حول هذه الشهادات التجريبية، راجع إنشاء شهادات تجريبية لاختبار ميزات جهاز IoT Edge.

  3. افتح ملف config.toml في محرر نص. على سبيل المثال:

    sudo nano /etc/aziot/config.toml
    
  4. إلغاء التعليق وتعديل إعدادات الشهادة كما يلي:

    trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem"
    
    ...
    
    [edge_ca]
    cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem"
    pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
    

    يفترض المثال السابق أنك سجلت الدخول ك AzureUser وأنشأت جهاز CA مصدق عليه يسمى "mycacert".

  5. احفظ التغييرات وقم بتشغيل الأمر التالي للتحقق من صحة ملف config.toml :

    sudo iotedge check
    
  6. أعد تشغيل وقت تشغيل IoT Edge:

    sudo iotedge config apply
    

إذا بدأ وقت تشغيل IoT Edge بنجاح بعد تغييراتك، تتغير حالة الوحدات النمطية $edgeAgent $edgeHub إلى قيد التشغيل. يمكنك مشاهدة قيم الحالة هذه في صفحة الوحدات النمطية لجهاز البوابة في IoT Central.

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

الاتصال جهاز انتقال البيانات من الخادم إلى جهاز IoT Edge

لتوصيل جهاز انتقال البيانات من الخادم بجهاز بوابة IoT Edge:

  1. استخدم SSH للاتصال بالجهاز الظاهري لجهاز انتقال البيانات من الخادم وتسجيل الدخول إليه. يمكنك العثور على اسم DNS لهذا الجهاز الظاهري في مدخل Microsoft Azure. انتقل إلى الجهاز الظاهري لجهاز طرفي في مجموعة موارد سيناريو الدخول.

    تلميح

    قد تحتاج إلى فتح المنفذ 22 للوصول إلى SSH على كل من أجهزتك الظاهرية قبل أن تتمكن من استخدام SSH للاتصال من جهازك المحلي أو Azure Cloud Shell.

  2. لاستنساخ مستودع GitHub مع التعليمات البرمجية المصدر لنموذج جهاز انتقال البيانات من الخادم، قم بتشغيل الأمر التالي:

    cd ~
    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  3. لنسخ الشهادة المطلوبة من جهاز البوابة، قم بتشغيل الأوامر التالية scp . يستخدم هذا scp الأمر اسم edgegateway المضيف لتعريف الجهاز الظاهري للبوابة. تتم مطالبتك بكلمة المرور الخاصة بك:

    cd ~/iot-central-transform-with-iot-edge
    scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
    
  4. انتقل إلى المجلد leafdevice وقم بتثبيت الحزم المطلوبة. ثم قم بتشغيل البرامج النصية build و start لتوفير الجهاز وتوصيله بالبوابة:

    cd ~/iot-central-transform-with-iot-edge/leafdevice
    sudo apt update
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install nodejs
    npm install
    npm run-script build
    npm run-script start
    

    أثناء sudo apt-get install nodejs الأوامر، قد يطلب منك السماح بالتثبيتات: اضغط Y إذا طلب منك ذلك.

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

    Registering device downstream-01 with scope 0ne00284FD9
    Registered device downstream-01.
    Connecting device downstream-01
    Connected device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    

للتبسيط، توفر التعليمات البرمجية لجهاز انتقال البيانات من الخادم الجهاز في IoT Central. عادة ما تتصل أجهزة انتقال البيانات من الخادم من خلال بوابة لأنها لا يمكنها الاتصال بالإنترنت وبالتالي لا يمكنها الاتصال بنقطة نهاية خدمة توفير الأجهزة. لمعرفة المزيد، راجع كيفية توصيل الأجهزة من خلال بوابة IoT Edge الشفافة.

تحقق

للتحقق من تشغيل السيناريو، انتقل إلى جهاز بوابة IoT Edge في IoT Central:

لقطة شاشة تعرض البيانات المحولة على صفحة الأجهزة.

  • حدد Modules. تحقق من تشغيل وحدات IoT Edge الثلاث $edgeAgent $edgeHub و transformmodule.

  • حدد بيانات أولية. تبدو بيانات تتبع الاستخدام في عمود الجهاز كما يلي:

    {"deviceId":"downstream-01"}
    

    تبدو بيانات القياس عن بعد في عمود القياسات كما يلي:

    {"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"farenheit"}
    

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

تحويل البيانات عند الخروج

يمكنك توصيل أجهزتك ب IoT Central، وتصدير بيانات الجهاز إلى محرك حساب لتحويلها، ثم إرسال البيانات المحولة مرة أخرى إلى IoT Central لإدارة الجهاز وتحليله. على سبيل المثال:

  • ترسل أجهزتك بيانات الموقع إلى IoT Central.
  • يصدر IoT Central البيانات إلى محرك حساب يعزز بيانات الموقع بمعلومات الطقس.
  • يرسل محرك الحوسبة البيانات المحسنة مرة أخرى إلى IoT Central.

يمكنك استخدام جسر جهاز IoT Central كمحرك حساب لتحويل البيانات المصدرة من IoT Central.

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

استخدام جسر جهاز IoT Central لتحويل بيانات الجهاز

تحويل البيانات عند الخروج باستخدام IoT Edge

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

  1. إعداد محرك الحوسبة: إنشاء جسر جهاز IoT Central ليكون بمثابة محرك حساب لتحويل البيانات.

  2. تحويل بيانات الجهاز في جسر الجهاز: تحويل البيانات في جسر الجهاز عن طريق تعديل رمز وظيفة جسر الجهاز لحالة استخدام تحويل البيانات.

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

  4. تحقق: الاتصال جهازك إلى تطبيق IoT Central وتحقق من بيانات الجهاز الخام والبيانات المحولة في IoT Central.

في المثال الموضح في الأقسام التالية، يرسل الجهاز بيانات CSV بالتنسيق التالي إلى جهاز بوابة IoT Edge:

"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"

يمكنك استخدام جسر الجهاز لتحويل بيانات الجهاز من خلال:

  • تغيير وحدة درجة الحرارة من درجة مئوية إلى فهرنهايت.
  • إثراء بيانات الجهاز ببيانات الطقس التي تم سحبها من خدمة Open Weather لقيم خطوط الطول والعرض.

ثم يرسل جسر الجهاز البيانات المحولة إلى IoT Central بالتنسيق التالي:

{
  "temp": <temperature in degrees F>,
  "humidity": <humidity>,
  "lat": <latitude>,
  "lon": <logitude>,
  "weather": {
    "weather_temp": <temperature at lat/lon>,
    "weather_humidity": <humidity at lat/lon>,
    "weather_pressure": <pressure at lat/lon>,
    "weather_windspeed": <wind speed at lat/lon>,
    "weather_clouds": <cloud cover at lat/lon>,
    "weather_uvi": <UVI at lat/lon>
  }
}

توضح لك الخطوات التالية كيفية إعداد هذا السيناريو وتكوينه:

استرداد إعدادات اتصال IoT Central

قبل إعداد هذا السيناريو، تحتاج إلى الحصول على بعض إعدادات الاتصال من تطبيق IoT Central:

  1. سجل الدخول إلى تطبيق IoT Central.

  2. انتقل إلى أذونات > مجموعات اتصال الجهاز.

  3. دون ملاحظة عن نطاق المعرف. يمكنك استخدام هذه القيمة لاحقا.

  4. حدد مجموعة تسجيل أجهزة SaS-IoT. دون ملاحظة عن المفتاح الأساسي توقيع الوصول المشترك. يمكنك استخدام هذه القيمة لاحقا.

إعداد محرك حساب

يستخدم هذا السيناريو نفس توزيع Azure Functions مثل جسر جهاز IoT Central. لنشر جسر الجهاز، حدد الزر Deploy to Azure الموضح بعد الجدول التالي. استخدم المعلومات الموجودة في الجدول لإكمال نموذج النشر المخصص:

الحقل القيمة
مجموعة الموارد إنشاء مجموعة موارد جديدة تسمى egress-scenario
المنطقة حدد أقرب منطقة إليك.
معرف النطاق استخدم نطاق المعرف الذي قمت بتدوينه مسبقا.
مفتاح SAS المركزي ل IoT استخدم المفتاح الأساسي لتوقيع الوصول المشترك لمجموعة تسجيل SaS-IoT-Devices . لقد دونت هذه القيمة مسبقا.

نشر في Azure.

حدد Review + Create، ثم حدد Create. يستغرق الأمر بضع دقائق لإنشاء دالة Azure والموارد ذات الصلة في مجموعة موارد سيناريو الخروج.

تحويل بيانات الجهاز في جسر الجهاز

لتكوين جسر الجهاز لتحويل بيانات الجهاز المصدرة:

  1. الحصول على مفتاح واجهة برمجة تطبيقات التطبيق من خدمة Open Weather. الحساب مجاني مع استخدام محدود للخدمة. لإنشاء مفتاح واجهة برمجة تطبيقات تطبيق، أنشئ حسابا في مدخل خدمة Open Weather واتبع الإرشادات. يمكنك استخدام مفتاح Open Weather API لاحقا.

  2. في مدخل Microsoft Azure، انتقل إلى Function App في مجموعة موارد سيناريو الخروج.

  3. في جزء التنقل الأيمن، في أدوات التطوير، حدد محرر خدمة التطبيقات (معاينة).

  4. حدد Go → لفتح صفحة App Service Editor . قم بإجراء التغييرات التالية:

    1. افتح الملف wwwroot/IoTCIntegration/index.js . استبدل كافة التعليمات البرمجية الموجودة في هذا الملف بالتعليمات البرمجية في index.js.

    2. في index.js الجديد، قم بتحديث openWeatherAppId الملف المتغير باستخدام مفتاح Open Weather API الذي حصلت عليه مسبقا.

      const openWeatherAppId = '<Your Open Weather API Key>'
      
    3. أضف خاصية رسالة إلى البيانات المرسلة بواسطة الدالة إلى IoT Central. يستخدم IoT Central هذه الخاصية لمنع تصدير البيانات المحولة. لإجراء هذا التغيير، افتح الملف wwwroot/IoTCIntegration/lib/engine.js . حدد موقع التعليمة البرمجية التالية:

      if (timestamp) {
        message.properties.add('iothub-creation-time-utc', timestamp);
      }
      

      أضف التعليمات البرمجية التالية بعد التعليمات البرمجية في القصاصة البرمجية السابقة:

      // add a message property that we can look for in data export to not re-compute computed telemetry
      message.properties.add('computed', true);
      

      كمرجع، يمكنك عرض مثال مكتمل لملف engine.js .

  5. في محرر خدمة التطبيقات، حدد وحدة التحكم في التنقل الأيمن. قم بتشغيل الأوامر التالية لتثبيت الحزم المطلوبة:

    cd IoTCIntegration
    npm install
    

    قد يستغرق الأمر بضع دقائق لتشغيله.

  6. ارجع إلى صفحة نظرة عامة على دالة Azure ثم أعد تشغيل الدالة:

    إعادة تشغيل الدالة

  7. حدد Functions في التنقل الأيمن. ثم حدد IoTCIntegration. حدد Code + Test.

  8. دون ملاحظة عن عنوان URL للدالة، فأنت بحاجة إلى هذه القيمة لاحقا:

    الحصول على عنوان URL للدالة

تمكين تدفق البيانات من IoT Central إلى جسر الجهاز

يصف هذا القسم كيفية إعداد تطبيق Azure IoT Central.

أولا، احفظ ملف طراز الجهاز إلى جهازك المحلي.

لإضافة قالب جهاز إلى تطبيق IoT Central، انتقل إلى تطبيق IoT Central ثم:

  1. سجل الدخول إلى تطبيق IoT Central وانتقل إلى صفحة Device templates .

  2. حدد + New، وحدد IoT Device، وحدد Next: Customize، وأدخل Compute model كاسم القالب. حدد «Next: Review». وبعد ذلك، حدد إنشاء.

  3. حدد استيراد نموذج واستعرض للوصول إلى ملف model.json الذي قمت بتنزيله مسبقا.

  4. بعد استيراد النموذج، حدد Publish لنشر قالب جهاز نموذج الحساب.

إعداد تصدير البيانات لإرسال البيانات إلى جسر الجهاز:

  1. في تطبيق IoT Central، حدد تصدير البيانات.

  2. حدد + وجهة جديدة لإنشاء وجهة لاستخدامها مع جسر الجهاز. استدعاء دالة Compute الوجهة، لنوع الوجهةحدد Webhook. بالنسبة إلى عنوان URL رد الاتصال، حدد لصق في عنوان URL للوظيفة الذي دونته مسبقا. اترك التخويل ك No Auth.

  3. ا‏‏حفظ التغييرات.

  4. حدد + تصدير جديد وأنشئ تصدير بيانات يسمى تصدير الحساب.

  5. أضف عامل تصفية لتصدير بيانات الجهاز لقالب الجهاز الذي تستخدمه فقط. حدد + Filter، وحدد item Device template، وحدد عامل التشغيل Equals، وحدد قالب جهاز نموذج الحساب الذي أنشأته.

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

  7. بالنسبة للوجهة، حدد وجهة دالة الحساب التي قمت بإنشائها مسبقا.

  8. ا‏‏حفظ التغييرات. بعد دقيقة أو نحو ذلك، تظهر حالة التصدير على أنها سليمة.

تحقق

تتم كتابة نموذج الجهاز الذي تستخدمه لاختبار السيناريو في Node.js. تأكد من تثبيت Node.js وnpm على جهازك المحلي. إذا كنت لا تريد تثبيت هذه المتطلبات الأساسية، فاستخدم Azure Cloud Shell حيث يتم تثبيتها مسبقا.

لتشغيل نموذج جهاز يختبر السيناريو:

  1. استنساخ مستودع GitHub الذي يحتوي على نموذج التعليمات البرمجية، قم بتشغيل الأمر التالي:

    git clone https://github.com/Azure/iot-central-compute
    
  2. لتوصيل نموذج الجهاز بتطبيق IoT Central، قم بتحرير إعدادات الاتصال في ملف iot-central-compute/device/device.js . استبدل معرف النطاق ومفتاح SAS للمجموعة بالقيم التي دونتها سابقا:

    // These values need to be filled in from your Azure IoT Central application
    //
    const scopeId = "<IoT Central Scope Id value>";
    const groupSasKey = "<IoT Central Group SAS key>";
    //
    

    ا‏‏حفظ التغييرات.

  3. استخدم الأوامر التالية لتثبيت الحزم المطلوبة وتشغيل الجهاز:

    cd ~/iot-central-compute/device
    npm install
    node device.js
    
  4. تبدو نتيجة هذا الأمر مثل الإخراج التالي:

    registration succeeded
    assigned hub=iotc-2bd611b0....azure-devices.net
    deviceId=computeDevice
    Client connected
    send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}]
    send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}]
    send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}]
    send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}]
    send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]
    
  5. في تطبيق IoT Central، انتقل إلى الجهاز المسمى computeDevice. في طريقة عرض البيانات الأولية، هناك دفقان مختلفان لبيانات تتبع الاستخدام يظهران كل خمس ثوان تقريبا. الدفق الذي يحتوي على بيانات غير محسوبة هو بيانات تتبع الاستخدام الأصلية، والتدفق مع البيانات النموذجية هو البيانات التي حولتها الدالة:

    لقطة شاشة تعرض البيانات الأولية الأصلية والمحولة.

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

إذا لم تعد بحاجة إلى موارد Azure التي قمت بإنشائها أثناء اتباع الخطوات الواردة في هذا الدليل، فاحذف مجموعات الموارد في مدخل Microsoft Azure.

مجموعتا الموارد التي استخدمتها في هذا الدليل هما سيناريو الدخول وسيناريو الخروج.

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

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

  • استخدم وحدة IoT Edge لتحويل البيانات من أجهزة انتقال البيانات من الخادم قبل إرسال البيانات إلى تطبيق IoT Central.
  • استخدم Azure Functions لتحويل البيانات خارج IoT Central. في هذا السيناريو، يستخدم IoT Central تصدير بيانات لإرسال البيانات الواردة إلى دالة Azure لتحويلها. ترسل الدالة البيانات المحولة مرة أخرى إلى تطبيق IoT Central.

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