ترتيب أحداث اتصال الجهاز من Azure IoT Hub باستخدام Azure Cosmos DB

تساعدك Azure Event Grid على إنشاء تطبيقات مستندة إلى الحدث ودمج أحداث IoT بسهولة في حلول عملك. ترشدك هذه المقالة خلال إعداد باستخدام Cosmos DB وLogic App وأحداث IoT Hub وRaspberry Pi محاكاة لجمع أحداث الاتصال وقطع الاتصال الخاصة بالجهاز وتخزينها.

من لحظة تشغيل جهازك، يتم تنشيط ترتيب العمليات:

  1. يتم بدء تشغيل جهاز Pi، باستخدام مفتاح جهاز مركز IoT، ثم إيقافه

  2. يلتقط حدث IoT Hub نشاط الجهاز، ثم يرسل طلب HTTP إلى Logic App

  3. يعالج Logic App طلب HTTP استنادا إلى شرط قمت بتعيينه

  4. يسجل Logic App أحداث الاتصال أو قطع الاتصال في مستند جديد في Cosmos DB

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

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

إنشاء تطبيق منطقي

دعونا ننشئ تطبيقا منطقيا ونضيف مشغل Event Grid الذي يراقب مجموعة الموارد لجهازك الظاهري.

إنشاء مورد تطبيق منطقي

  1. في مدخل Azure، حدد +إنشاء مورد، وحدد التكامل ثم تطبيق منطقي.

    لقطة شاشة لكيفية العثور على تطبيق منطقي وتحديده في مدخل Microsoft Azure.

  2. أكمل النموذج لإنشاء Logic App جديد يتضمن:

    • اشتراكك

    • مجموعة الموارد الخاصة بك (أو إنشاء مجموعة جديدة)

    • اسم Logic App فريد في اشتراكك

    • منطقة مركز IoT الخاص بك

    • لا لتمكين تحليلات السجل

    • نوع خطة الاستهلاك

      إشعار

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

    لقطة شاشة لكيفية إنشاء تطبيق منطقي في مدخل Microsoft Azure.

  3. حدد Review + Create لمراجعة التكوين الخاص بك، ثم حدد Create لإنشاء تطبيق المنطق.

  4. لقد أنشأت الآن مورد Azure لتطبيقك المنطقي. بعد أن يوزع Azure تطبيقك المنطقي، حدد انتقال إلى المورد. يوضح لك مصمم تطبيق المنطق قوالب للأنماط الشائعة حتى تتمكن من البدء بشكل أسرع.

  5. في مصمم Logic app، قم بالتمرير حتى ترى قسم Templates ، ثم اختر Blank Logic App بحيث يمكنك إنشاء تطبيق المنطق الخاص بك من البداية.

اختر مشغلاً

المشغل عبارة عن حدث محدد يبدأ تطبيقك المنطقي. لهذا البرنامج التعليمي، المشغل الذي يقوم بتعيين سير العمل يتلقى طلبًا عبر HTTP.

  1. في شريط البحث الخاص بالموصلات والمشغلات، اكتب HTTP ثم اضغط مفتاح Enter.

  2. حدد الطلب عند تلقي طلب HTTP كمشغل.

    لقطة شاشة لكيفية العثور على مشغل طلب HTTP المحدد.

  3. حدد استخدام حمولة عينة لإنشاء مخطط.

    لقطة شاشة لكيفية استخدام حمولة عينة لإنشاء مخطط.

  4. الصق نموذج التعليمات البرمجية JSON التالي في مربع النص، ثم حدد تم.

    يتم استخدام JSON هذا فقط كقالب، لذلك لا تكون القيم الدقيقة مهمة.

    [{
     "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd",
     "topic":
       "/SUBSCRIPTIONS/DEMO5CDD-8DAB-4CF4-9B2F-C22E8A755472/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB",
     "subject": "devices/Demo-Device-1",
     "eventType": "Microsoft.Devices.DeviceConnected",
     "eventTime": "2018-07-03T23:20:11.6921933+00:00",
     "data": {
       "deviceConnectionStateEventInfo": {
         "sequenceNumber":
           "000000000000000001D4132452F67CE200000002000000000000000000000001"
       },
       "hubName": "MYIOTHUB",
       "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e",
       "moduleId": ""
     },
     "dataVersion": "1",
     "metadataVersion": "1"
    }]
    

    لقطة شاشة لحمولة JSON النموذجية التي تم لصقها في مربع النص في Azure.

