كيفية تقليل استهلاك وحدات wifi بمقدار عشر مرات أو أكثر

يوم جيد للجميع !!!

تتناول هذه المقالة بشكل أساسي الوحدة النمطية ESP8266 الشائعة (ESP8285).

في الآونة الأخيرة ، في أحد المنتديات ، سئلت عن بروتوكول ESP-NOW. كنتيجة لذلك ، قررت التحدث عن طرق لتقليل استهلاك أجهزة الاستشعار والمشغلات التي تعمل عبر WiFi ، بما في ذلك ESP8266 ، على وجه الخصوص ، Sonoff.

أولا ، جوهر المشكلة التي يجري حلها.

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

يتم إجراء توصيل البيانات ونقلها دون رقصات خاصة مع الدف على ESP8266 من 1 إلى 4 ثوان. في هذه الحالة ، فإن الاستهلاك الحالي لا يقل عن 70 مللي أمبير.

عند استخدام طاقة البطارية ، مثل مستشعر درجة الحرارة ، يتم استخدام وضع السكون العميق. يستيقظ الجهاز بشكل دوري ، ويرسل البيانات ويغفو.

بناءً على تجربتي ، يمكنني القول أنه يمكن تقليل وقت نشاط ESP8266 إلى 0.1-0.13 ثانية.

علاوة على ذلك ، يتمثل جزء كبير من هذا الوقت في وقت تشغيل أداة تحميل التشغيل: من 0.08 ثانية إلى 0.1 ثانية ، ولكن لم يتم تشغيل wifi في ذلك الوقت ، وبالتالي فإن متوسط ​​الاستهلاك الحالي يبلغ 25 مللي أمبير.

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

إذا كان في الممر ، ثم أرسل الجهاز إلى النوم مرة أخرى.
وبالتالي ، يتم تقليل إرسال البيانات غير الضرورية بشكل كبير.

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

فيما يتعلق ESP8266 على الإنترنت ، هناك عدة طرق لتقليل وقت نشاط الأجهزة في وضع نقل البيانات عبر WiFi.

الخيار 1: استخدام TCP / IP وعنوان IP ثابت.
أول واحد ل ESP8266 تم بواسطة pvvx.
العيوب: استخدام SDK عصامي.
وقت النشاط من 0.54 ثانية.

الخيار 2: كنت أول من استخدم هذه الطريقة لفترة طويلة ، لكنني لم أجدها في الإنترنت اليوم.
باستخدام بروتوكول UDP ، إصلاح معلمات الاتصال في RAM RTC ، تعطيل DHCP.
ميزة: معيار sdk لا العكازات ، طول الحزمة تصل إلى 64 كيلو.
وقت النشاط من 0.25 ثانية.

الخيار 3: بروتوكول ESP-NOW.
العيب: صعوبة فهم الهواة ، والحاجة إلى الجمع بين بروتوكول واي فاي لتبادل البيانات مع الهاتف الذكي.
ميزة: SDK القياسية ، لا العكازات ، طول الحزمة تصل إلى 512 بايت.
وقت النشاط: من 0.13 ثانية (محمل الإقلاع القياسي) ؛ 0.1 (أداة تحميل خاصة)

الخيار 4: حل CNLohr على أساس محلية الصنع pvvx SDK واستخدام الحزم الخام.
الفرق من حل ESP-NOW هو أن الحزمة المرسلة أصغر ، ولكن يتم استخدام بروتوكول WiFi.
العيب: من الصعب للغاية إتقان من قبل الهواة ، لا يمكن تنفيذه في بيئة اردوينو ، فإنه يتطلب تغييرات على برنامج جهاز التوجيه.
وقت النشاط: كما في الخيار 3.

الخيار 5: طريقة عالمية للشبكات الخاصة القائمة على WiFi.
لا العكازات. من السهل تنفيذها على اردوينو ، البرنامج قياسي.
يمكن استخدامه ليس فقط لـ ESP.
لا يتطلب جهاز توجيه.
العيب: طول الحزمة 4 بايت
وقت النشاط: كما في الخيار 3 و 4.

الأسلوب:
في الشبكة المحلية ، نستخدم عناوين MAC الخاصة.
البايت الأول من العنوان ، على سبيل المثال ، 0x36.
تشير البايت الثاني من العنوان إلى رقم الجهاز.
3،4،5،6 بايت تحتوي على المعلومات المرسلة.
نتيجة لذلك ، من أجل تلقي المعلومات المرسلة ، من الضروري فقط إكمال الاتصال.
الوقت لنقل البيانات هو صفر ، لأننا نحصل على البيانات في وقت الاتصال.

تجسيد لهذه الطريقة لاردوينو يمكن شطبها هنا .

في المثال أعلاه ، يتم تطبيق متغير من طريقة نقل البيانات هذه فقط.

ليس لديها وضع نوم عميق. لذلك ، توفير الطاقة فيه يرجع فقط إلى وقت صفر لنقل المعلومات. الارسال يعمل فقط عند الاتصال والتيار يرتفع إلى 300 مللي أمبير لمدة 2-4 مللي ثانية فقط.

للحصول على تأثير الحفظ الكامل بواسطة أي من الخيارات ، من الضروري تطبيق وضع السكون العميق بطريقة قياسية.

وبالتالي ، في الخيارات من 3 إلى 5 ، لا يستغرق تشغيل وحدة WiFi أكثر من 0.04 ثانية.
في هذا الوقت كان الاستهلاك الحالي يتراوح بين 70 إلى 300 مللي أمبير.
بقية الوقت ، الاستهلاك الحالي لل ESP8266 ليس أكثر من 20 مللي أمبير.
نتيجة لذلك ، بدلاً من استهلاك الطاقة لجلسة واحدة تبلغ 70 مللي أمبير في الثانية ، نحصل على حوالي 3 مللي أمبير في الثانية.
يمكن لأولئك الذين يرغبون في حساب التوفير لأجهزة أكثر دقة.

سأشرح بمزيد من التفصيل الخيار 2 .
عند الخروج من depp-sleep ، هناك ثلاثة خيارات للاتصال بـ WiFi للمراسلة.

1) تسجيل الدخول وكلمة المرور - قيم جديدة.
اتصال ووقت نقل رسالة UDP هو 4 ثوان.

2) يتم تسجيل الدخول وكلمة المرور والملكية الفكرية في RTC.
اتصال ووقت نقل رسالة UDP هو 1.2 ثانية.

3) تسجيل الدخول ، كلمة المرور ، IP ، حفظ في RTC وتعطيل DHCP.
الوقت للاتصال ونقل رسالة UDP هو 0.25 ثانية.

يتم حساب الوقت مع الأخذ في الاعتبار وقت تشغيل أداة تحميل التشغيل ،
وهو 0.12 ثانية في التمهيد القياسية.
إذا أعدنا كتابة محمل الإقلاع ، فيمكن تقليص الوقت الإضافي بمقدار 0.04-0.06 ثانية.

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

ولكن إذا قمت بتعطيل DHCP ، فستزيد عمر البطارية بحوالي 13 مرة.
هذا بالضبط ما أفعله ، لكنني لم أر مثل هذا الحل على الإنترنت.

كل النجاح في توفير الطاقة.

Source: https://habr.com/ru/post/ar480316/


All Articles