البرنامج التعليمي: الاتصال ESPRESSIF ESP32-Azure IoT Kit إلى IoT Hub

في هذا البرنامج التعليمي، يمكنك استخدام البرنامج الوسيط Azure IoT ل FreeRTOS لتوصيل ESPRESSIF ESP32-Azure IoT Kit (من الآن فصاعدا، ESP32 DevKit) ب Azure IoT.

تكمل المهام التالية:

  • تثبيت مجموعة من أدوات التطوير المضمنة لبرمجة ESP32 DevKit
  • إنشاء صورة وميضها على ESP32 DevKit
  • استخدم Azure CLI لإنشاء مركز Azure IoT الذي يتصل به ESP32 DevKit وإدارته
  • استخدم Azure IoT Explorer لتسجيل جهاز باستخدام IoT hub وعرض خصائص الجهاز وعرض القياس عن بُعد للجهاز واستدعاء الأوامر المباشرة على الجهاز

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

  • كمبيوتر يعمل بنظام التشغيل Windows 10 أو Windows 11
  • Git لاستنساخ المستودع
  • الاجهزه
    • ESPRESSIF ESP32-Azure IoT Kit
    • USB 2.0 ذكر بكبل Micro USB ذكر
    • Wi-Fi 2.4 جيجاهرتز
  • اشتراك Azure نشط. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

إعداد بيئة التطوير

تثبيت الأدوات

لإعداد بيئة التطوير الخاصة بك، أولا يمكنك تثبيت بيئة بناء ESPRESSIF ESP-IDF. يتضمن المثبت جميع الأدوات المطلوبة لاستنساخ جهازك وبنيه ووميضه ومراقبته.

لتثبيت أدوات ESP-IDF:

  1. قم بتنزيل وتشغيل مثبت ESP-IDF v5.0 دون اتصال.
  2. عندما يسرد المثبت المكونات المراد تثبيتها، حدد جميع المكونات وأكمل التثبيت.

نسخ المستودع

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

لاستنساخ المستودع، بادر بتنفيذ هذا الأمر:

git clone --recursive  https://github.com/Azure-Samples/iot-middleware-freertos-samples.git

بالنسبة إلى Windows 10 و11، تأكد من تمكين المسارات الطويلة.

  1. لتمكين المسارات الطويلة، راجع تمكين المسارات الطويلة في Windows 10.

  2. في git، قم بتشغيل الأمر التالي في محطة طرفية بأذونات المسؤول:

    git config --system core.longpaths true
    

إنشاء مكونات السحابة

إنشاء مركز IoT

يمكنك استخدام Azure CLI لإنشاء مركز IoT يعالج الأحداث والمراسلة لجهازك.

إنشاء مركز IoT:

  1. قم بتشغيل تطبيق CLI الخاص بك. لتشغيل أوامر CLI فيما تبقى من هذا التشغيل السريع، انسخ بناء جملة الأمر، والصقه في تطبيق CLI الخاص بك، وحرر القيم المتغيرة، واضغط على Enter.

    • إذا كنت تستخدم Cloud Shell، فانقر بزر الماوس الأيمن فوق الارتباط الخاص ب Cloud Shell، وحدد خيار الفتح في علامة تبويب جديدة.
    • إذا كنت تستخدم Azure CLI داخليًا، فابدأ تشغيل تطبيق وحدة تحكم CLI الخاص بك، ثم قم بتسجيل الدخول إلى Azure CLI.
  2. قم بتشغيل «az extension add» لتثبيت أو ترقية ملحق azure-iot إلى الإصدار الحالي.

    az extension add --upgrade --name azure-iot
    
  3. قم بتشغيل أمر az group create لإنشاء مجموعة موارد. يقوم الأمر التالي بإنشاء مجموعة موارد تسمى MyResourceGroup في موقعcentralus.

    إشعار

    يمكنك تعيين موقع بديل اختياريًاlocation. للاطلاع على المواقع المتاحة، قم بتشغيل az account list-locations.

    az group create --name MyResourceGroup --location centralus
    
  4. قم بتشغيل الأمر «az iot hub create» لإنشاء مركز IoT. قد يستغرق إنشاء مركز IoT بضع دقائق.

    YourIotHubName. استبدل هذا العنصر النائب في التعليمات البرمجية بالاسم الذي اخترته لمركز IoT الخاص بك. يجب أن يكون اسم مركز IoT فريدًا بشكل عمومي في Azure. يُستخدم هذا العنصر النائب في بقية هذا التشغيل السريع لتمثيل اسم مركز IoT الفريد الخاص بك.

    --sku F1تقوم المعلمة بإنشاء مركز IoT في الطبقة الحرة. تتمتع مراكز الطبقة الحرة بمجموعة ميزات محدودة وتستخدم لإثبات تطبيقات المفهوم. لمزيد من المعلومات حول مستويات وخصائص وتسعير IoT Hub، راجع «Azure IoT Hub pricing».

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. بعد إنشاء مركز IoT، اعرض الإخراج JSON في وحدة التحكم ونسخ hostName القيمة لاستخدامها في خطوة لاحقة. hostNameتبدو القيمة مثل المثال التالي:

    {Your IoT hub name}.azure-devices.net

