цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Как сделать так, чтобы ESP8266 работал годы на одной батарейке с помощью режима глубокого сна

Как сделать так, чтобы ESP8266 работал годы на одной батарейке с помощью режима глубокого сна

Автор: Mike(admin) от 13-11-2016, 20:25

ESP8266, безусловно, является универсальным устройством, способным выступать в роли WiFi модуля и микроконтроллера с довольно богатой периферией. Однако использование этих возможностей увеличивает энергопотребление, особенно при обмене данными в сетях WiFi. Но в большинстве проектов желательно, чтобы модуль ESP8266 был автономным устройством, то есть питался от батарейки или аккумулятора и потреблял как можно меньше энергии.


Чтобы сэкономить драгоценную энергию батарейки и существенно продлить срок эксплуатации, не нужно держать устройство в рабочем режиме постоянно, вместо этого следует переводить его в режим сна, когда операции не выполняются. Например, при постоянной работе модуля литий-полимерного аккумулятора емкостью 2500 мАч хватит всего лишь на 30 часов. Поэтому в данном материале будет показано, как с помощью режима глубокого сна эффективно снизить энергопотребление ESP8266.


В данном примере будет использоваться модуль SparkFun ESP8266 Thing. Также потребуется адаптер USB-TTL типа FTDI, плата для прототипирования, соединительные провода, источник питания с креплением на плату, мультиметр и аккумулятор. Также для программирования ESP8266 потребуется последняя версия Arduino IDE.


Итак, чтобы иметь возможность эффективно задействовать режим сна, нужно для начала соединить выводы DTR и XPD друг с другом, что будет свидетельствовать о том, что ESP8266 сможет выйти из режима глубокого сна. Поскольку мы будем измерять энергопотребление, то к линиям питания и земли следует подключить мультиметр. Вот так это выглядит:


Как сделать так, чтобы ESP8266 работал годы на одной батарейке

Как сделать так, чтобы ESP8266 работал годы на одной батарейке

Чтобы производить измерения, нужно заставить работать ESP8266. Для этого загрузите приведенный ниже скетч в ESP8266. Этот код будет отправлять простое сообщение на сайт dweet.io, который представляет собой облачный сервис для устройств Интернета вещей с целью логирования различных данных. Отправка сообщения выполняется раз в 10 минут, остальное время модуль находится в режиме глубокого сна. Не забудьте изменить логин и пароль сети WiFi на свои значения. При программировании ESP8266 выводы DTR и XPD не должны быть соединены между собой.



#include <ESP8266WiFi.h>

const char* ssid = "wifi-name";
const char* password = "wifi-password";
const int sleepTimeS = 10;
const char* host = "dweet.io";
void setup() 
{
 
  Serial.begin(115200);
  Serial.println("ESP8266 in normal mode");
  
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println(WiFi.localIP());
  Serial.print("Connecting to ");
  Serial.println(host);
  
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
  
  client.print(String("GET /dweet/for/myesp8266?message=lowpower") + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  delay(10);
  
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
  
  Serial.println();
  Serial.println("closing connection");
  Serial.println("ESP8266 in sleep mode");
  ESP.deepSleep(sleepTimeS * 1000000);
  
}
void loop() 
{
}

Итак, как мы видим, организация режима глубокого сна осуществляется довольно просто. По сути, для этого была задействована только одна функция ESP.deepSleep, в аргументе которой задается время пребывания ESP8266 в неактивном режиме. Если ваш мультиметр уже подключен, то сразу после старта программы он может показать такую картину:


Как сделать так, чтобы ESP8266 работал годы на одной батарейке

Это потребление тока в момент, когда ESP8266 работает, то есть отсылает сообщение на сайт. Это довольно таки не мало, поскольку при таком энергопотреблении заряда аккумулятора на долго не хватит. Но через пару секунд значение тока существенно уменьшается (практически в 10 раз), что свидетельствует о том, что модуль перешел в режим глубокого сна.


Как сделать так, чтобы ESP8266 работал годы на одной батарейке

Это, конечно, существенная экономия, но все равно при этом модуль ESP8266 будет работать не более полмесяца на одном заряде. Чтобы еще больше сократить энергопотребление, нужно избавиться от одного лишнего потребителя – светодиода. Поскольку теперь он берет на себя львиную долю энергии. После его демонтажа получаем на экране мультиметра значение тока 77 мкА или 0.077 мА. Вот теперь ESP8266 может прослужить автономно более трех лет!




© digitrode.ru


Теги: ESP8266



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

Комментарии:

Оставить комментарий