Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Энергосбережение в устройствах с WIFI

Тема в разделе "Железные вопросы по esp8266", создана пользователем nikolz, 5 окт 2016.

  1. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    Добрый день Всем!
    В данной теме выкладываю информацию по вопросу энергосбережения в автономных устройствах при использовании сетевого обмена.
    просьба к читателям и писателям по возможности не только зубоскалить, но и излагать свои результаты вычислений и экспериментов.
    и так начинаю.
    Сравнение времени связи на протоколах TCP и UDP .
    Вот такие экспериментальные исследования я нашел.
    конфигурация тестируемой сети. Посылалось 20 сообщений по 4 полезных байта каждое.
    upload_2016-10-5_9-55-14.png
    результаты:
    В условиях качественного обеспечения передачи UDP протокол показал себя с хорошей стороны, так как все дейтаграммы дошли до адресатов. По времени было затрачено 32ms.

    При плохом качестве линий не все пакеты дошли до пунктов назначения.
    Использование UDP на плохих линиях может быть если информация за время задержки или потери станет неактуальна, и ее можно не передавать.
    К примеру, датчики умного дома.

    Результаты по протоколу TCP говорят о неэффективном использовании данным протоколом качественных линий, так как дополнительное время тратится на подтверждение пакетов, а также на установление и разрыв связи.

    Передача по TCP заняла 344ms, что в 10.75 раза больше, чем по UDP.
     
  2. Vladimir555

    Vladimir555 Читатель

    Сообщения:
    312
    Симпатии:
    5
    Это сразу было заметно и при передачи потоковых данных, жаль что в проекте TCP2UART от Pvvx нет галочки UDP .
    Режим с UDP2UART без контроля ответа и переполнения присутствует в разных серийных переходниках типа TIBBO и т.д.
    Несколько раз пытался уговорить Pvvx на добавление режима UDP в переходник TCP2UART.
    Жаль :(...
     
  3. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.151
    Симпатии:
    1.311
    Потребление модулем зависит всего на пару процентов от протокола в режимах энергосбережения.
    Главное потребление у ESP8266 происходит при загрузке и соединении с внешней AP. Тут худшая прошивка по скорости инициализации = NodeMCU.
    Далее зависит от фиксирован IP адрес или нет на роутере и какой роутер. Это дело занимает от 0.7 секунд на ESP8266 + dhcp ещё от 0.7 сек. И тут худшая прошивка по скорости инициализации = NodeMCU, т.к. использует прерывание защиты (много-много тактов CPU) для побайтного чтения данных из flash.
    И далее идет передача - прием. На TCP, как описано в примере, 20 пакетов на ближний источник/сервер (нормальный пинг 1 ms) - это от 20 до 50 ms, опять-же если это не Lua на NodeMCU! :p В случае соединения к удаленному серверу на TCP прибавляйте около 10 времен пингов.
    Итого: загрузка и соединение используя китайский SDK на ESP8266 - от 2 сек со средним потреблением за 100 mA и передача информации в 40 ms :)
    На RTL8710 - минимум всё в два раза меньше, т.к. при соединении с AP используется аппаратная часть шифрации eas...
     
  4. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    Выкладываю результаты исследований китайских товарищей:
    Постановка задачи такая:
    ESP подключается к точке доступа передает данные и потом спит.
    Общее время 16 секунд. передача данных 5 секунд, спит 10 секунд.
    Два протокола
    UDP:
    upload_2016-10-6_10-2-42.png

    ESP-NOW( аля Ethernet):
    upload_2016-10-6_10-5-45.png

    На картинках наглядно видно время работы передатчика при UDP и при ESP-now
    В результате
    средний ток потребления UDP -30ма
    средний ток потребления ESP-now - 6.8 ma
     

    Вложения:

  5. DarkByte

    DarkByte Новичок

    Сообщения:
    9
    Симпатии:
    0
    Забавное "исследование", но неплохо было бы привести тестовый код, с использованием которого производился замер.

    В локальной сети "умного дома" использовать UDP смысл имеет, но нужно понимать, что протокол не гарантирует ни доставку, ни очерёдность пакетов.

    Если устраивает то, что дом превращается в тыкву во время загрузки торрентов, то конечно стоит сэкономить 10мс времени (при 1мс пинге в локалке дома) на установке TCP сессии.
     
  6. DarkByte

    DarkByte Новичок

    Сообщения:
    9
    Симпатии:
    0
    Не правильно понимаете. Нарушение очерёдности пакетов можно увидеть даже при отправке пакетов на локалхост, но об этом в азбуке наверное не пишут.

    Вместо того, чтобы выдвигать предложения и сразу же их опровергать, привели бы лучше тестовый код, запустив который каждый смог бы увидеть десятикратную разницу во времени передачи между tcp и udp.
     
  7. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    почитайте хотя бы это:
    Реализация Reliable Udp протокола для .Net
     
  8. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.151
    Симпатии:
    1.311
    Играются. Пытаются повторить TCP на UDP пакетах с другой расстановкой битиков в пакете :) Дело перспективное - в одном пакете UDP несколько тысяч битиков... :)
     
  9. DarkByte

    DarkByte Новичок

    Сообщения:
    9
    Симпатии:
    0
    Отличная статья для изучения .NET, но я ведь попросил привести тот код, которым вы замеряли скорость отправки пакетов по tcp и udp.

    Мне действительно интересно посмотреть, каким именно образом выполнялась отправка, а так же на способ замера затраченного времени.
     
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.151
    Симпатии:
    1.311
    Nikolz не знает где он взял эти скрины с осциллографа. Писать программы он умеет в совершенстве только на Lua, но ESP8266 имеет кривую реализацию данного языка. Тут ему ничем не помочь.
    В связи с перечисленным, ему не создать нормального рабочего замера. Выкручивается, путем подтасовки неизвестных ему замеров, с целями, чтобы вы ему всё объяснили и разложили по полочкам. Такая вот метода обучения у него... :(
     
    Последнее редактирование: 15 окт 2016
  11. DarkByte

    DarkByte Новичок

    Сообщения:
    9
    Симпатии:
    0
    Ну видимо как то так. Скрины используются в статьях メモ: ESP8266 での実測電流 | tech - 氾濫原 и ESP8266 の低消費電力の限界をさぐる (ESP-NOWを使ってみる) | tech - 氾濫原 и не совсем понятно зачем тут приведены, ведь на них показывается не сравнение tcp и udp, а сравнение традиционного способа отправки данных (соединение с вифи точкой, отправка данных на сервер) и альтернативного, в котором два esp модуля общаются между собой без установки wifi соединения, просто по эфиру, примерно как модули на 433мгц, со всеми вытекающими из этого особенностями.

    Ну а касательно проблемы с tcp стоит отметить, что для отправки 20 пакетов на один сервер требуется установить 1 коннект, а не 20, как это делают некоторые. Кроме того, данные можно отправлять не сразу, как это например сделано в примере, показанном на скриншоте, 4 чтения датчиков и 1 отправка данных в сеть. Ну а если прям совсем жалко тратить драгоценную энергию на отправку SYN пакетов, то после отправки данных коннект можно не рвать, и после выхода из сна использовать его повторно.
     
  12. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    Вы все в телепатию играете...
    Судя по тому, что Вас зациклило на моем знании LUA и не только, у Вас очевидно душевная травма из-за этого.
    Вы всем пытаетесь рассказать о том, что я знаю.
    Я конечно признателен Вам за разъяснения любопытствующим знаний обо мне.
    Раньше, когда за глаза судачили о других, это называлось сплетнями.
    Сейчас, судя по Вашим разъяснениям другим о моих способностях, это очевидно в моде.
     
  13. DarkByte

    DarkByte Новичок

    Сообщения:
    9
    Симпатии:
    0
    К сожалению, ни ссылку на китайских товарищей, ни ссылку на исследование, результаты которого описаны в первом посте выложить вы не удосужились.

    Мою не однократную просьбу показать код, которым выполнялся замер тоже оставили без внимания. Всё с вами ясно, кончились аргументы - переходи на личность.

    Увы, но личности обсуждать у меня нет совершено никакого желания, меня интересовала техническая сторона вопроса, а вы по теме ну никак не хотите отвечать.
     
  14. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    Никто вам ничего здесь не обязан давать.
    Напишите сами прошивку и проверьте.
    Я сообщаю ровно то, что хочу.
    Если это делал сам,то говорю о своих результатах,если прочитал у других (в начале результаты из методички лабораторных работа для студентов в питерском вузе)
    далее материалы с китайских блогов.
    Других материалов у меня пока нет.
    Но вопрос мне интересен, поэтому пытаюсь разобраться.
    Но доказывать кому-либо я ничего не собираюсь.
     
  15. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    и тему я эту завел для изложения информации по данному вопросу и обсуждения.
     
  16. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.151
    Симпатии:
    1.311
    Никак нет.
    Уже указали, что ссылок на скопипастенные картинки нет. Оно и получается - разводите сплетни. :)

    WiFiплохо приспособлен для “низкого энергопотребления”. На обсуждаемых модулях, ESP8266 и ESP32, на соединение ST->AP c получением IP уходит от 2 секунд активной работы приемника/передатчика WiFi с полной загрузкой CPU.

    Вам остается выбрать из двух вариантов:

    “Без разрыва соединения” - после включения модуля и установления соединения “засыпать” на короткое время, до пары “беаконов” и постепенно, через короткие промежутки передавать/принимать данные с довесками над протоколом UDP или по TCP… (данный вариант жрет много)

    “С разрывом соединения” – после включения модуля и установления соединения быстро всё передать/принять и усыпить модуль на длительный срок. Тип передачи UDP или TCPв данном случае безразличен – результат потребления не меняется.

    Использовать WiFi как простой приемник-передатчик RAW данных без стандартов, выдумав свой протокол. Для этого всё равно требуется какой-то протокол, который будет выжирать питание за его счет обработки CPUи глючить, т.к. протокол не отлажен и многое в нем не учтено.

    Ожидаем от вас демонстрации такого протокола на Lua для ESP. :)
     
    Последнее редактирование: 16 окт 2016
  17. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    Так как от зубоскалов ожидать что-либо конкретное по данной теме не приходится,
    выкладываю результаты собственного эксперимента и замера:
    [​IMG]
    это картинка динамики потребления ESP (сигнал инверсный)
    Режим работы ESP
    протокол UDP пакет 21 байт. Период посылок 100 мс.
    На картинке видим импульсы включения передатчика.
    В первом включении есть коллизии в эфире, поэтому передатчик запускается несколько раз.
    Потерь пакетов нет.
    Длительность включения передатчика 200 мкс
    Измерения амплитуды импульсов и постоянной составляющей
    показали следующее:
    ток в паузах 60 ма
    ток в импульсе 195 ма.
    Энерго потребление можно посчитать.
     
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.151
    Симпатии:
    1.311
    Зубоскалы давно выложили графики замеров во всех режимах для ESP8266 более года назад, для RTL8710AF - месяц назад. :)
    Такими методами, при использовании Lua в NodeMCU, авто-аккум 60 А/ч полностью (безвозвратно) умрет через месяц. :p
    А теперь расскажите подробнее - это посылки или beacon? :):)
     
  19. nikolz

    nikolz Гуру

    Сообщения:
    5.059
    Симпатии:
    462
    Зубоскалы - это не Вы. К Вам я привык. но есть разные моски, которые вообще ничего, кроме испражнений не выкладывают на форум. Им все подай да выложи.
    --------------------------------
    Но более года назад не было режима ESP-now, да и SDK имели ляпы.
    Поэтому полагаю, что Ваш анализ не полный. Да и в nodemcu Вы ничего не измеряли. Поэтому мои измерения будут первыми.
    --------------------------------
    Относительно времени работы. Я не включал режим сна. Это еще впереди.
    Моя задача была выяснить особенности обмена пакетами с использованием на ESP lua и различие UDP и TCP.
     
  20. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.151
    Симпатии:
    1.311
    На Lau это не актуально - можете забыть и забить.
    С режимом сна она не работает как надо. По времени соединения к внешней AP RTL87xx (с условием использования SDK) на два шага впереди (по времени и по потреблению за это время). Скорости передачи данных у них примерно одинаковы (1 мегабайт в сек).
     

Поделиться этой страницей