تكوين IoT Explorer

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

لإضافة اتصال بمركز IoT:

  1. تثبيت Azure IoT Explorer. هذه الأداة هي أداة مساعدة عبر الأنظمة الأساسية لمراقبة موارد Azure IoT وإدارتها.

  2. في تطبيق CLI الخاص بك، قم بتشغيل الأمر «az iot hub connection-string show» للحصول على سلسلة الاتصال بمركز IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. انسخ سلسلة الاتصال دون أحرف الاقتباس المحيطة.

  4. في Azure IoT Explorer، حدد IoT hubs في القائمة اليسرى.

  5. حدد + Add connection.

  6. الصق ‏‏سلسلة الاتصال في خانة «Connection string».

  7. حدد حفظ.

    لقطة شاشة لإضافة اتصال في IoT Explorer.

إذا نجح الاتصال، يقوم IoT Explorer بالتبديل إلى طريقة عرض «Devices».

لإضافة مستودع النماذج العام:

  1. في IoT Explorer، حدد «Home» للعودة إلى طريقة العرض الرئيسية.

  2. في القائمة اليسرى، حدد «IoT Plug and Play Settings»، ثم حدد «+Add» وحدد «Public repository» من القائمة المنسدلة.

  3. يظهر إدخال لمستودع النموذج العام في https://devicemodels.azure.com.

    لقطة شاشة لإضافة مستودع النموذج العام في IoT Explorer.

  4. حدد حفظ.

تسجيل جهاز

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

لتسجيل جهاز:

  1. من طريقة العرض الرئيسية في IoT Explorer، حدد «IoT hubs».

  2. يجب أن يظهر الاتصال الذي أضفته مسبقًا. حدد «View devices in this hub» أسفل خصائص الاتصال.

  3. حدد + جديد وأدخل معرف جهاز لجهازك؛ على سبيل المثال، mydevice. اترك كافة الخصائص الأخرى كما هي.

  4. حدد إنشاء.

    لقطة شاشة لهوية جهاز Azure IoT Explorer.

  5. استخدم أزرار النسخ لنسخ حقلي معرف الجهاز والمفتاح الأساسي.

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

  • hostName
  • deviceId
  • primaryKey

قم بإعداد الجهاز

لتوصيل ESP32 DevKit ب Azure، يمكنك تعديل إعدادات التكوين، وبناء الصورة، ووميض الصورة إلى الجهاز.

إعداد البيئة

لإطلاق بيئة ESP-IDF:

  1. حدد بدء Windows، وابحث عن ESP-IDF 5.0 CMD وقم بتشغيله.

  2. في ESP-IDF 5.0 CMD، انتقل إلى دليل iot-middleware-freertos-samples الذي نسخته مسبقا.

  3. انتقل إلى دليل مشروع ESP32-Azure IoT Kit demos\projects\ESPRESSIF\aziotkit.

  4. قم بتشغيل الأمر التالي لتشغيل قائمة التكوين:

    idf.py menuconfig
    

أضف تكوينًا

لإضافة تكوين الشبكة اللاسلكية:

  1. في ESP-IDF 5.0 CMD، حدد Azure IoT middleware for FreeRTOS Sample Configuration --->، واضغط على Enter.

  2. قم بتعيين إعدادات التكوين التالية باستخدام بيانات اعتماد الشبكة اللاسلكية المحلية.

    الإعداد القيمة‬
    WiFi SSID {معرف Wi-Fi الخاص بك}
    كلمة مرور WiFi {كلمة مرور Wi-Fi الخاص بك}
  3. حدد Esc للعودة إلى القائمة السابقة.

