Часто возникает вопрос с автономным питанием ныне уже популярного модуля ESP8266. Эта заметка без уникальных фотографий, но она рассказывает, как оно делается на Си и SDK от Espressif и сколько потребляет.



1. Железное вмешательство


Для начала, если ESP-01 (а он самый популярный и разумный в данной ситуации), надо сделать перемычку с 8 ножки esp8266 на пин RST и убрать светодиод, как показано на фотографии выше. Если перемычку не сделать — модуль из режима Deep Sleep не выйдет.

2. Программируем


Установку комплекта для Windows, производил по хорошей статье с geektimes.
Для примера мы возьмём проект examples\dht22_thingspeak. Он хорош тем, что его очень легко поправить под свои цели отправки температуры и влажности.

Со всего проекта нам нужны user_main.c, который содержит основной пользовательский код, и user_config.h, который содержит настройки.

#define USE_WIFI_MODE		STATION_MODE
#define WIFI_CLIENTSSID		"wifi_net_name"
#define WIFI_CLIENTPASSWORD	"wifi_net_pass"
#define DATA_SEND_DELAY 1000	/* milliseconds */
#define THINGSPEAK_SERVER	"narodmon.ru"

Это содержимое файла user_config.h. Задержку отправки изменять не надо, но если хочется, то можно. Но для однократной отправки — не надо.

Если нужен не народный мониторинг, а что-то другое — пишете в строке сервер свое. У меня там указан IP моей Raspberry.

Далее вносим изменения в код файла user_main.c, в процедуре dht22_cb:

os_sprintf(data, "http://%s/post.php?ID=xx-xx-xx-xx-xx-xxx&T1=%s&H1=%s", THINGSPEAK_SERVER, temp, hum);

В этой строке задаётся всё, что нам необходимо для отправки. Для народного мониторинга можно сделать автоматическое получение MAC-адреса, но на мой взгляд это лишнее — проще один раз написать.

Далее в том же файле, но в процедуре user_init, задаём таймер для процедуры спячки:

os_timer_disarm(&sleep_timer);
os_timer_setfn(&sleep_timer, sleep_cb, NULL);
os_timer_arm(&sleep_timer, 5000, 1); //5s

Здесь 5000 — время в миллисекундах, а 1 — повторять.

Ну и последняя, собственно, сама процедура спячки. В данном случае — 10 минут.

static ETSTimer sleep_timer;
LOCAL void ICACHE_FLASH_ATTR sleep_cb(void *arg)
{
	os_timer_disarm(&sleep_timer);
	system_deep_sleep(600*1000*1000);//second*1000*1000
}

В итоге мы имеем модуль, который спит 10 минут, просыпается, отправляет данные с DHT22 (GPIO2) куда надо и засыпает на следующие 10 минут.

Пока я не выяснил, с чем связано, но 10 минут плавают ±30 секунд.

3. Замеряем


Лабораторий и мегатестеров не имею. Все замеры производил дешёвым китайским тестером с соответствующей точностью.
В активном режиме (от просыпания до засыпания) — от 240мА до 360мА. В среднем 300мА где-то в районе 5-10 секунд.
В спящем — <1mA.
На самом деле, тестер пытался показать какие-то циферки, но его точность менее 1мА под огромным сомнением. Но и 1мА при питании от пальчиковых батареек считаю достойным результатом.

4. Итоги


Можно выкинуть очень многое из этого проекта, если планируется простой автономный датчик температуры. Как минимум, вывод в терминал лишний.

О реальной продолжительности жизни от батареек судить пока не берусь — слишком мало время такой эксплуатации.

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

Источники


ESP8266 Community forum
Low Power ESP8266 – Sleeping at 78 micro Amps
ESP8266 SDK API Guide v1.0.0

