NodeMCU 12E V2 Энергосбережение
Я питаю NodeMCU от 4 батареек типа AA (6 В, ~9600 мАч). Я запускаю ESP.deepSleep([миллисекунды]), чтобы минимизировать энергопотребление. Даже с deepSleep я вижу резкое падение напряжения батареи. Я перешел с 6,00 В на 5,62 за 28 часов. Имеет ли это смысл? Я ожидал, что плата будет потреблять ЗНАЧИТЕЛЬНО меньше энергии, и я в растерянности.
У меня есть контакты сброса/пробуждения (D0, D3 и D4), подключенные к 3,3 В с помощью резисторов, и я перемкнул контакт сброса на D0, чтобы сделать звонок пробуждения. Больше ничего не подключено! Имеет ли это потребление энергии какой-либо смысл??
Что касается работы, то она нормально просыпается и отправляет данные.
Я исследовал различные методы энергосбережения, и лучшее описание, которое я нашел, находится здесь. Но я действительно не хочу начинать взламывать ESP. Это отнимает много времени и дает мне реальную возможность (кхм...гарантию) уничтожить много плат!
Мои вопросы:
1.) Существуют ли другие программные методы улучшения энергопотребления NodeMCU 12E?
2.) Где мне проверить 12E, чтобы измерить потребление тока с помощью мультиметра
3.) Существуют ли "тупые" модули ESP8266, имеющие вывод сброса, несколько? GIPO и VIN, способные обрабатывать вход 6 В с выходом 5 В и/или 3,3 В? Рекомендации по продукту... Я знаю... Но я в затруднительном положении и нуждаюсь в руководстве.
Я собираюсь купить встроенный токоизмеритель. Мне пока нужно ограничиться мультиметром.
@acpilot, 👍1
Обсуждение1 ответ
Если вы ничего не можете сделать с используемым оборудованием (маломощный USB-интерфейс и т. д.), то лучшее, что вы можете сделать, — это как можно реже использовать радио Wi-Fi. Радио потребляет много энергии, поэтому чем меньше времени оно включено и чем меньше сетевого трафика вы отправляете, тем меньше энергии вы будете использовать.
Когда плата выходит из глубокого сна и снова подключается к Wi-Fi, она выполняет обмен DHCP, чтобы узнать свой IP-адрес. Настройка статического IP-адреса, сетевой маски и адреса маршрутизатора позволит избежать этого и позволит радио оставаться включенным в течение меньшего времени.
ESP8266 SDK также автоматически сохраняет учетные данные Wi-Fi во флэш-памяти каждый раз, когда вы вызываете WiFi.begin()
. Это, вероятно, не то, что вам нужно. Отключение этого также поможет сэкономить электроэнергию.
Новый код подключения к Wi-Fi будет выглядеть примерно так:
IPAddress ip( 192, 168, 0, 1 );
IPAddress gateway( 192, 168, 0, 254 );
IPAddress subnet( 255, 255, 255, 0 );
WiFi.forceSleepWake();
delay( 1 );
WiFi.persistent( false );
WiFi.mode( WIFI_STA );
WiFi.config( ip, gateway, subnet );
WiFi.begin( WLAN_SSID, WLAN_PASSWD );
Вам нужно будет заменить определенный IP-адрес, адрес шлюза (маршрутизатора) и маску подсети на те, которые подходят для вашей сети. И вам нужно будет выделить статический IP-адрес либо из диапазона, который выделяет ваш маршрутизатор, либо вам нужно будет настроить маршрутизатор для постоянного выделения адреса — как вы это сделаете, полностью зависит от маршрутизатора, который вы используете.
Другой способ экономии энергии, связанной с Wi-Fi, — использовать максимально легкий протокол и выполнять как можно меньше работы при включенном Wi-Fi.
Например, предположим, что вам нужно вычислить сложный фрагмент данных, который вы передаете по Wi-Fi. Возможно, это фрагмент XML или строка JSON. Или вам нужно считать данные медленного датчика. Выполните всю эту работу до включения Wi-Fi и подготовьте данные к передаче.
Или, если вы получаете данные, по возможности завершите прием данных и отключите Wi-Fi, прежде чем выполнять какие-либо работы с данными.
Если у вас есть выбор, используйте максимально простой протокол для передачи данных. UDP идеален — вы можете передать один пакет (но не узнаете, был ли он получен). TCP требует нескольких пакетов подтверждения при запуске и завершении соединения. Если вы используете защищенное (SSL) соединение по TCP, это еще больше данных и вычислений.
Если для вас главным приоритетом является время работы от аккумулятора, UDP — идеальный вариант, хотя он ненадежен и небезопасен.
Есть отличная серия статей об экономии энергии на
https://www.bakke.online/index.php/2017/05/21/reducing-wifi-power-consumption-on-esp8266-part-1/
https://www.bakke.online/index.php/2017/05/21/reducing-wifi-power-consumption-on-esp8266-part-2/
https://www.bakke.online/index.php/2017/05/22/reducing-wifi-power-consumption-on-esp8266-part-3/
Часть 1 посвящена измерению энергопотребления; часть 2 посвящена включению и выключению Wi-Fi-радио, а часть 3 частично посвящена тому, о чем я говорил выше.
Проблема в HW (как указала Jaromanda X). Это хороший совет, и мне придется искать способы оптимизации. Обидно, но выполнимо. Знаете ли вы другие ESP HW, которые имеют встроенный WiFi, или 12E — это в основном то, что нужно?, @acpilot
@acpilot Все ESP8266 имеют встроенный Wi-Fi. Это часть ЦП — без него это не ESP8266. Существует довольно много плат ESP8266 без портов USB или использующих USB только для питания, а не для данных (например, Sparkfun Thing). Платы ESP8266, которые можно программировать с помощью обычного кабеля USB, имеют встроенный адаптер USB; платы, которым для программирования требуется кабель FTDI, не имеют его и могут избежать потребления энергии адаптером USB/последовательного порта. (FTDI — это преобразователь USB в последовательный порт, который обычно используется с ESP8266 и Arduino), @romkey
- ESP8266 тратит 10 мА, даже если он находится в режиме глубокого сна
- ESP8266 требует двух перезагрузок, чтобы проснуться от глубокого сна
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Как изменить имя модуля ESP8266-12E по умолчанию
вы это видели? ... https://www.losant.com/blog/making-the-esp8266-low-powered-with-deep-sleep, @jsotola
Я не, но беглое прочтение демо-версии, похоже, именно то, что я сделал... за исключением того, что все это, похоже, запускается в setup(). Я перечитаю резюме завтра после сна и кофе. Спасибо!!, @acpilot
возможно, это регулятор напряжения, интерфейс USB и все остальные схемы на плате nodemcu, которые все еще потребляют энергию, несмотря на то, что модуль ESP находится в режиме глубокого сна - поиск по запросу
nodemcu power consumer deep sleep
в вашей поисковой системе покажет множество задокументированных примеров такого поведения., @Jaromanda XВот что я думаю, основываясь на всем остальном, что я прочитал., @acpilot