ترتيب أحداث اتصال الجهاز من 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

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

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

  • حساب Azure Cosmos DB نشط ل NoSQL. إذا لم تكن قد أنشأت حساباً بعد، فراجع إنشاء حساب قاعدة بيانات للاطلاع على معاينة.

  • مجموعة في قاعدة بياناتك. راجع إضافة مجموعة للاطلاع على معاينة. عند إنشاء مجموعتك، استخدم /id لمفتاح القسم.

  • اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فأنشئ اشتراكاً مجاناً قبل البدء.

  • مركز IoT ضمن اشتراك Azure الخاص بك. أنشئ واحدًا باستخدام CLI أو مدخل Azure.

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

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

إنشاء مورد logic app

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

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

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

    • اشتراكك

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

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

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

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

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

      ملاحظة

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

    لقطة شاشة لكيفية إنشاء تطبيق منطقي في مدخل 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. يتم إنشاء هذا الشرط في مصمم تطبيق Logic.

  1. حدد + خطوة جديدة، ثم علامة التبويب مضمنة ، ثم ابحث عن عنصر التحكم المسمى 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

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

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

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

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

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

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

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

  1. في مدخل Azure، انتقل إلى مركز IoT.

  2. حدد Events.

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

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

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

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

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

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

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

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

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

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

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

    حدد ⁧⁩إنشاء⁧⁩ لحفظ اشتراك الحدث.

    هام

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

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

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

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

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

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

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

  3. بالنسبة ⁧⁩لمعرف الجهاز⁧⁩، أدخل ⁧Demo-Device-1⁩ .

  4. حدد "⁧⁩Save⁧⁩".

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

  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 الخاص بك.

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

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

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

Cosmos DB

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

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