Skip to main content

برمجيات ESP32 لمراقبة الطاقة الشمسية والبطاريات

GizanTech Engineeringفريق البرمجيات الصناعيةUpdated 15 يونيو 2026

تفشل مراقبة الطاقة الشمسية ميدانياً لأسباب بسيطة: انخفاض جهد بسبب حجب الشمس يُفسد الفلاش أثناء الكتابة، أو خطأ CRC في Modbus يُسجَّل كسلسلة بجهد 0V، أو يُغيّر العاكس خرائط السجلّات في تحديث برمجي فتتجمّد لوحة بياناتك بصمت. نكتب برمجيات ESP32/ESP32-S3 تعامل كل قراءة كمشكوك فيها، وكل وصلة كمتقطّعة، وكل خط طاقة كأنه على وشك السقوط.

Challenges specific to Energy & Solar

  • انخفاضات الجهد تُفسد الفلاش أثناء الكتابة

    حين تحجب الغيوم خرج الألواح وينخفض جهد وحدة الشحن، يتعرّض ESP32 لانخفاض الجهد بالضبط أثناء كتابته لسجلّ، فيترك كتابة مبتورة تُعطّل نظام الملفات بالكامل.

  • أخطاء CRC في Modbus تُسجَّل كأصفار حقيقية

    وصلة RS-485 صاخبة بين العاكس ووحدة الشحن تُنتج إخفاقات CRC تسجّلها البرمجيات الساذجة كـ 0A / 0V، فتُزيّف سلسلة ميتة وتُطلق إنذارات تفريغ ليلي كاذبة.

  • خرائط سجلّات العاكس تنحرف بين الإصدارات

    يُعيد الموردون ترتيب سجلّات الاحتفاظ بصمت بين إصدارات برمجيات العاكس، فيبدأ عنوان SoC أو الحالة المُثبّت في الشيفرة بإرجاع قيمة مُقاسة خاطئة دون أي راية خطأ.

  • شحنة البطارية SoC تنحرف دون إعادة معايرة

    عدّ الكولوم على بنك بطاريات رصاصية أو LFP ينحرف ساعات من الخطأ أسبوعياً ما لم تُعِد البرمجيات تثبيت SoC عند هضبة جهد الراحة OCV التي تُبلّغ عنها وحدة الشحن.

  • فجوات الوصلة الخلفية تُضيّع قياسات الليل

    تفقد مواقع الطاقة الشمسية النائية على الشبكة الخلوية أو LoRa الاتصال لساعات، والبرمجيات التي تنشر وتنسى تُسقط نافذة تفريغ البطارية التي يحتاجها المشغّلون للتشخيص بدقّة.

  • الحرارة تُخفّض أداء العقدة قبل الألواح

    صندوق التجميع يبلغ 70°C صيفاً، فيدفع ESP32 إلى خنق حراري وانحراف ساعة يُشوّه طوابع زمن العيّنات وارتباط Wi-Fi تماماً حين يبلغ الحمل ذروته.

How GizanTech solves them

  1. تسجيل آمن ضد فقدان الطاقة. 1. مخزن حلقي للإلحاق فقط في قسم LittleFS مُوزّع التآكل مع CRC لكل سجلّ وكاشف انخفاض الجهد (BOD) مُفعّل، بحيث تُكتشف الكتابة المبتورة وتُهمَل عند الإقلاع، دون تعطيل القسم أبداً.
  2. اكتساب Modbus RTU مُتحقَّق منه. 2. قراءات Modbus RTU مُتحقَّق منها بـ CRC مع إعادة محاولة وحجر صحّي: يُنتج الإطار الفاشل راية NULL/قديمة، لا صفراً مُختلقاً أبداً، وتعيش عوامل القياس لكل سجلّ في إعداد مُؤرشف بإصدارات، لا في الشيفرة.
  3. حماية إصدار خريطة السجلّات. 3. نفحص سجلّ هوية/برمجيات العاكس عند الاتصال ونختار ملف خريطة السجلّات المطابق، مع إطلاق إنذار على خريطة مجهولة بدلاً من إساءة قراءة SoC أو كلمات الحالة بصمت.
  4. تقدير SoC المُثبّت على OCV. 4. عدّ الكولوم مدموجاً مع إعادة تثبيت على جهد الراحة (OCV) عند هضبة العوم، مع منحنيات خاصة بالكيمياء لـ LFP والرصاص، ما يُبقي خطأ SoC محدوداً عبر أسابيع دون إشراف.
  5. وصلة خلفية بالتخزين والإرسال. 5. تخزين وإرسال بطوابع زمنية عبر MQTT بـ QoS 1 مع تراكم على الفلاش، بحيث يُعيد انقطاع خلوي/LoRa لساعات تشغيل منحنى التفريغ الليلي الكامل بمجرد عودة الوصلة.
  6. جدولة واعية بالحرارة وتحديث OTA. 6. قائمة مكوّنات بدرجة حرارة صناعية، وعمل Wi-Fi/TLS مُقيّد بالحرارة الداخلية، وتحديث OTA موقّع بنمط A/B مع تراجع، بحيث تُحدّث عقدة صندوق التجميع النائية بأمان دون أن تُخنَق حرارياً إلى فلاش فاسد.