إنشاء شرط

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

  1. حدد + New step، ثم علامة التبويب Built-in ، ثم ابحث عن عنصر التحكم المسمى Condition وحدده.

  2. في حالتك، قم بتغيير و إلى أو، لأننا نريد التقاط أحداث الاتصال أو أحداث قطع الاتصال في تحليل واحد.

  3. حدد داخل المربع اختيار قيمة ويظهر نافذة منبثقة تعرض المحتوى الديناميكي — الحقول التي يمكن تحديدها.

    • اختر eventType. يتم إغلاق النافذة المنبثقة وترى يتم وضع النص الأساسي في تحديد إخراج من الخطوات السابقة، تلقائيا. حدد Condition لإعادة فتح العبارة الشرطية.

    • الاحتفاظ يساوي القيمة.

    • اكتب Microsoft.Devices.DeviceConnected كقيمة أخيرة لهذا الصف.

    • حدد + إضافة لإضافة صف آخر.

    • يشبه هذا الصف الثاني الصف الأول، باستثناء أننا نبحث عن أحداث قطع الاتصال.

      استخدم eventType، يساوي، وMicrosoft.Devices.DeviceDisconnected لقيم الصف.

      لقطة شاشة لكل شرط بالكامل.

  4. في مربع الحوار إذا كان صحيحاً، انقر فوق إضافة إجراء.

    لقطة شاشة لمربع

  5. ابحث عن Cosmos DB وحدد Azure Cosmos DB — إنشاء مستند أو تحديثه (V3)

    لقطة شاشة للبحث عن Azure Cosmos DB.

  6. ترى لوحة إنشاء مستند أو تحديثه (V3 ). أدخل هذه القيم للحولات:

    اسم حساب Azure Cosmos DB: {Add your account name}

    معرّف قاعدة البيانات: ToDoList

    معرّف المجموعة: Items

    المستند: اختر Current item من قائمة معلمات المحتوى الديناميكي

    تظهر لقطة الشاشة عنصر تنفيذ الإجراء المخزن (V3) مع تحديد

  7. حفظ تطبيق المنطق الخاص بك.

نسخ عنوان URL HTTP

قبل أن تغادر مصمم تطبيقات المنطق، انسخ عنوان URL الذي تنصت إليه تطبيقاتك المنطقية للحصول على مشغّل. يمكنك استخدام URL هذا لتكوين Event Grid.

  1. قم بتوسيع مربع تكوين المشغل عند تلقي طلب HTTP عن طريق تحديده.

  2. انسخ قيمة URL HTTP POST عن طريق تحديد زر النسخ المجاور له.

    لقطة شاشة لمكان العثور على عنوان URL HTTP لنسخه.

  3. احفظ عنوان URL هذا بحيث يمكنك استخدامه في القسم التالي.

تكوين الاشتراك لأحداث مركز IoT

في هذا القسم، تقوم بتكوين مركز IoT الخاص بك لنشر الأحداث بينما تحدث.

  1. في مدخل Microsoft Azure توجه إلى مركز IoT.

  2. حدد Events.

    لقطة شاشة لمكان وجود زر الأحداث في قائمة IoT Hub.

  3. حدد + اشتراك حدث.

    إنشاء اشتراك حدث جديد

  4. تعبئة تفاصيل اشتراك الحدث: قم بتوفير اسم وصفي وحدد مخطط شبكة الأحداث كمخطط الحدث.

  5. إنشاء اسم موضوع النظام لمورد مركز IoT الخاص بك.

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

    تعيين أنواع الأحداث للبحث عنها

  7. بالنسبة إلى تفاصيل نقطة النهاية، حدد نوع نقطة النهاية كـ إخطار على الويب وانقر فوق "تحديد نقطة النهاية" والصِق عنوان URL الذي نسخته من تطبيقك المنطقي وأكّد التحديد.

    تحديد عنوان URL لنقطة النهاية

  8. يجب أن يبدو النموذج الآن مشابهاً للمثال التالي:

    لقطة شاشة للنموذج لإنشاء اشتراك حدث.

    حدد Create لحفظ اشتراك الحدث.

    هام

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

    لقطة شاشة لخطأ IoT Hub يقول إنه ليس في حالة نشطة.

تشغيل الجهاز ومراقبة الأحداث

الآن وقد أعددت اشتراك الحدث الخاص بك، دعنا نختبره عن طريق توصيل جهاز.

