Submit

03 / 20

看好冰箱

用磁簧开关检测冰箱门是否打开过久。

运行此实验 →
ESP32 教学电路插图,显示模组、引脚和本课实验元件

实验目标

打开门并等待报警,关门使计时清零。

工作原理

用磁簧开关检测冰箱门是否打开过久。 开门状态持续超过等待时间才报警,关门会重置计时。 此处为配套教学模型,硬件示例基于经典 ESP32 与 Arduino-ESP32 3.x;网络、声波、负载和机械运动均为简化演示。

动手试一试

  1. 打开此实验
  2. 打开门并等待报警,关门使计时清零。

接线

  • 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);
}

检查理解

为什么报警前要等待?

查看答案

开门状态持续超过等待时间才报警,关门会重置计时。

参考资料

Arduino-ESP32 ↗ · GPIO 参考 ↗

MAKE A THOUGHTFUL CHOICE

Your shortlist, side by side.

Pricing models are indicative. Check each official website for current plans and limits.