要点: 低功耗, 深度睡眠, 反复重启.
开发环境:Arduino IDE 1.8.19. 器材:Mini D1 Wi-Fi 模块, 磁簧开关(Reed Switch 干簧管).
Mini D1 Wi-Fi 模块
利用Mini D1 Wi-Fi和磁簧开关制作门窗报警器.
大门附近没有电源插座, 需要电池供电. 考虑利用深度睡眠方式解决耗电问题. 用定时唤醒深度睡眠的方式, 虽然简单, 但以定时巡检方式监视大门的状态, 显然不可取. 于是乎决定用磁簧开关连接RST端, 及时检测到开关状态, 触发RST, 达到重启, 唤醒深度睡眠的方法. 按习惯思维, 在3.3V和RST之间接了上拉电阻, RST和地之间接干簧管. 同时, 为了随时监视电池, 连线3.3V和A0, 读取电压值.
图1-1 上拉电阻方案
代码如下, 为了便于阅览, 与主题关系不大的处理全部放在subroutine里.
#include <ESP8266WiFi.h>
#i