المعيارالمصدرمعدّل العيّناتالإجراء الآمن خارج النطاقحاجة الاحتفاظ بالبيانات
جهد / تيار سلسلة الألواحADC تماثلي (مقسّم جهد + شنت) أو سجلّ Modbus لوحدة الشحن1 Hzوسم السلسلة كمعطوبة، تثبيت آخر قيمة سليمة، إطلاق إنذار إنتاج منخفض/معدوم؛ لا تسجيل صفر مُختلق أبداًبيانات خام 1 ث متدحرجة 48 س، تجميعات دقيقة 2 سنة لاتجاه التدهور
حالة شحن MPPTسجلّ احتفاظ Modbus لوحدة الشحن (تعداد bulk/absorb/float/fault)0.2 Hzحجر عند فشل CRC / تعداد مجهول، إبقاء الحالة السابقة، إنذار عند العلوق في bulkأحداث تغيّر الحالة محفوظة 5 سنوات؛ تدقيق كامل لانتقالات float
شحنة البطارية SoCعدّ كولوم مدموج مع OCV عند الراحة؛ تحقّق متقاطع من سجلّ وحدة الشحن0.5 Hz داخلياً، إعادة تثبيت عند floatتقييد 0-100%، وسم إذا تجاوز الانحراف عن OCV النطاق، تثبيت قطع SoC المنخفضSoC دقيقة 2 سنة؛ أحداث نافذة التفريغ بالمعدّل الكامل
حالة العاكس / خرج التيار المترددModbus RTU للعاكس (كلمة الحالة، kW، رمز العطل) عبر RS-4850.2 Hzحماية إصدار الخريطة؛ عند بت شبكة/عطل، إنذار فوري والتقاط مخزن ما قبل العطلرموز الأعطال + مخزن حلقي 60 ث لما قبل العطل محفوظة 5 سنوات
حرارة الصندوق / المشتّتمستشعر I2C/1-Wire داخل صندوق التجميع0.1 Hzعند >70°C، خفض دورة عمل العقدة، تأجيل OTA، إنذار قبل الخنقبيانات دقيقة 1 سنة لتحليل الارتباط الحراري
معايير مراقبة الطاقة الشمسية/البطاريات: مصدر الاكتساب، المعدّل، الإجراء الآمن خارج النطاق، ومدة الاحتفاظ

Frequently asked questions

أي وحدات شحن وعاكسات شمسية يمكنكم دمجها؟

أي جهاز يكشف Modbus RTU/TCP أو قياسات تماثلية: Victron وEPEVER وMorningstar وSMA وGrowatt وما شابهها. نبني ملف خريطة سجلّات مُؤرشفاً بإصدارات لكل طراز، بحيث لا تكسر التحديثات البرمجية التي تُعيد ترتيب السجلّات المراقبة بصمت.

كيف تُبقون شحنة البطارية SoC دقيقة دون BMS مخصّص؟

ندمج عدّ الكولوم مع إعادة تثبيت على جهد الدائرة المفتوحة عند هضبة الراحة/العوم باستخدام منحنيات خاصة بالكيمياء لـ LFP والرصاص. هذا يحدّ من الانحراف التراكمي الذي يجمعه تكامل التيار الصرف عبر أسابيع من التشغيل دون إشراف.

ماذا يحدث للبيانات حين يفقد موقع نائٍ الاتصال؟

تُؤرَّخ القياسات بطوابع زمنية وتُكتب إلى تراكم على الفلاش، ثم يُعاد تشغيلها عبر MQTT QoS 1 حين تعود الوصلة الخلوية أو LoRa. تُحفظ نافذة تفريغ البطارية الليلية بالدقّة الكاملة بدلاً من إسقاطها عند فشل النشر.

هل سيُفسد انخفاض جهد في يوم غائم وحدة التسجيل؟

لا. نستخدم مخزناً حلقياً للإلحاق فقط بـ CRC لكل سجلّ على قسم مُوزّع التآكل مع كاشف انخفاض الجهد مُفعّل، بحيث تُكتشف الكتابة المقطوعة بانخفاض الطاقة وتُهمَل عند الإقلاع بدلاً من إفساد نظام الملفات.

هل يمكن تحديث البرمجيات بأمان على مصفوفة نائية دون إشراف؟

نعم. نُرسل OTA موقّعاً بنمط A/B مع تراجع تلقائي، والتحديث مُقيّد بحرارة الصندوق وصحّة الوصلة، بحيث لا تُحدّث عقدة صندوق تجميع بحرارة 70°C أثناء خنق حراري أو اتصال هامشي أبداً.