03 / 20
看好冰箱
用磁簧开关检测冰箱门是否打开过久。
运行此实验 →实验目标
打开门并等待报警,关门使计时清零。
工作原理
用磁簧开关检测冰箱门是否打开过久。 开门状态持续超过等待时间才报警,关门会重置计时。 此处为配套教学模型,硬件示例基于经典 ESP32 与 Arduino-ESP32 3.x;网络、声波、负载和机械运动均为简化演示。
动手试一试
- 打开此实验
- 打开门并等待报警,关门使计时清零。
接线
- GPIO 27 / GND — 磁簧开关 · 内部上拉
- GPIO 25 — 无源蜂鸣器信号
示例代码
unsigned long openedAt = 0;
// Reed switch between GPIO 27 and GND; magnet closes it.
void setup() {
pinMode(27, INPUT_PULLUP);
ledcAttach(25, 2000, 8);
}
void loop() {
bool open = digitalRead(27) == HIGH;
if (!open) openedAt = millis();
ledcWriteTone(25, open && millis() - openedAt >= 3000 ? 880 : 0);
}检查理解
为什么报警前要等待?
查看答案
开门状态持续超过等待时间才报警,关门会重置计时。