تحديث البرنامج الثابت عبر الهواء (FUOTA) باستخدام ChirpStack
توضح الخطوات التالية إعداد وتنفيذ تحديثات البرامج الثابتة (FUOTA) لأجهزة LoRaWAN الطرفية باستخدام خادم تطبيقات ChirpStack.
المتطلبات الأساسية
قبل البدء، تأكد من استيفاء المتطلبات الأساسية التالية:
- خادم ChirpStack v4 مُثبّت وقيد التشغيل.
- ملف البرنامج الثابت الجديد بصيغة
.sbin-ملف. - الأجهزة متصلة بخادم ChirpStack.
- تمت تهيئة الفاصل الزمني المتوقع للوصلة الصاعدة (بالثواني) في ملف تعريف الجهاز لأجهزتك وفق مدة سكونها. القيمة الافتراضية هي
300s. تجد مزيدًا من التفاصيل حول إعدادات ملف تعريف الجهاز أدناه. - تحتوي الأجهزة على شحن بطارية كافٍ. نوصي بإجراء FUOTA نهارًا مع توفر ضوء الشمس.
- توجد الأجهزة ضمن نطاق لاسلكي جيد. نوصي بوضع الأجهزة بالقرب من بوابة.
الإعداد
ملف تعريف الجهاز
بالنسبة إلى ملف تعريف الجهاز، المعلمات التالية مهمة:
عام
- المنطقة:
EU868 - إصدار MAC:
LoRaWAN 1.0.4 - إصدار المعلمات الإقليمية:
RP002-1.0.1 - الفاصل الزمني المتوقع للوصلة الصاعدة (بالثواني): مدة سكون الجهاز - القيمة الافتراضية
300s
طبقة التطبيق
- إصدار مزامنة الساعة (TS003):
v1.0.0 - منفذ مزامنة الساعة (TS003):
202 - نقل كتلة البيانات المجزأة (TS004):
v1.0.0 - منفذ نقل كتلة البيانات المجزأة (TS004):
201 - إصدار إعداد البث المتعدد عن بُعد (TS005):
v1.0.0 - منفذ إعداد البث المتعدد عن بُعد (TS005):
200
1. إنشاء عملية نشر FUOTA في ChirpStack
أولًا، يجب إنشاء عملية نشر FUOTA جديدة. يوجد هذا الخيار في تطبيق ChirpStack الذي يوجد فيه جهازك. ينشئ ChirpStack تلقائيًا مجموعة البث المتعدد الخاصة بـ FUOTA.
الإعدادات التالية موصى بها:
- الحد الأقصى لعدد محاولات الإرسال الأحادي:
5 - معدل بيانات البث المتعدد:
4(اعتمادًا على بُعد الأجهزة) - تكرار التجزئة (%):
25% - مهلة البث المتعدد:
4096 s - حجم الجزء (من مضاعفات 8):
192 بايت - الحمولة: البرنامج الثابت الجديد (
.sbin)
2. إضافة الأجهزة إلى عملية النشر
يمكن تحديث جميع الأجهزة الطرفية التي من المفترض أن تستقبل البرنامج الثابت نفسه في الوقت نفسه. في قائمة الأجهزة ضمن التطبيق، يمكن تحديد الأجهزة عبر الزر الجهاز المحدد إلى عملية نشر FUOTA.
3. إضافة البوابات إلى عملية النشر
كما هو الحال مع الأجهزة الطرفية، يجب أيضًا إضافة البوابات المناسبة إلى عملية نشر FUOTA.
4. بدء FUOTA
بعد تهيئة FUOTA وإضافة جميع الأجهزة الطرفية المطلوبة والبوابات المتأثرة إلى عملية نشر FUOTA، يمكن بدء FUOTA.
ملاحظة: تستغرق عملية FUOTA الكاملة نحو ساعتين، وذلك بحسب عدد الأجهزة وقيمة Unicast retry count المضبوطة وقيمة Fragmentation redundancy. وتبلغ المدة التي يكون فيها الجهاز في وضع Class-C (التشغيل الدائم – استقبال حزم FUOTA) افتراضيًا نحو 30–60 دقيقة.
تسلسل FUOTA وحالته
ينفّذ FUOTA في ChirpStack الخطوات التالية، التي يمكن رؤيتها في لوحة معلومات عملية نشر FUOTA:
- إنشاء مجموعة إرسال متعدد
- إضافة الأجهزة إلى مجموعة الإرسال المتعدد
- إضافة البوابات إلى مجموعة الإرسال المتعدد
تُنفَّذ الخطوات من 1 إلى 3 بشكل شبه فوري. وهي توثّق فقط عملية الإعداد الداخلية في ChirpStack.
- إعداد مجموعة الإرسال المتعدد
- إعداد جلسة التجزئة
- إعداد جلسة الإرسال المتعدد
تتعلق الخطوات من 4 إلى 6 بتهيئة الأجهزة. ويحاول ChirpStack تهيئة الأجهزة عبر التنزيل السفلي. وإذا فشلت العملية، يُكرَّر تنزيل التهيئة السفلي المعني بعدد مرات Unicast retry count. وخلال هذه الفترة يعمل الجهاز بشكل طبيعي. يمكن الاطلاع على حالة الأجهزة الفردية في FUOTA فيما يتعلق برسائل الإعداد هذه في علامة تبويب "Devices" ضمن عملية نشر FUOTA.
- Enqueue fragments: في إطار عملية الإعداد الداخلية هذه، تُضاف أجزاء البرمجية الثابتة إلى قائمة انتظار مجموعة الإرسال المتعدد في الوقت المحدد في "Run at".
- Delete multicast group: تُحذف مجموعة الإرسال المتعدد.
- إكمال عملية النشر
يُنفَّذ FUOTA بين الخطوتين 7 و8. وتبقى الأجهزة في وضع Class-C ومستيقظة باستمرار طوال مدة Multicast timeout. وخلال هذه المدة لا ترسل رسائلها العادية، بل تستقبل أجزاء البرمجية الثابتة واحدًا تلو الآخر. لذلك يزداد استهلاك الأجهزة للطاقة خلال هذه الفترة. يجب أن تكون مدة Multicast timeout كبيرة بما يكفي لاستلام جميع أجزاء البرمجية الثابتة ضمن الوقت المحدد. ويحسب إعداد FUOTA Calculate multicast-timeout المدة اللازمة بالاستناد إلى Fragment size أو ملف البرمجية الثابتة الموجود في Payload.
بعد انتهاء مهلة multicast-timeout أو بعد استلام جميع الأجزاء، سيُعاد تشغيل الجهاز، وفي حال نجاح FUOTA سيبدأ العمل بالبرمجية الثابتة الجديدة.
اختياري
يستعلم إعداد FUOTA Fragmentation status request عن حالة التجزئة في وقتين يمكن اختيارهما. ويمكن الاطلاع على النتيجة في علامة تبويب "Devices" ضمن عملية نشر FUOTA.