لإضافة تكوين للاتصال ب Azure IoT Hub:

  1. حدد Azure IoT middleware for FreeRTOS Main Task Configuration --->، واضغط على Enter.

  2. قم بتعيين إعدادات تكوين Azure IoT التالية إلى القيم التي قمت بحفظها بعد إنشاء موارد Azure.

    الإعداد القيمة‬
    Azure IoT Hub FQDN {اسم المضيف}
    معرف جهاز Azure IoT {معرف جهازك}
    Azure IoT Device Symmetric Key {المفتاح الأساسي}

    إشعار

    في الإعداد أسلوب مصادقة Azure IoT، تأكد من تحديد القيمة الافتراضية للمفتاح المتماثل.

  3. حدد Esc للعودة إلى القائمة السابقة.

لحفظ التكوين:

  1. حدد Shift+S لفتح خيارات الحفظ. تتيح لك هذه القائمة حفظ التكوين إلى ملف يسمى skconfig في الدليل الحالي .\aziotkit .
  2. حدد Enter لحفظ التكوين.
  3. حدد Enter لتجاهل رسالة الإقرار.
  4. حدد Q لإنهاء قائمة التكوين.

إنشاء الصورة وميضها

في هذا القسم، يمكنك استخدام أدوات ESP-IDF لإنشاء ووميض ومراقبة ESP32 DevKit أثناء اتصاله ب Azure IoT.

إشعار

في الأوامر التالية في هذا القسم، استخدم مسار إخراج بناء قصير بالقرب من الدليل الجذر. حدد مسار البناء بعد المعلمة -B في كل أمر يتطلب ذلك. يساعد المسار القصير على تجنب مشكلة حالية في أدوات ESPRESSIF ESP-IDF التي يمكن أن تسبب أخطاء مع أسماء مسارات البناء الطويلة. تستخدم الأوامر التالية مسارا محليا C:\espbuild كمثال.

لإنشاء الصورة:

  1. في ESP-IDF 5.0 CMD، من دليل iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit ، قم بتشغيل الأمر التالي لإنشاء الصورة.

    idf.py --no-ccache -B "C:\espbuild" build 
    
  2. بعد اكتمال الإنشاء، تأكد من إنشاء ملف الصورة الثنائية في مسار البناء الذي حددته مسبقا.

    C:\espbuild\azure_iot_freertos_esp32.bin

لوميض الصورة:

  1. في ESP32 DevKit، حدد موقع منفذ Micro USB، الذي تم تمييزه في الصورة التالية:

    صورة للوحة ESP32-Azure IoT Kit.

  2. الاتصال كبل Micro USB إلى منفذ Micro USB على ESP32 DevKit، ثم قم بتوصيله بجهاز الكمبيوتر الخاص بك.

  3. افتح Windows إدارة الأجهزة، واعرض المنافذ لمعرفة منفذ COM الذي يتصل به ESP32 DevKit.

    لقطة شاشة ل Windows إدارة الأجهزة تعرض منفذ COM لجهاز متصل.

  4. في ESP-IDF 5.0 CMD، قم بتشغيل الأمر التالي، واستبدل <العنصر النائب الخاص بمنفذ> Your-COM والأقواس بمنفذ COM الصحيح من الخطوة السابقة. على سبيل المثال، استبدل العنصر النائب ب COM3.

    idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
    
  5. تأكد من اكتمال الإخراج بالنص التالي لميض ناجح:

    Hash of data verified
    
    Leaving...
    Hard resetting via RTS pin...
    Done
    