تسجيل جهاز في مركز IoT

  1. من لوحة وصل IoT خاصتك، حدد Devices.

  2. حدد + إضافة جهاز في أعلى الجزء.

  3. في Device ID، أدخل Demo-Device-1.

  4. حدد حفظ.

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

  5. انقر فوق الجهاز مرة أخرى؛ الآن ستتم تعبئة سلاسل الاتصال والمفاتيح. انسخ سلسلة الاتصال الأساسية واحفظها لاستخدامها لاحقا.

    لقطة شاشة لموقع سلسلة الاتصال الأساسية لجهازك.

بدء تشغيل محاكي Raspberry Pi

دعونا نستخدم محاكي Raspberry Pi على الويب لمحاكاة اتصال الجهاز.

بدء تشغيل محاكي Raspberry Pi

تشغيل عينة تطبيق على محاكي Raspberry Pi على الويب

سيؤدي هذا التطبيق النموذجي إلى تشغيل حدث متصل بالجهاز.

  1. في منطقة الترميز، استبدل العنصر النائب في السطر 15 بسلسلة اتصال جهاز مركز Azure IoT التي حفظتها في نهاية القسم السابق.

    لقطة شاشة لمكان إضافة سلسلة الاتصال الأساسي في البرنامج النصي Raspberry Pi.

  2. شغّل التطبيق عن طريق تحديد تشغيل.

    يُفترض أن يظهر لك شيئاً مشابهاً للإخراج التالي ويعرض بيانات المستشعر والرسائل المُرسلة من مركز IoT الخاص بك.

    لقطة شاشة لما يمكن توقعه في وحدة تحكم الإخراج عند تشغيل Raspberry Pi.

  3. يمكنك التحقق من صفحة نظرة عامة على Logic App للتحقق مما إذا كان المنطق الخاص بك يتم تشغيله. سيقول نجاح أو فشل. يتيح لك التحقق هنا معرفة حالة تطبيق المنطق الخاص بك إذا كانت هناك حاجة إلى استكشاف الأخطاء وإصلاحها. توقع تأخيرا من 15 إلى 30 ثانية من وقت تشغيل المشغل. إذا كنت بحاجة إلى استكشاف أخطاء تطبيق المنطق وإصلاحها، فاعرض مقالة استكشاف الأخطاء وإصلاحها هذه.

    لقطة شاشة لتحديثات الحالة في صفحة نظرة عامة على تطبيق المنطق.

  4. حدد إيقاف لإيقاف المحاكي، الذي يقوم بتشغيل حدث غير متصل بالجهاز. سيقوم هذا الحدث بتسجيل الدخول إلى صفحة نظرة عامة على Logic App، تماما مثل حدث الاتصال الذي تم تسجيله هناك.

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

مراقبة الأحداث في Azure Cosmos DB

يمكنك مشاهدة نتائج تطبيق المنطق المنفذ في مستند Cosmos DB. يظهر المستند في مجموعة العناصر عند تحديث الصفحة. ينشئ كل حدث حالة اتصال مستندا جديدا تم تعيينه إلى فريد id. تعرض الصورة التالية المستند الذي تم إنشاؤه عند بدء تشغيل الجهاز (متصل). يتم سرد نوع الحدث المتصل في إخراج JSON.

لقطة شاشة لحدث حالة الاتصال الذي تم إنشاؤه حديثا في مجموعة Cosmos DB.

استخدام Azure CLI

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

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

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

تطبيق المنطق

إذا لم ترغب في فقدان العمل على تطبيقك المنطقي، فعطّله بدلاً من حذفه.

  1. انتقل إلى تطبيقك المنطقي.

  2. في شفرة نظرة عامة، حدد حذف أو تعطيل.

    يمكن أن يكون لكل اشتراك مركز IoT مجاني واحد فقط. إذا كنت قد أنشأت مركزاً مجانياً لهذا البرنامج التعليمي، فلن تحتاج إلى حذفه لمنع فرض رسوم.

مركز IoT أو شبكة الأحداث

  1. انتقل إلى IoT Hub الخاص بك.

  2. في شفرة نظرة عامة، حدد حذف.

  3. حتى إذا احتفظت بمركز IoT الخاص بك، فقد ترغب في حذف اشتراك الحدث الذي أنشأته. في مركز IoT الخاص بك، حدد شبكة الأحداث.

  4. حدد اشتراك الحدث الذي تريد إزالته، ثم حدد حذف.

Cosmos DB

لإزالة حساب Azure Cosmos DB من مدخل Microsoft Azure، انتقل إلى المورد وحدد Delete account من شريط القوائم العلوي. راجع الإرشادات المفصلة لـ حذف حساب قاعدة بيانات Azure Cosmos.

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