Комментарии (75)


  1. Misery
    03.05.2015 13:47
    +2

    Долго решался попробовать эту чуду-юду (Статей благо тонны) И вот пришла намедни ESP 01, убил ночь в попытках прошить ее хоть во что-нибудь. Все тщетно. Командой AT+GMR с завода стояла прошивка «SM56 HDAudio Rel. 6.12.23 DF» — гугол по такому запросу выдает пару сайтов на марсианском языке. Чем и как только не пытался шить, результаты разные, но все отрицательные — после прошивки достучаться до контроллера ничем не удается. Я в тоске, я в печали.


    1. xopkep Автор
      03.05.2015 14:42
      +1

      После прошивки на отличные версии обычно меняется битрейт. Чаще всего становится 115200, но попробуйте все подряд.


    1. jcmvbkbc
      03.05.2015 16:15
      +1

      Похоже на то, что вы взаимодействуете не с тем устройством. Когда ESP-01 отвечает в UART на нём должен мигать синий светодиод.


      1. Misery
        03.05.2015 17:07

        Как же не с тем? Мигает вовсю во время прошивки и пару раз во время включения. А дальше — ни гу-гу


        1. iliasam
          03.05.2015 17:37

          А какой программой прошиваете?
          Вот эта прошивка точно рабочая, после прошивки скорость 9600.


          1. Misery
            03.05.2015 21:23

            Взял NodeMCU, прошилось, правда ESPlorer все равно ругается, мол что за прошивка ему не ведомо. Однако, удалось запустить точку доступа, и даже переименовать ее и запаролить. Вобщем, прогресс есть, но, полагаю, продукт «сыроват»
            Всем спасибо)


        1. nochkin
          04.05.2015 06:42

          Пару раз — это хорошо. Значит, просто надо крутить битрейт. В зависимости от прошивки он обычно либо 115200, либо 9600.


    1. de1m
      03.05.2015 18:35

      Ну у вас хоть вообще работает, я свою уже два дня запустить не могу, пробывал через ардуину и через usb-to-serial переходник. Питание горит, когда ch_pd подключаю к 3в3, то коротко мигает(синим) и всё, а если потом через терминал, что-то посылаю, то терминал зависает.

      Собственно мой вопрос, насколько часто эти штуки бывают неработающими?

      Просто сейчас не ясно, то ли я что-то не так сделал, то ли и правда сломанна. И стоит ли новую заказать или всё таки дальше копать.


      1. serafims
        03.05.2015 20:19

        конденсатор на питание 100-220 мкФ попробуйте… у меня так вообще она при запуске спалила собственный светодиод, но потом заработала…


      1. av0000
        03.05.2015 22:17
        +1

        ch_pd можно «навсегда» сажать на +
        помимо него не забыть GPIO0 и GPIO15 на землю. GPIO15, через 10кОм, «навсегда». GPIO0 — для прошивки

        Питания от 3.3В usb-serial не хватит точно (симптомы как раз похожи), от ардуины возможны варианты — смотря чем там делаются 3.3В (AMS1117-3.3 даёт до 0.8А, а всякие MCP1700-3.3 из, например, olinuxino — только 0.25, что мало для старта)

        У меня один из ESP-07 при перво прошивке ещё и GPIO2 на + в итоге хотел. Видимо, глюк был…

        ЗЫ: Ещё неплохо взять нормальный usb-ttl (_НЕ_ PL2303) и, выставив скорость порта 74480, посмотреть лог загрузки… Дальше вдумчиво «курить» esp8266.ru ))


  1. Rumlin
    03.05.2015 13:57

    offtopic Выслал вчера автору инвайт.
    А в профиле

    Зарегистрирован:
    14 ноября 2013 в 15:53 по приглашению пользователя Rumlin.

    Это как? Статья тогда была написана или что? /offtopic


    1. nazarpc
      03.05.2015 14:06

      Readonly был, наверное.


    1. neolink
      03.05.2015 14:08
      +1

      дату и текст нужно рассматривать отдельно — дата это когда пользователь создан, очевидно этот момент сломан после введения read-only учеток


  1. ntfs1984
    03.05.2015 15:56

    Пока я не выяснил, с чем связано, но 10 минут плавают ±30 секунд.
    Плавают рандомно вперед-назад, или есть какая-то закономерность?


    1. xopkep Автор
      03.05.2015 20:42

      Абсолютно рандомно в обе стороны. Я как и raid ниже, склоняюсь к погрешности, но как решить пока ещё не задумывался.


      1. evtomax
        04.05.2015 13:18

        Скорее всего таймер получает импульсы не от стабильного кварца, а от RC-генератора. Возможно без костылей в виде внешнего генератора импульса каждые 10 минут никак.


  1. raid
    03.05.2015 17:44

    Пока я не выяснил, с чем связано, но 10 минут плавают ±30 секунд.

    Может просто погрешность тактирования?


    1. ntfs1984
      03.05.2015 21:30

      На 30 секунд? Не думаю.
      Через пару дней приедет парочку модулей, попытаюсь разобраться детальнее.


      1. raid
        03.05.2015 21:41

        30 секунд — это 5%. Вроде не очень много


  1. apple01
    03.05.2015 21:32

    Спасибо за полезную информацию. Было бы интересно узнать все-же поточнее ток в режиме сна, раз об этом статья. Менять батарейки раз в месяц (пальчиковые AA/AAA) или раз в несколько месяцев — большая разница. Проверить тестер можно измерением тока протекающий от источника с извесным напряжением через резистор известного номинала. Точность проверки будет возможно не выше 10% но по крайней мере не в 2 раза ошибка.


    1. xopkep Автор
      03.05.2015 22:00

      Ну раз в месяц это маловероятно. Попробую в рабочие дни разжиться тестером получше и дополню данные.


    1. xopkep Автор
      07.05.2015 08:25

      К сожалению не могу дать более точного ответа. Позаимствовал советский стрелочный микроамперметр (0-100мкА) и Mastech MY63. Ни с тем ни с другим, модуль не включается. Мастеч показывает 125мА, светодиод питания (я его ещё не сковыривал) не загорается, данные не отправляются. Если с мастечем ещё можно предположить, что сопротивление его велико, то со стрелочным микроамперметром все совсем не ясно.


      1. Rumlin
        07.05.2015 11:25

        Мультиметр DT9208A показывает 63мА. К сети не подключена.
        После разрыва в месте измерения конденсатор стоит.


  1. Lampus
    04.05.2015 00:09

    По поводу стабильности тактовой частоты… Поделюсь собственным опытом.
    Приобрел я на всем известной китайской торговой площадке 5 модулей ESP-07.
    Распаял первый модуль на монтажке согласно общим рекомендациям.
    Питание заводится с отдельного стабилизатора на 3.3 В. По питанию стоит 100 мкФ электролитический конденсатор и непосредственно у ног питания модуля — керамический.
    CH_PD через 4.7 кОм подтянут к питанию, GPIO15 посажен на землю.

    Включаю, цепляюсь через PL2303, а оно мне в терминал мусор сыпет. То есть эхо-ответ работает. В теории, код того символа что я набираю на клавиатуре приходит на порт RXD ESP8266, и ровно такой же код я должен получить на порту TXD ровно до момента завершения команды (на AT-прошивке CR+LF). Я потыкался осциллографом в RXD и TXD и понял что импульсы у кода в эхе слегка короче плюс короткие паразитные выбросы. Как итог — я вижу мусор. Потом была куча потуг понять почему уплывает частота. Пытался отмывать модуль и плату от канифоли и занимался прочей ересью.
    Кто-то ещё с таким сталкивался? Можно ли с этим как-то бороться?

    В итоге всё заработало нормально со вторым модулем.


    1. de1m
      04.05.2015 11:42

      я там выше писал, что у меня модуль не заводится. После советов там-же я подключил через отдельный блок питания с макс. 2А — заработало(вижу на телефоне сеть и могу подключиться), но тоже какой-то мусор идёт(синий сигнал горит практически без перерыва) и не вижу ответы из терминала.
      Подключил через компьютерный блок питания (до этого был через импульсный подключен). Мусор не вижу, но и модуль нифига не работает.

      Кстати у меня вариант esp8266-01 и на всех картинках которые я видел нету GPIO15, есть только GPIO 2 и GPIO 0. Где находится GPIO15?


      1. jcmvbkbc
        04.05.2015 13:09

        Где находится GPIO15?

        GPIO15 aka MTDO на ESP-01 намертво посажен на землю. Это ножка №13 микросхем esp8089/esp8266ex.


      1. Rumlin
        04.05.2015 13:12

        esp8266.ru/esp8266-esp-01-hacked

        Дополнительно вы получаете 4 GPIO: GPIO14, GPIO12, GPIO13 и GPIO15. Аккуратно выпаиваете 4 двухрядных пина из модуля и заменяете их на 7 двухрядных, предварительно удалив пятую пару пинов.

        image


        1. jcmvbkbc
          08.05.2015 19:48

          Кстати, GPIO15-то этим способом не получить: ножка заведена на землю под чипом, единственная возможность её освободить — отпаяв чип и перерезав дорожку под ним.


          1. Rumlin
            08.05.2015 19:58

            Я встречал что GPIO15 притянут к земле.
            В оригинале и комплементариях об этом молчок tech.scargill.net/friday-morning-esp8266


  1. AlNinyo
    04.05.2015 00:48

    Есть 4 штуки ESP8266-01 аккурат как на первой картинке из поста. Недели три назад с одним из них игрался и смог реализовать отправку данных с домашней метеостанции на свой сервер с занесением данных в БД MySQL. ПОтом благополучно запорол (хз как) Arduino Nano на которой вся эта станция работала и игры с ней пришлось отложить. На днях пришли новые Nano, плюс появилось время и начал переделывать станцию (ещё и BMP180 пришли, так что пришлось модернизировать и теперь в ней трудятся DS18B20, DHT11, BMP180 и LCD Nokia 5110). И всё бы хорошо, всё получилось. Кроме работы с ESP8266. Точнее, ни один из имеющихся на руках модулей не хочет сейчас даже тестовые примеры из библиотеки показывать. Буквально пару раз из примерно 15 попыток в мониторе порта пришёл ответ на первую команду инициализации модуля (если правильно её понял), но дальше дело не пошло. Причём, в первый раз, когда всё получилось, модуль шикарно работал, питаясь от 3.3V Nano, а сейчас не работает ни от ардуиновского питания, ни от отдельного источника 3,3 В.

    Собственно, вопрос: имея под рукой несколько таких модулей, десяток Arduino UNO и парочку Arduino Nano можно ли что-то сделать с ESP8266-01, чтобы эти малявки нормально стали работать и отправлять данные на мой сайт?
    Понимаю, что не совсем по теме влез, но буду признателен за помощь, т.к. сам только начинаю всё это изучать и ещё многого не понимаю, а очень хочется!


    1. nochkin
      04.05.2015 06:49

      > Собственно, вопрос: имея под рукой несколько таких модулей, десяток Arduino UNO и парочку Arduino Nano можно ли что-то сделать с ESP8266-01, чтобы эти малявки нормально стали работать и отправлять данные на мой сайт?

      Вопрос без информации. Конечно, можно. Надо только не забывать, что питание у них 3.3 вольта только.
      Если пользоваться через AT команды, то проблем не должно быть — поставил IO15 на землю, а остальное на +3.3v через 10k, выставил правильный baud rate и вперёд.
      А вообще, можно и кастомную прошивку сделать, что бы без Arduino, но это не критично если Arduino ближе.


      1. AlNinyo
        04.05.2015 11:34

        Простите, писал коммент ночью и голова уже плохо соображала.
        Подключаю модуль по инструкции. Только код беру не из этой ссылки, а из библиотеки, на которую ссылку выше давал. Собственно, вот такой у меня сейчас код погодной станции. Работает всё, кроме части с ESP8266.

        Без Ардуино не хочу. Во всяком случае, дома не хочу. Всё рядом и пара лишних проводов не напрягает, а стоят эти модули примерно как Нано. Чем цеплять 3 модуля к датчикам, лучше 1 модуль прицепить к Ардуинке и всё.


        1. nochkin
          04.05.2015 17:53

          Я так не и понял в чём ошибка и что именно и, главное, как не работает.
          Через 3.3v серийный порт работает? С этого есть смысл начать. Если работает, то просто проверить, что tx/rx правильно стоят или просто поменять местами. Главное, что бы всё общение было на уровне 3.3 вольта.


          1. AlNinyo
            04.05.2015 18:15

            Вот сейчас ещё раз подключил к Ардуино УНО один только EPS8266-01 (VCC и CH_PD подключены к 3,3В ардуинки). Загрузил пример из библиотеки под названием webserver. На модуле в самом начале несколько раз моргал синий светодиод. В мониторе порта пишется вот такое:

            AT+RST
            AT+CWMODE=1
            AT+RST
            AT+CWJAP=«МОЯ СЕТЬ»,«ПАРОЛЬ»
            AT+CIFSR
            AT+CIFSR
            AT+CIPMUX=1
            AT+CIPSERVER=1,80
            AT+CIPSEND=0,0
            AT+CIPCLOSE=0

            В настройках роутера вижу, что появился новый dhcp-клиент у wi-fi. В браузере набираю 192.168.2.4 (такой адрес получает модуль) — «Время ожидания ответа от сервера 192.168.2.4 истекло.» или «Во время загрузки страницы соединение с сервером было сброшено.»
            При этом на модуле не горит ничего, кроме красного светодиода. На Ардуино почти непрерывно горит светодиод TX.

            А ещё бывает такое: после команды AT+RST в мониторе порта вообще полная тишина и ничего не происходит со сборкой, даже после нажатия сброса. Попробовал другой модуль подключить — картина та же самая.


            1. nochkin
              04.05.2015 18:26

              Общение с ESP вроде идёт правильно. Хорошо.
              Я никогда не пробовал встроенный сервер, а обычно использовал свой, поэтому тут не могу ничего сказать. Разве что могу посоветовать обновить прошивку на самую последнюю и убедиться, что пример библиотеки поддерживает последнюю прошивку.

              А эти AT команды можно вручную напрямую в ESP отослать и проверить что каждая отвечает.


              1. AlNinyo
                04.05.2015 20:37

                Спасибо, попробую обновить прошивку и дальше поиграться с модулем.


    1. xopkep Автор
      04.05.2015 10:14
      +2

      Мне кажется в корне неверным использование esp8266 с Arduino. ESP8266 сами имеют вагон и тележку возможностей. Используя те же -01 и по одному датчику к каждому устройству — имеем WiFi-датчики температуры\влажности\давления (В ещё WiFi-дисплей можно :) ). Да, графики в web им строить тяжело (но можно: на форумах один мистер рисовал SVG графики температуры), но все, что Вы делаете Arduino, можно сделать и самим ESP, тем самым упрощая всю систему и экономя на компонентах.


      1. AlNinyo
        04.05.2015 11:39

        В моей станции используется 3 датчика (но тут я ещё думаю и, возможно, добавлю датчиков температуры потом). При том, что стоят ESP8266 примерно как Ардуино Нано, цеплять к каждому датчику по модулю будет минимум в 2 раза дороже, чем использовать 1 модуль, подключённый к Ардуино. И моя станция не только отправляет данные на сайт, но и выводит их на экран.

        Когда буду делать подобную систему на даче, вот там придётся датчики в теплице пытаться подключить к такому модулю напрямую, чтобы не заморачиваться с проводами. Но это будет попозже :)

        Короче, стану умным и богатым — обязательно буду к каждому датчику лепить ESP8266 без Ардуинки. Пока — не могу :(


      1. nochkin
        04.05.2015 17:58
        +1

        Вполне нормально использовать с другим контроллером. Особенно когда под тот контроллер больше всего есть в плане кода-библиотек и прочего. Не говоря о том, что опыт написания под один контроллер может быть больше, чем под ESP. Ведь Wiring со своими библиотеками будет для многих проще, чем C в компклекте с полузакрытым ESP SDK.


  1. imsamurai
    04.05.2015 11:03

    Пробовал сделать автономный датчик на кроне duracell + стаб для 3.3В. По задумке датчик должен был отправлять данные, спать 20сек и тд. Батарейки хватило на 9 часов. При отправке данных напряжение на батарейке падало примерно на 1В, пока модуль спал восстанавливалось. Так что жрет он много.
    PS прошивка nodemcu


    1. Rumlin
      04.05.2015 11:17

      Линейный стаб сам кушает много. Милиамперметр надо включить сразу после батареи посмотреть сколько берет стаб с и без нагрузки.


      1. imsamurai
        04.05.2015 11:25

        По сравнению с модулем не много, на сколько я понимаю AMS1117 потребляет в районе 5мА


        1. Rumlin
          04.05.2015 11:39

          Для Кроны 5 мА расход большой.
          ИМХО используйте аккумулятор NOKIA BL-5C через диод — китайцы везде так делают.

          Старые справочники говорят, что емкость «Кроны-ВЦ» составляет 0.6 Ампер-часов при работе на нагрузку в 900 Ом, т.е. при токе 10 мА.

          habrahabr.ru/post/178223


          1. imsamurai
            04.05.2015 11:45

            Проблема в том, что хотелось именно простая автономность — села батарейка — заменил, аккум прийдеться заряжать, хотя учитывая что NOKIA BL-5C стоит как эта крона, можно купить несколько и менять по кругу. Спасибо за совет, попробую)


      1. hexenmeister
        04.05.2015 12:17

        А сколько ему нужно для счастья, не могу представить, что действительно 2А.
        У меня работает одна штука на двух АА-Батерейках и экономном StepUp на Max1724. Собственное потребление у него 1,5µА (!). Батарейки использует до последнего. Правда всего 150мА максимум. Нужно поискать, есть ли более мощный и не менее экономичный собрат.

        МАХ172х
        Key Features

        Up to 90% Efficiency
        No External Diode or FETs Needed
        1.5µA Quiescent Supply Current
        0.1µA Logic-Controlled Shutdown
        ±1% Output Voltage Accuracy
        Fixed Output Voltage (MAX1724) or Adjustable Output Voltage (MAX1722/MAX1723)
        Up to 150mA Output Current
        0.8V to 5.5V Input Voltage Range
        0.91V Guaranteed Startup (MAX1722/MAX1724)
        Internal EMI Suppression (MAX1722/MAX1724)
        TSOT Package (0.9mm typ Height)


        1. Rumlin
          04.05.2015 12:35
          +1

          линейный стабилизатор всё лишнее переводит в тепло. Т.е. понижение 9 до 3 — это 6 вольт. Ток например 10мА. Получается стабилизатор будет в тепло переводить 0,06Вт, при 0,1А — 0,6Вт, последнее высадит батарею за полдня. Это без полезной работы, только тепло.


          1. hexenmeister
            04.05.2015 12:48

            Ну так Мах1724 не линейный. Так что в тепло он переводит только те минимальные 1,5µА плюс то что падает из-за КПД.


          1. hexenmeister
            04.05.2015 12:51

            Да, и не надо 9В. Хватит от 1 до 3.


    1. xopkep Автор
      04.05.2015 18:43

      В качестве эксперимента у меня висит датчик DHT22. Спит 10 минут, все как в статье. Питается напрямую от двух пальчиковых батареек из FixPrice. За неделю напряжение на батарейках пока не упало. Лучше делать на пальчиковых, чем на кронах — дешевле и доступней. И нет лишнего расхода на стабилизатор.


  1. valexey
    04.05.2015 13:07

    А кто-нибудь пробовал питать esp8266 от cr3032 (вероятно в комбинации с конденсатором и/или ионистором)?

    Если допустим мне надо раз в 10 секунд отсылать один udp-пакет? То есть esp должен быть постоянно подключен к Access Point, секунду в таком режиме спать, затем просыпаться и отправлять один udp-пакетик.

    По идее посылка одного udp штука быстрая — доли секунды, и того, что накопилось в конденсаторе/ионисторе вполне может хватить чтобы обеспечить нужный ток во время передачи.


    1. Rumlin
      04.05.2015 13:22

      Напрямую у человека не вышло www.areresearch.net/2015/04/failed-making-smallest-wifi-throwie-ever.html
      Элемент не дает ток.


    1. imsamurai
      04.05.2015 16:04

      Пробовал, не успевает даже к точке подключиться, только мигнуть светодиодом)


      1. valexey
        04.05.2015 16:46
        +1

        С ионистором+конденсатором?

        По идее подключкние к AP это да, долгий процесс, после подключения должно стать легче.


        1. xopkep Автор
          04.05.2015 18:52

          Подключение на удивление быстрое. 2-3 секунды максимум, при хорошем сигнале. Мой датчик укладывается в программу «подключение-считывание\отправка данных-засыпание» в эти самые 2-5 секунд.
          Но вот держать модуль подключенным — имхо автономное питание не пройдет. Ну или совсем не надолго.


          1. valexey
            04.05.2015 19:04

            Ну вот по спеке в подключенном к AP состоянии оно кушает 1mA. Это меня вполне устраивает (если проработает от одной батарейки несколько суток — будет нормально). Основной затык в том, что батарейка cr3032 естественно не сможет в пике (во время передачи) выдать 180mA.


          1. valexey
            04.05.2015 19:10

            Да, а ток в 180 mA 2-3 секунды подряд — это ж дофига!


        1. imsamurai
          04.05.2015 19:15

          Только с парой конденсаторов по 2200. Возможно я не доэкспериментировал с энергосбережением, но после подключения к точке и ничегонеделанья батарейка таяла со скоростью 0.01В/сек. Надо разжится рабочим амперметром, тогда точно будет понятно.


          1. valexey
            04.05.2015 19:32

            А это не может, что это просто уже конденсаторы ели батарейку заряжаясь?


            1. imsamurai
              04.05.2015 19:34

              Не, проверял с подключенными кондерами и без модуля, они ее не ели (после того, как зарядились)


              1. valexey
                04.05.2015 19:41

                Ну, дак после того как подцепились к AP кондеры скорее всего почти разряжены ведь? Нет? И им после того надо зарядиться.

                Вообще, 0.01 V/sec это очень похоже на ток порядка 10-15 mA. Что довольно много особенно если учесть, что они обещают «Standby power consumption of < 1.0mW (DTIM3)».


                1. imsamurai
                  04.05.2015 19:58
                  +1

                  Конденсаторы то да, но и после их зарядки батарея разряжается. Вы правы, где-то 15мА и должно быть, тк nodemcu по умолчанию (а может и родная прошивка) используют modem sleep. Надо пробовать light sleep.
                  image


  1. sir66
    08.05.2015 19:40

    300ма в активном режиме в течение нескольких секунд это дофига, получаем только за счет активного режима среднее потребление в несколько миллиампер. То есть пальчиковых батареек хватит не больше, чем на месяц. Получается, что rf24 или rf12b этот модуль ну никак не конкурент. На них можно легко получить среднее потребление менее 0.2ма.


  1. ntfs1984
    09.05.2015 11:16

    Приехали мои два модуля, потестировал. Имхо ненадежная штука, ставить ее в закрытые устройства я бы не рискнул.
    Подключил к Ардуине через SoftwareSerial.
    * Очень часто не инициализируется, хотя промежуток между командами порядка 2-6 секунд. Девайс отправляет «busy». При этом если в нормальном девайсе 'busy' означает 'попробую через 1 сек', то в этом 'busy' — это втихомолку захалтить систему.
    * Очень часто подвисает ни с того ни с сего. Connection refused и хоть ты тресни.

    Вот так например


    1. Rumlin
      09.05.2015 11:46

      Если не подключен по питанию модуля конденсатор около 100 мкф, то рекомендую подключить и понаблюдать, может всё на этом и закончится.


      1. ntfs1984
        09.05.2015 12:25

        Даже 470 подключил — без толку.
        Судя по логам из терминала — девайс таки ребутается.
        Хотя IP-адрес после команды «AT+CIFSR» показывается нормальный искомый. Думал сделать некоторое подобие пинга.


      1. ntfs1984
        09.05.2015 12:30

        Допускаю что может быть просадка по питанию, но тогда эту штуку нельзя назвать экономичной, ибо потребляет больше чем дает USB2.0-порт…


        1. Rumlin
          09.05.2015 12:45

          Мой потребляет в пике 0,1А (при работе по WiFi), в «покое» — 67мА.


    1. av0000
      19.05.2015 23:52
      +1

      маякни что ты ее потерял

      Вообще-то, чип, кажись, такое умеет. Как дела с этим у АТ прошивки — не пробовал, но мелькала инфа, что она может поменьше, чем всякие альтернативы ((

      Пока не спалил свой сенсор (esp-07, bmp085, dht22, ds12b20, выход через полевик) подачей +12 на GPIO2, проверял наличие сети и, на всякий случай, подключение к mqtt серверу после каждой паузы (не пользую спящий режим, потому как жду команд на telnet/serial/mqtt). Но это из-под «ардуино для 8266».

      По «встроенным» логам wifi видно, что если ему не нравится сигнал, то 8266 постоянно реконнектится, но как-то обычно без результата (опять же там есть какой-то флаг на авто-коннект). Меня обычно спасает watchdog — если был глюк с коннектом, то после ребута он чаще всего проходит. Как быть с этим на АТ-прошивке не очень понятно

      И показалось, что оно не дружит с некоторыми символами в пароле — типа знаков больше/меньше и, возможно, каких-то спецсимволов. Грешу на 8266, ибо с телефона на тот же микротик нормально заходилось с корявым паролем, а оно тупо отваливалось при попытках соединения


      1. ntfs1984
        20.05.2015 11:20

        Буду благодарен если порекомендуете рабочую нормальную прошивку, и примеры работ.
        Мне нужно:

        — Чтобы эта штука была подсоединена к Arduino через кастомный UART (библиотека SoftwareSerial позволяет юзать в качестве Rx\Tx любые цифровые пины)
        — Чтобы на Arduino был поднят простейший веб-сервер, который принимал GET-запросы на определенном TCP-порту, и отдавал на них информацию с устройств.
        — И было бы вообще шоколадно, если бы Arduino могла сама слать GET-запросы на другие хосты в пределах подсети.

        Заранее спасибо.


        1. webself
          20.05.2015 12:18

          Может быть наоборот вам сделать? Чтобы основной код был реализован на ESP8266, а ардуинка с датчиками была ведомой? Для еспшки уже просто куча примеров программирования есть и хороший народный девкит.


          1. ntfs1984
            20.05.2015 13:22

            Чуть подробнее. Представьте себе комнату.
            Есть платка. Которая регулирует два источника света 12В (светодиодные лампы\ленты). Через PWM\AnalogWrite естественно.
            К этой платке прикреплен 4 канальный пульт Д\У, которым можно включать и выключать свет, делать тише\ярче и (де)активировать пару интересных режимов.
            К платке прикреплен датчик движения, который позволяет ночью при движении включать на немного светильник.
            К платке прикреплен сенсорный выключатель, который включает свет классическим образом, без пульта.
            И к платке прикреплен датчик уровня освещенности, благодаря которому «ночник» не включается при движении, если комната уже освещена. Ну и таймер, само собой разумеется: свет выключается через час после последнего движения, и само собой потом включается либо с кнопки, либо с пульта, либо если в комнате темно, и активирован режим ночника.
            В идеале — платка закрыта в коробе, т.е. ее не так просто будет заресетить.
            В общем куча интересных if \ then \ else \ toggle.
            Задача ESP8266 — регулировать эти фичи с удаленного ресурса, а не только с пульта.


            1. webself
              20.05.2015 13:26
              +1

              На ардуинке реализуете логику опроса + управления устройствами по UART, кучу интересных if/else/… + нормальный веб-интерфейс — на еспшке, которая с ардуинкой по уапту общается. Нет?


  1. Rumlin
    11.05.2015 18:15
    +2