我有一个问题:我的电池在大约 300 次唤醒后就没电了(每次大约 6-7 秒向 MQTT 发送消息)。
我使用 PIR (HC-SR501) 来唤醒运动中的 ESP-12E 并且我的
电路是这样
的:唯一的区别是我在 ESP-12E 和
电源之间使用了一个 ESP-12E 和一个晶体管 (HT7333) 来获得3.3V。
PIR (HC-SR501) 直接连接到电池组 4.5V (3 x AA)。(这将在稍后更改,因为我发现
PIR 中有一个 3.3V 的调节器,但这与 atm 无关)。
虽然我测试了一个编程器 (FTDI232) 永久连接到 (TX、RX、GND),但在空洞时间由 USB 供电。
主要问题是:为什么我的电池耗尽这么快?我做错了什么吗?我能做些什么更好?
我的 deepsleep、WiFi 连接和 Mqtt 代码取自我的 temp./light/hum。传感器项目,
在深度睡眠模式下消耗 24 uA,并且有(5000 次唤醒没有问题。
我注意到 ESP 的 LED 在深度睡眠时仍然亮着。即使我在睡觉前添加关闭它。
代码:
全选....
// Thats the "outro" part:
// LED off:
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
StartDeepSleep();
WiFiOff();
void StartDeepSleep()
{
Serial.printf("Star
ting Deepsleep seconds: ");
Serial.println((int)DEEPSLEEP);
//ESP.deepSleep(CalcSecSleepTime(), WAKE_RFCAL);
ESP.deepSleep(CalcSecSleepTime(), WAKE_RF_DISABLED );
delay(100);
}
uint64_t CalcSecSleepTime()
{
uint64_t accumulator = DEEPSLEEP * 1000000;
return accumulator;
}
void WiFiOff()
{
Serial.println("diconnecting client and WiFi.");
WiFi.forceSleepBegin();
wifi_station_disconnect();
wifi_set_opmode(NULL_MODE);
wifi_set_sleep_type(MODEM_SLEEP_T);
wifi_fpm_open();
delay( 1 );
}