برنامج تعليمي: تحديث الجهاز Azure IoT Hub باستخدام Raspberry Pi 3 B + صورة مرجعية
يدعم Device Update لـ Azure IoT Hub التحديثات المستندة إلى الصور والقائمة على الحزم والبرامج النصية.
تتيح تحديثات الصور مستوى أعلى من الثقة في الحالة النهائية للجهاز. يكون من الأسهل عادةً تكرار نتائج تحديث الصورة بين بيئة ما قبل الإنتاج وبيئة الإنتاج لأنها لا تشكل نفس التحديات مثل الحزم وتبعياتها. يمكنك أيضًا اعتماد نموذج تجاوز الفشل A / B بسهولة، بسبب طبيعتها الذرية.
يرشدك هذا البرنامج التعليمي خلال الخطوات لإكمال تحديث شامل قائم على الصورة باستخدام Device Update لـIoT Hub على لوحة Raspberry Pi 3 B +.
في هذا البرنامج التعليمي، ستتعلّم كيفية:
- تنزيل صورة.
- أضف علامة إلى جهاز إنترنت الأشياء IoT الخاص بك.
- استورد تحديث.
- استخدم تحديث صورة.
- مراقبة توزيع التحديث.
ملاحظة
تم التحقق من صحة تحديثات الصور في هذا البرنامج التعليمي على لوحة Raspberry Pi B3.
المتطلبات الأساسية
إذا لم تكن قمت بذلك بالفعل، فأنشئ حساب Device Update ومثيل وكون مركز IoT. يحتاج هذا البرنامج التعليمي إلى توصيل الجهاز عبر اتصال ethernet.
قم بتنزيل الملفات في الأصول على صفحة إصدارات GitHub لتحديث الجهاز. يحتوي Tutorial_RaspberryPi.zip على جميع الملفات المطلوبة لبرنامج تعليمي.
إنشاء جهاز في IoT Hub والحصول على سلسلة اتصال
الآن، أضف الجهاز إلى مركز IoT. من داخل مركز Azure IoT، سيتم إنشاء سلسلة اتصال للجهاز.
من مدخل Microsoft Azure، انتقل إلى مركز IoT الخاص بك.
في الجزء الأيسر، حدد Devices. ثم حدد New.
ضمن Device ID، أدخل اسما للجهاز. تأكد من تحديد خانة الاختيار Autogenerate keys.
حدد حفظ. في الصفحة Devices يجب أن يكون الجهاز الذي أنشأته في القائمة.
احصل على سلسلة اتصال الجهاز بالانتقال إلى طريقة عرض الجهاز، وحدد أيقونة النسخ بجوار سلسلة الاتصال الأساسية.
الصق الأحرف المنسوخة في مكان ما لاستخدامها فيما بعد في الخطوات التالية:
هذه السلسلة المنسوخة هي سلسلة اتصالك بالجهاز.
ملاحظة
يستخدم هذا البرنامج التعليمي سلسلة اتصال الجهاز للمصادقة والاتصال ب IoT Hub لتسهيل الإعداد. بالنسبة لسيناريوهات الإنتاج، نوصي باستخدام هوية الوحدة والاستفادة من AIS (خدمة هوية IoT) لتوفير الأجهزة. التعرف على المزيد
إعداد Raspberry Pi
نحن نقدم ملفات الصور والتحديثات الأساسية في الأصول في صفحة إصدارات GitHub لتحديث الجهاز. يحتوي Tutorial_RaspberryPi.zip على جميع الملفات المطلوبة لبرنامج تعليمي. ملف .wic هو الصورة الأساسية التي يمكنك الوميض عليها إلى لوحة Raspberry Pi 3 B+. ملف swUpdate(.swu) والبرنامج النصي المخصص swupdate والبيان هي ملفات التحديث التي يمكنك استيرادها من خلال Device Update ل IoT Hub.
تستخدم هذه الصورة الأساسية بنية Yocto (استنادا إلى إصدار 3.4.4) مع:
- SWUpdate الذي يمكن تحديث القسم المزدوج باستخدام DU
- عامل «تحديث الجهاز»
لمعرفة المزيد حول طبقات Yocto المستخدمة، راجع تحديث الجهاز Yocto GitHub.
يمكنك استخدام أداة وميض نظام التشغيل المفضلة لديك لتثبيت الصورة الأساسية لتحديث الجهاز (adu-base-image) على بطاقة SD التي سيتم استخدامها في جهاز Raspberry Pi 3 B+. فيما يلي إرشادات لاستخدام bmaptool للوميض إلى بطاقة SD.
استخدام bmaptool لاستخدام بطاقة SD
قم بتثبيت الأداة
bmaptool
المساعدة، إذا لم تكن قد فعلت ذلك بالفعل.sudo apt-get install bmap-tools
حدد مسار بطاقة SD في
/dev
. يجب أن يبدو المسار مثل/dev/sd*
أو/dev/mmcblk*
. يمكنك استخدام الأداة المساعدةdmesg
للمساعدة في تحديد المسار الصحيح.قم بإلغاء تحميل جميع الأقسام المثبتة قبل الوميض.
sudo umount /dev/<device>
تأكد من أن لديك أذونات الكتابة إلى الجهاز.
sudo chmod a+rw /dev/<device>
اختياري: للحصول على وميض أسرع، قم بتنزيل ملف bimap وملف الصورة وضعه في نفس الدليل.
فلاش بطاقة SD.
sudo bmaptool copy <path to image> /dev/<device>
يخضع تحديث الجهاز لبرنامج Azure IoT Hub لشروط الترخيص التالية:
اطلع على شروط الترخيص قبل استخدام العامل. يعد تثبيتك واستخدامك قبولاً لهذه الشروط. في حالة عدم موافقتك على شروط الترخيص، فلا تستخدم Device Update لعامل IoT Hub.
تكوين عامل Device Update على Raspberry Pi
تأكد من أن Raspberry Pi3 متصل بالشبكة.
SSH في Raspberry Pi 3 باستخدام الأمر التالي في نافذة PowerShell:
ssh raspberrypi3 -l root
يجب أن تكون ملفات تكوين DU (du-config.json و du-diagnostics-config.json) على الجهاز بحيث يتم تكوين Device Update ل IoT Hub بشكل صحيح.
- لإنشاء الملف أو فتحه
du-config.json
للتحرير باستخدام:
nano /adu/du-config.json
بعد تشغيل الأمر، يجب أن تشاهد محررًا مفتوحًا مع الملف. إذا لم تقم بإنشاء الملف من قبل، فسيكون فارغًا. الآن انسخ محتويات du-config.json أدناه، واستبدل التكوينات المطلوبة لجهازك. ثم استبدل مثال سلسلة الاتصال بسلسلة الجهاز الذي قمت بإنشائه في الخطوات السابقة.
du-config.json
{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "virtual-vacuum-v2", "agents": [ { "name": "main", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": "HostName=<hub_name>.azure-devices.net;DeviceId=<device_id>;SharedAccessKey=<device_key>" }, "manufacturer": "contoso", "model": "virtual-vacuum-v2" } ] }
- بعد الانتهاء من التغييرات، حدد
Ctrl+X
للخروج من المحرر. ثم أدخلy
لحفظ التغييرات.
- لإنشاء الملف أو فتحه
الآن تحتاج إلى إنشاء الملف
du-diagnostics-config.json
باستخدام أوامر مماثلة.- ابدأ بإنشاء الملف أو فتحه
du-diagnostics-config.json
للتحرير باستخدام:
nano /adu/du-diagnostics-config.json
- انسخ محتويات du-diagnostics-config.json المتوفرة أدناه، واستبدل أي تكوينات تختلف عن البنية الافتراضية. يمثل مثال ملف du-diagnostics-config.json مواقع السجل الافتراضية لتحديث الجهاز لـIoT. تحتاج فقط إلى تغيير هذه القيم الافتراضية إذا كان التنفيذ الخاص بك يختلف.
du-diagnostics-config.json
{ "logComponents":[ { "componentName":"adu", "logPath":"/adu/logs/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
- بعد الانتهاء من التغييرات، حدد
Ctrl+X
للخروج من المحرر. ثم أدخلy
لحفظ التغييرات.
- ابدأ بإنشاء الملف أو فتحه
استخدم الأمر التالي لإظهار الملفات الموجودة في الدليل
/adu/
. يجب أن تشاهد كلا ملفي التكوين files.du-diagnostics-config.json للتحرير باستخدام:ls -la /adu/
أعد تشغيل البرنامج الخفي لنظام تحديث الجهاز للتأكد من تطبيق التكوينات. استخدم الأمر التالي داخل المحطة الطرفية التي سجلت الدخول إلى
raspberrypi
:systemctl start deviceupdate-agent
تحقق من أن العامل مباشر باستخدام الأمر التالي:
systemctl status deviceupdate-agent
يجب أن ترى الحالة تظهر على أنها حية وأخضر.
قم بتوصيل الجهاز في Device Update لمركز IoT
في الجزء الأيسر، حدد Devices.
حدد الارتباط باسم جهازك.
في أعلى الصفحة، حدد Device Twin.
ضمن قسم التقارير من خصائص Device Twin، ابحث عن إصدار Linux kernel.
بالنسبة للجهاز الجديد، الذي لم يتلق تحديثًا من Device Update، فإن قيمة DeviceManagement: DeviceInformation: 1.swVersion ستمثل إصدار البرنامج الثابت الذي يتم تشغيله على الجهاز. بعد تطبيق التحديث على الجهاز، سيستخدم Device Update قيمة الخاصية AzureDeviceUpdateCore: ClientMetadata: 4.installedUpdateId لتمثيل إصدار البرنامج الثابت الذي يتم تشغيله على الجهاز.
تحتوي ملفات الصور الأساسية والمحدثة على رقم إصدار في اسم الملف.
adu-<image type>-image-<machine>-<version number>.<extension>
استخدم رقم الإصدار هذا في قسم "استيراد التحديث" لاحقًا.
إضافة علامة مجموعة تحديث الجهاز إلى جهازك
في مدخل Azure، انتقل إلى مركز IoT.
في الجزء الأيمن، ضمن Devices، ابحث عن جهاز IoT وانتقل إلى الجهاز المزدوج أو الوحدة النمطية المزدوجة.
في الوحدة النمطية المزدوجة لوحدة عامل تحديث الجهاز، احذف أي قيم علامة Device Update موجودة عن طريق تعيينها على قيمة خالية. إذا كنت تستخدم هوية الجهاز مع عامل Device Update، فأجري هذه التغييرات على الجهاز المزدوج.
أضف قيمة علامة Device Update الجديدة، كما هو موضح:
"tags": { "ADUGroup": "<CustomTagValue>" }
تظهر لقطة الشاشة هذه القسم حيث يجب إضافة العلامة في التوأم.
أستورد تحديث
قم بتنزيل نموذج بيان البرنامج التعليمي ونموذج التحديث (ملف.swu) ونموذج البرنامج النصي A/B من Tutorial_RaspberryPi.zip ضمن أصول الإصدار لأحدث عامل.
سجّل الدخول إلى مدخل Microsoft Azure وانتقل إلى مركز IoT باستخدام Device Update. في الجزء الأيسر، ضمنAutomatic Device Management، حدد Updates.
حدد علامة تبويب Updates.
حدد + Import New Update.
حدد + Select من موقع تخزين الحاوية. حدد حسابًا موجودًا أو أنشئ حسابًا جديدًا باستخدام + حساب Storage. ثم حدد حاوية موجودة أو أنشئ حاوية جديدة عن طريق استخدام + Container. سيتم استخدام هذه الحاوية لعرض ملفات التحديث الخاصة بك للاستيراد.
ملاحظة
نوصي باستخدام حاوية جديدة في كل مرة تقوم فيها باستيراد تحديث تجنبًا لاستيراد الملفات عن طريق الخطأ من التحديثات السابقة. في حالة عدم استخدام حاوية جديدة، فتأكد من حذف أي ملفات من الحاوية الحالية قبل الانتهاء من هذه الخطوة.
في الحاوية الخاصة بك، حدد Upload وانتقل إلى الملفات التي قمت بتحميلها في الخطوة الأولي. بعد تحديد جميع ملفات التحديث الخاصة بك، حددUpload. ثم حدد الزر Select للعودة إلى صفحة Import update.
توضح لقطة الشاشة هذه خطوة الاستيراد. من المحتمل عدم تطابق أسماء الملفات مع الأسماء المستخدمة في المثال.
في صفحة Import update، راجع الملفات التي سيتم استيرادها. ثم حدد Import update لبدء عملية الاستيراد. بالنسبة إلى البرنامج التعليمي، قم باستيراد نموذج بيان البرنامج التعليمي ونموذج التحديث (ملف swu.) ونموذج البرنامج النصي A/B الذي تم تنزيله مسبقا.
تبدأ عملية الاستيراد وتتغير الشاشة إلى قسم Import History. عندما يشير عمود Status إلى نجاح الاستيراد، حدد العنوان Available updates. يجب أن تشاهد التحديث المستورد في القائمة الآن.
لمزيد من المعلومات حول عملية الاستيراد، راجع استيراد تحديث إلى تحديث الجهاز.
عرض مجموعات الأجهزة
يستخدم تحديث الجهاز مجموعات لتنظيم الأجهزة. يقوم Device Update تلقائيا بفرز الأجهزة في مجموعات استنادا إلى العلامات المعينة وخصائص التوافق الخاصة بها. ينتمي كل جهاز إلى مجموعة واحدة فقط، ولكن يمكن أن تحتوي المجموعات على مجموعات فرعية متعددة لفرز فئات أجهزة مختلفة.
انتقل إلى علامة تبويب Groups و Deployments الموجودة أعلى الصفحة.
عرض قائمة المجموعات ومخطط توافق التحديث. يعرض مخطط توافق التحديث عدد الأجهزة في حالات التوافق المختلفة: على آخر تحديث، وتحديثات جديدة متاحة، وتحديثات قيد التقدم. تعرف على كيفية توافق التحديث.
يجب أن تشاهد مجموعة أجهزة تحتوي على جهاز المحاكاة الذي قمت بإعداده في هذا البرنامج التعليمي جنبا إلى جنب مع أي تحديثات متوفرة للأجهزة في المجموعة الجديدة. في حالة وجود أجهزة لا تلبي متطلبات فئة الجهاز للمجموعة، فإنها تظهر في مجموعة مقابلة غير صالحة. لاستخدام أفضل تحديث متاح للمجموعة الجديدة المعرفة من جانب المستخدم من طريقة العرض هذه، حدد Deploy الموجودة بجوار المجموعة.
لمزيد من المعلومات حول العلامات والمجموعات، راجع إدارة مجموعات الأجهزة.
استخدام تحديث
بعد إنشاء المجموعة، من المفترض أن ترى تحديثا جديدا متاحا لمجموعة أجهزتك مع ارتباط تشعبي للتحديث ضمن Best update. من المحتمل أن تحتاج لإعادة تحديث مرة أخري.
لمزيد من المعلومات حول التوافق، راجع توافق تحديث الجهاز.
حدد المجموعة المستهدفة عن طريق تحديد اسم المجموعة. يتم توجيهك إلى تفاصيل المجموعة ضمن Group basics.
لبدء الاستخدام انتقل إلى علامة التبويب Current deployment. ثم حدد ارتباطdeploy بجوار التحديث المطلوب من قسم Available updates. يُرمز إلى أفضل تحديث متاح لمجموعة معينة بـ Best.
رتّب الاستخدام الخاص بك للبدء في الحال أو في المستقبل. ثم حدد "Create".
تلميح
بشكل افتراضي، يكون تاريخ ووقت البدء 24 ساعة من وقتك الحالي. تأكد من تحديد تاريخ ووقت مختلفين في حال كنت تريد أن يبدأ الاستخدام في وقت مبكر.
ضمن تفاصيل Deployment،Status تتحول إلى Active. توضع علامة على التحديث المستخدم(deploying).
اعرض مخطط التوافق للتأكد أن التحديث قيد التقدم الآن.
بعد تحديث جهازك بنجاح، سترى أنه تم تحديث مخطط التوافق وتفاصيل التوزيع لتعكس نفس الشيء.
مراقبة نشر التحديث
حدد علامة تبويب Deployment history في الجزء العلوي من الصفحة.
حدد الارتباط التشعبيالتفاصيل بجوار عملية النشر التي أنشأتها.
حدد تحديث لعرض تفاصيل الحالة الأخيرة.
لقد أكملت الآن تحديثًا ناجحًا للصورة من طرف إلى طرف باستخدام Device Update لـIoT Hub على جهاز Raspberry Pi 3 B +.
تنظيف الموارد
عند عدم الحاجة إلى ذلك، نظّف حساب تحديث الجهاز الخاص بك، على سبيل المثال، IoT hub وIoT device.
الخطوات التالية
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