Доброго времени суток всем.
Есть проблема: в режиме DeepSleep модуль ESP8266-01 потребляет примерно 30мА, хотя вроде должен в пределах микроампер. Во время работы потребление вроде адекватное, в районе 100мА.
Проект - отправка данных с DHT-22 датчика на свой веб-сервер раз в 10 минут. Поэтому нужен DeepSleep, дабы не разряжать аккумулятор.
Для пробуждения из сна пропаял Wake ногу МК к Reset пину.
В попытках снизить потребление выпаял оба светодиода, результата никакого не дало.
Можеть есть у кого идеи, откуда такое высокое потребление во сне?
Есть проблема: в режиме DeepSleep модуль ESP8266-01 потребляет примерно 30мА, хотя вроде должен в пределах микроампер. Во время работы потребление вроде адекватное, в районе 100мА.
Проект - отправка данных с DHT-22 датчика на свой веб-сервер раз в 10 минут. Поэтому нужен DeepSleep, дабы не разряжать аккумулятор.
Для пробуждения из сна пропаял Wake ногу МК к Reset пину.
В попытках снизить потребление выпаял оба светодиода, результата никакого не дало.
Можеть есть у кого идеи, откуда такое высокое потребление во сне?
Код:
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <ESP8266HTTPClient.h>
#include <DHTesp.h>
#define DEBUG_MODE 0
#define DHT_PIN 0
#define SLEEP_TIME 10 * 1e6
ADC_MODE(ADC_VCC);
DHTesp dht;
void setup() {
#ifdef DEBUG_MODE
Serial.begin(115200);
#endif
WiFiManager wifiManager;
wifiManager.autoConnect("WeatherSensor");
#ifdef DEBUG_MODE
Serial.println(ESP.getVcc());
Serial.println("WiFi connected...");
Serial.println();
Serial.println("Status\tHumidity (%)\tTemperature (C)\tHeatIndex (C)");
#endif
dht.setup(DHT_PIN, DHTesp::DHT22);
float humidity = NAN;
float temperature = NAN;
int attempts = 5;
do
{
delay(2000);
humidity = dht.getHumidity();
temperature = dht.getTemperature();
attempts--;
} while (isnan(temperature) && attempts);
#ifdef DEBUG_MODE
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print(humidity, 1);
Serial.print("\t\t");
Serial.print(temperature, 1);
Serial.print("\t\t");
Serial.print(dht.computeHeatIndex(temperature, humidity, false), 1);
#endif
if (!isnan(temperature)) {
HTTPClient http;
http.begin("<URL>");
http.addHeader("Content-Type", "application/json");
http.POST(String(String("{\"temp\": ") + temperature + String(", \"hum\":") + humidity + String("}")));
http.writeToStream(&Serial);
http.end();
}
delay(2000);
ESP.deepSleep(SLEEP_TIME);
}
void loop()
{
}