لتأكيد اتصال الجهاز ب Azure IoT Central:

  1. في ESP-IDF 5.0 CMD، قم بتشغيل الأمر التالي لبدء أداة المراقبة. كما فعلت في أمر سابق، استبدل <العنصر النائب لمنفذ> Your-COM، والأقواس بمنفذ COM المتصل به الجهاز.

    idf.py -B "C:\espbuild" -p <Your-COM-port> monitor
    
  2. تحقق من وجود كتل مكررة من الإخراج مشابهة للمثال التالي. يؤكد هذا الإخراج أن الجهاز يتصل ب Azure IoT ويرسل بيانات تتبع الاستخدام.

    I (50807) AZ IOT: Successfully sent telemetry message
    I (50807) AZ IOT: Attempt to receive publish message from IoT Hub.
    
    I (51057) MQTT: Packet received. ReceivedBytes=2.
    I (51057) MQTT: Ack packet deserialized with result: MQTTSuccess.
    I (51057) MQTT: State record updated. New state=MQTTPublishDone.
    I (51067) AZ IOT: Puback received for packet id: 0x00000008
    I (53067) AZ IOT: Keeping Connection Idle...
    

عرض خصائص الجهاز

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

للوصول إلى مكونات plug and play للجهاز في IoT Explorer:

  1. من عرض الصفحة الرئيسية في IoT Explorer، حدد «IoT hubs»،ثم حدد«View devices in this hub».

  2. حدد الجهاز الخاص بك.

  3. حدد «IoT Plug and Play components».

  4. حدد «Default component». يعرض IoT Explorer مكونات « IoT Plug and Play» التي يتم تنفيذها على جهازك.

    لقطة شاشة للمكون الافتراضي للجهاز في IoT Explorer.

  5. في علامة التبويب «Interface»، اعرض محتوى JSON في وصفطراز الجهاز. يحتوي JSON على تفاصيل التكوين لكل مكون من مكونات IoT Plug and Play في طراز الجهاز.

    تتوافق كل علامة تبويب في IoT Explorer مع أحد مكونات IoT التوصيل والتشغيل في طراز الجهاز.

    علامة التبويب نوع Name ‏‏الوصف
    الواجهة الواجهة Espressif ESP32 Azure IoT Kit مثال على نموذج الجهاز ل ESP32 DevKit
    خصائص (قابلة للكتابة) الخاصية telemetryFrequencySecs الفاصل الزمني الذي يرسله جهاز القياس عن بُعد
    Commands الأمر ToggleLed1 تشغيل أو إيقاف تشغيل الصمام الثنائي الباعث للضوء
    Commands الأمر ToggleLed2 تشغيل أو إيقاف تشغيل الصمام الثنائي الباعث للضوء
    Commands الأمر DisplayText عرض النص المرسل على شاشة الجهاز

لعرض خصائص الجهاز وتحريرها باستخدام Azure IoT Explorer:

  1. حدد علامة التبويب «Properties (read-only)». يعرض الفاصل الزمني المُرسل من القياس عن بُعد.

  2. telemetryFrequencySecs غير القيمة إلى 5، ثم حدد تحديث القيمة المطلوبة. يستخدم جهازك الآن هذه الفترة الزمنية لإرسال القياس عن بُعد.

    لقطة شاشة لإعداد الفاصل الزمني لبيانات تتبع الاستخدام على الجهاز في IoT Explorer.

  3. IoT Explorer يستجيب بإخطار.

لاستخدام Azure CLI لعرض خصائص الجهاز:

  1. في وحدة تحكم CLI، قم بتشغيل الأمر az iot hub device-twin show .

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. فحص خصائص الجهاز في إخراج وحدة التحكم.

تلميح

يمكنك أيضا استخدام Azure IoT Explorer لعرض خصائص الجهاز. في جزء التنقل الأيمن، حدد Device twin.

اعرض القياس عن بُعد

باستخدام Azure IoT Explorer، يمكنك عرض تدفق القياس عن بُعد من جهازك إلى السحابة. اختياريا، يمكنك القيام بنفس المهمة باستخدام Azure CLI.

لعرض القياس عن بُعد في Azure IoT Explorer:

  1. من جزء مكونات «IoT Plug and Play» (المكون الافتراضي) لجهازك في IoT Explorer، حدد علامة التبويب «Telemetry». تأكد من تعيين استخدام مركز الحدث المدمج إلى نعم.

  2. حدد بدء.

  3. عرض القياس عن بُعد حيث يرسل الجهاز رسائل إلى السحابة.

    لقطة شاشة لبيانات تتبع استخدام الجهاز في IoT Explorer.

  4. حدد خانة الاختيار «Show modeled events» لعرض الأحداث بتنسيق البيانات المحدد من خلال طراز الجهاز.

    لقطة شاشة لأحداث القياس عن بعد النموذجية في IoT Explorer.

  5. حدد "Stop" لإنهاء تلقي الأحداث.

