上一节课我们学了倾斜传感器,让ESP32能感知“姿势”的变化。今天再给它加一项新能力——感知震动

想象一下:你不在家的时候,有人碰了你的门,ESP32立刻检测到震动,LED闪烁报警——这就是震动报警器。电动车防盗锁、智能门磁、快递包裹防摔监测……这些应用的背后,都是震动传感器在工作。

今天这节课,我们就用震动传感器 + ESP32 + LED,做一个简单的震动报警器。

第一步:找到课程,看看成品效果

打开逗脑IDE,点击顶部 “教程”,在 “硬件” → “ESP32 + MicroPython” 分类下,找到震动报警器

在这里插入图片描述

打开课件,你会看到本节课的最终效果:轻轻敲击或震动传感器,板载LED立刻开始快速闪烁报警,像警灯一样!

在这里插入图片描述

第二步:什么是震动传感器?

本节课使用的是震动传感器模块,它是一种高灵敏度无方向性震动传感器

在这里插入图片描述

工作原理:

  • 传感器内部有一个弹簧结构,静止时电路处于断开状态
  • 当受到震动或敲击时,弹簧晃动,电路瞬间导通
  • 传感器向ESP32输出一个短暂的低电平或高电平信号(取决于模块类型)

简单来说:震动 → 内部弹簧晃动 → 电路瞬间接通 → ESP32检测到变化。

第三步:动手接线——就3根线

震动传感器和倾斜传感器一样,只有3根线,接线非常简单:

传感器引脚连接ESP32说明
VCC3.3V供电正极
GNDGND供电负极
DOGPIO13数字信号输出

在这里插入图片描述

第四步:代码——震动触发,LED闪烁报警!

代码逻辑分为两部分:

  1. 读取传感器:不断检测GPIO13是否有震动信号
  2. 报警响应:检测到震动时,LED快速闪烁报警
from machine import Pin
import time

# 引脚配置
sensor = Pin(13, Pin.IN)   # 震动传感器
led = Pin(2, Pin.OUT)      # 板载LED

while True:
    ret = sensor.value()    # 读取传感器数据(1表示震动,0表示静止)
    print(ret)              # 打印状态
    
    if ret:   # 检测到震动!
        for i in range(100):   # 闪烁100次报警
            led.value(1)
            time.sleep(0.1)
            led.value(0)
            time.sleep(0.1)
    
    time.sleep(0.1)   # 每0.1秒检测一次

代码逻辑:

传感器状态ret值执行动作
静止0LED灭,不报警
震动触发1LED闪烁100次!

关键参数:

  • for i in range(100):闪烁100次,持续约20秒
  • time.sleep(0.1):亮灭各0.1秒,闪烁频率5Hz
  • time.sleep(0.1):每0.1秒检测一次,响应灵敏

第五步:保存运行,敲一下试试!

Ctrl + S 保存,选择ESP32开发板设备,给文件命名(比如shake_alarm.py),点击保存。

在这里插入图片描述

点击运行按钮。

试试看:

  • 传感器静止不动 → LED熄灭,终端打印 0
  • 用手指轻轻敲击传感器 → LED瞬间开始快速闪烁!终端打印 1

震动报警器能做什么?

应用场景工作原理
门窗防盗报警门被撞击时触发报警
电动车防盗锁车辆被碰触时声光报警
快递包裹防摔监测摔落时记录震动事件
智能家居安防窗户被敲击时推送通知
振动台测试检测设备是否在振动

更重要的是: 如果把LED换成继电器(上一节课内容),再外接一个大功率报警器或喇叭,就能做一个真正的声光防盗报警器了!

全程回顾

步骤操作效果
找到课程教程→硬件→ESP32+MicroPython→震动报警器了解震动报警器效果
认识传感器了解震动传感器的工作原理理解“弹簧晃动→电路导通”
动手接线VCC→3.3V, GND→GND, DO→GPIO13硬件就位
打开代码点击“打开”按钮代码进入编辑器
保存运行Ctrl+S → 选择ESP32 → 运行系统开始监测
测试报警轻轻敲击传感器LED闪烁报警!

如果你对本节课感兴趣,去官网(www.dounao.cn)下载逗脑IDE,准备好相关配件,跟着课件走一遍。

有任何问题或建议,欢迎在评论区留言告诉我们。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