Добрый день,Всем!!!
мне в личке задали вопрос про протокол ESP-NOW.
В итоге решил рассказать о способах сокращения потребления датчиков и исполнительных устройств, работающих по WiFi ,
к ним относится и ESP8266 ,
в частности Sonoff.
-----------------------------------
Сначала о сути решаемой проблемы.
В классическом решении на WiFi для взаимодействия устройств либо иcпользуется роутер, либо смартфон или устройства включается как точка доступа.
Сама процедура соединения и передачи данных без специальных танцев с бубном составляет от 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 .
Недостаток: сложность понимания любителями, необходимость комбинирования с протоколом wifi для обмена данными со смартфоном.
Достоинство : стандартная SDK, никаких костылей, длина пакета до 512 байт.
Время активности: от 0.13 сек(стандартный загрузчик) ; 0.1(специальный загрузчик)
-----------------------------------------
Вариант 4: решение CNLohr на основе самопальной pvvx SDK и использования сырых пакетов.
Отличие от решения ESP-NOW в том, что передаваемый пакет меньше, но используется протокол WiFi.
Недостаток: очень сложно в освоении любителями , не может быть реализована в среде ардуино, требует внесение изменения в софт роутера.
Время активности: как в варианте 3.
----------------------------
Вариант 5: универсальный метод для частных сетей на основе WiFi.
Никаких костылей. Реализуемо легко на ардуино.софт стандартный.
Можно применять не только для ESP.
Не требует роутера.
Недостаток: длина пакета 4 байт
Время активности: как в варианте 3.
===========================
Суть этого метода проста.
В локальной сети мы используем специальные MAC адреса,
1 байт которого, например, 0x36,
2 байт которого указывает номер устройства,
3,4,5,6 байты содержат передаваемую информацию.
в итоге для получения переданной информации требуется лишь выполнить соединение.
время на передачу данных равно нулю, так как данные получаем в момент соединения.
==========================
Вариант реализации этого метода для ардуино можно списать здесь:
HarringayMakerSpace/sonoff-adhoc
----------------------
Таким образом, в вариантах с 3 по 5 работа WiFi блока занимает не более 0.04 сек
именно в это время ток потребления изменяется в пределах от 70 до 300 ма.
В остальное время он может быть сделан не более 25 ма.
в итоге вместо затрат энергии на один сеанс 70 ма*с.
Получаем примерно 3 ма*с.
Желающие могут точнее посчитать экономию для конкретных устройств.
-------------------------------------------
Всем успехов в экономии энергии.
мне в личке задали вопрос про протокол ESP-NOW.
В итоге решил рассказать о способах сокращения потребления датчиков и исполнительных устройств, работающих по WiFi ,
к ним относится и ESP8266 ,
в частности Sonoff.
-----------------------------------
Сначала о сути решаемой проблемы.
В классическом решении на WiFi для взаимодействия устройств либо иcпользуется роутер, либо смартфон или устройства включается как точка доступа.
Сама процедура соединения и передачи данных без специальных танцев с бубном составляет от 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 .
Недостаток: сложность понимания любителями, необходимость комбинирования с протоколом wifi для обмена данными со смартфоном.
Достоинство : стандартная SDK, никаких костылей, длина пакета до 512 байт.
Время активности: от 0.13 сек(стандартный загрузчик) ; 0.1(специальный загрузчик)
-----------------------------------------
Вариант 4: решение CNLohr на основе самопальной pvvx SDK и использования сырых пакетов.
Отличие от решения ESP-NOW в том, что передаваемый пакет меньше, но используется протокол WiFi.
Недостаток: очень сложно в освоении любителями , не может быть реализована в среде ардуино, требует внесение изменения в софт роутера.
Время активности: как в варианте 3.
----------------------------
Вариант 5: универсальный метод для частных сетей на основе WiFi.
Никаких костылей. Реализуемо легко на ардуино.софт стандартный.
Можно применять не только для ESP.
Не требует роутера.
Недостаток: длина пакета 4 байт
Время активности: как в варианте 3.
===========================
Суть этого метода проста.
В локальной сети мы используем специальные MAC адреса,
1 байт которого, например, 0x36,
2 байт которого указывает номер устройства,
3,4,5,6 байты содержат передаваемую информацию.
в итоге для получения переданной информации требуется лишь выполнить соединение.
время на передачу данных равно нулю, так как данные получаем в момент соединения.
==========================
Вариант реализации этого метода для ардуино можно списать здесь:
HarringayMakerSpace/sonoff-adhoc
----------------------
Таким образом, в вариантах с 3 по 5 работа WiFi блока занимает не более 0.04 сек
именно в это время ток потребления изменяется в пределах от 70 до 300 ма.
В остальное время он может быть сделан не более 25 ма.
в итоге вместо затрат энергии на один сеанс 70 ма*с.
Получаем примерно 3 ма*с.
Желающие могут точнее посчитать экономию для конкретных устройств.
-------------------------------------------
Всем успехов в экономии энергии.