乐鑫技术交流
直播中

尚文清

7年用户 1547经验值
私信 关注
[问答]

使用PIR (HC-SR501) 来唤醒运动中的ESP-12E,为什么电池耗尽这么快?

我有一个问题:我的电池在大约 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("Starting 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 );
}


更多回帖

发帖
×
20
完善资料,
赚取积分