I would like to ask you to sign up with the Best Hosting and read more web hosting reviews.

Aвтономное питание ESP8266

Печать
Категория: Умный дом
24 М 2015 Просмотров: 4004

Часто возникает вопрос с автономным питанием ныне уже популярного модуля ESP8266. В качестве стабилизатора чаще всего используется AMS1117.

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

Далее возьмём проект 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. Задержку отправки изменять не надо, но если хочется, то можно. Но для однократной отправки — не надо.



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

os_sprintf(data, "Новый адрес", 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 минут.

В активном режиме (от просыпания до засыпания) — от 240мА до 360мА. В среднем 300мА где-то в районе 5-10 секунд.
В спящем — <1mA.

@2012. Блог "Умный дом Екатеринбурга". Все права защищены.

Free Joomla 1.7 Templates designed by College Jacke