لاستخدام Azure CLI لعرض القياس عن بُعد للجهاز:

  1. تشغيل أمر «az iot hub monitor-events». استخدم الأسماء المُنشأة سابقًا في Azure IoT للجهاز ومركز IoT.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. عرض الإخراج JSON في وحدة التحكم.

    {
        "event": {
            "origin": "mydevice",
            "module": "",
            "interface": "dtmi:azureiot:devkit:freertos:Esp32AzureIotKit;1",
            "component": "",
            "payload": "{\"temperature\":28.6,\"humidity\":25.1,\"light\":116.66,\"pressure\":-33.69,\"altitude\":8764.9,\"magnetometerX\":1627,\"magnetometerY\":28373,\"magnetometerZ\":4232,\"pitch\":6,\"roll\":0,\"accelerometerX\":-1,\"accelerometerY\":0,\"accelerometerZ\":9}"
        }
    }
    
  3. حدد CTRL + C لإنهاء المراقبة.

استدعاء أسلوب مباشر على الجهاز

يمكنك أيضًا استخدام Azure IoT Explorer لاستدعاء أسلوب مباشر استخدمته في جهازك. تحمل الأساليب المباشرة اسمًا ويمكن أن تتضمن البيانات الأساسية لـ JSON واتصالاً يمكن تكوينه ومهلة الأسلوب. في هذا القسم، تقوم باستدعاء أسلوب يقوم بتشغيل أو إيقاف تشغيل الصمام الثنائي الباعث للضوء. اختياريا، يمكنك القيام بنفس المهمة باستخدام Azure CLI.

لاستدعاء الأسلوب في Azure IoT Explorer:

  1. من جزء مكونات «IoT Plug and Play» (المكون الافتراضي) لجهازك في IoT Explorer، حدد علامة التبويب «Commands».

  2. بالنسبة للأمر ToggleLed1 ، حدد Send command. يتم تشغيل LED على ESP32 DevKit أو إيقاف تشغيله. يجب أن تشاهد أيضا إعلاما في IoT Explorer.

    لقطة شاشة لاستدعاء أسلوب في IoT Explorer.

  3. بالنسبة للأمر DisplayText، أدخل بعض النص في حقل المحتوى.

  4. حدد «Send command». يتم عرض النص على شاشة ESP32 DevKit.

لاستخدام Azure CLI لاستدعاء الأسلوب:

  1. تشغيل أمر «az iot hub invoke-device-method»، وتحديد اسم وحمولة الأسلوب. لهذا الأسلوب، تعيين method-payload إلى true يعني تبديل LED إلى عكس حالته الحالية.

    az iot hub invoke-device-method --device-id mydevice --method-name ToggleLed2 --method-payload true --hub-name {YourIoTHubName}
    

    تعرض وحدة التحكم CLI حالة استدعاء الأسلوب الخاص بك على الجهاز، حيث 200 تشير إلى النجاح.

    {
      "payload": {},
      "status": 200
    } 
    
  2. تحقق من جهازك لتأكيد حالة الصمام الثنائي الباعث للضوء.

استكشاف الأخطاء وإصلاحها وتصحيحها

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

لتصحيح التطبيق، راجع تصحيح الأخطاء باستخدام Visual Studio Code.

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

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

هام

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

لحذف مجموعة موارد حسب الاسم:

  1. تشغيل الأمر az group delete. يزيل هذا الأمر مجموعة الموارد و مركز IoT وتسجيل الجهاز الذي قمت بإنشائه.

    az group delete --name MyResourceGroup
    
  2. تشغيل الأمر az group delete لتأكيد حذف مجموعة الموارد.

    az group list
    

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

في هذا البرنامج التعليمي، قمت بإنشاء صورة مخصصة تحتوي على البرنامج الوسيط Azure IoT لنموذج التعليمات البرمجية FreeRTOS، ثم قمت بوميض الصورة إلى جهاز ESP32 DevKit. لقد قمت بتوصيل ESP32 DevKit ب Azure IoT Hub، وقمت بتنفيذ مهام مثل عرض القياس عن بعد وأساليب الاتصال على الجهاز.

كخطوة تالية، استكشف المقالة التالية لمعرفة المزيد حول خيارات التطوير المضمنة.