前面我们学了光敏传感器(感光)、声音传感器(听觉)、温度传感器(感温)——今天再给ESP32加上一项更神奇的技能:感知人体。
自动门一靠近就打开、楼道灯人走过就亮起、安防系统检测到入侵立即报警……这些功能的背后,都是人体红外感应传感器在工作。
今天这节课,我们就用HC-SR501人体感应传感器,让ESP32能“看到”人!
第一步:找到课程,看看成品效果
打开逗脑IDE,点击顶部“文档”,在“课程” → “ESP32 + MicroPython”分类下,找到人体红外检测。
打开课件,你会看到本节课的最终效果:没有人时LED熄灭,当人走进感应范围,LED立刻亮起;人离开后,LED自动熄灭。
第二步:HC-SR501是什么?
HC-SR501是一款基于热释电效应的人体红外传感器。它能够检测到人体或动物发出的红外线。
工作原理:
- 人体会发出特定波长的红外线(约10μm)
- 传感器内部的热释电元件能检测到这种红外线变化
- 当人移动时,红外线变化被检测到,传感器输出高电平
| 参数 | 说明 |
|---|---|
| 感应范围 | ≤120°锥角,最远7米 |
| 工作电压 | 4.5V~20V(推荐5V) |
| 输出信号 | 检测到人→高电平(3.3V),无人→低电平(0V) |
| 延时调节 | 0.5秒~200秒(维持高电平的时间) |
| 感应距离调节 | 3米~7米可调 |
两种触发模式(可通过跳线选择):
| 模式 | 工作方式 |
|---|---|
| 不可重复触发 | 检测到人→输出高电平→延时结束后自动变为低电平(即使人还在感应区也不会重新触发) |
| 可重复触发 | 检测到人→输出高电平→只要人在感应区内活动,就一直维持高电平→人离开后延时结束才变为低电平 |
第三步:动手接线
HC-SR501传感器有3个引脚:
| 传感器引脚 | 连接ESP32 | 说明 |
|---|---|---|
| VCC | 5V | 电源正极(推荐5V,3.3V不稳定) |
| GND | GND | 电源地 |
| OUT | GPIO13 | 信号输出(接中断引脚) |
📌 重要提示:HC-SR501推荐使用5V供电!3.3V下虽然也能工作,但检测不稳定,容易出现误报或漏报。
第四步:代码——中断触发,瞬间响应!
本节课使用中断方式检测人体信号——一旦检测到人,立即触发中断,点亮LED!
frommachineimportPinimporttime p13=Pin(13,Pin.IN)# 构建人体红外对象led=Pin(2,Pin.OUT)# 构建 led 对象, GPIO2,输出deffun(*args):# 当检测到人时,板载LED灯亮起print("1")led.on()time.sleep_ms(500)led.off()p13.irq(fun,Pin.IRQ_RISING)# 定义中断,上升沿触发代码逻辑:
| 事件 | 传感器输出 | 执行动作 |
|---|---|---|
| 无人 | 低电平(0) | LED熄灭 |
| 人走进感应区 | 上升沿(0→1) | 中断触发→LED亮起0.5秒 |
为什么使用中断?
如果不用中断,程序需要不停轮询传感器引脚,浪费大量CPU资源。使用中断后,程序可以安心执行其他任务,只有人出现时才触发响应——高效又及时!
第五步:保存运行,测试感应效果!
按Ctrl + S保存,选择ESP32开发板设备,给文件命名(比如hc_sr501.py),点击保存。
点击运行按钮,程序开始工作。
试试看:
- 远离传感器(2米以外)→ LED熄灭,终端无输出
- 慢慢靠近传感器→ 走到感应范围内,LED瞬间亮起,终端打印“1”
- 静止不动→ 如果选择了“不可重复触发”模式,LED会熄灭;如果选择了“可重复触发”模式,只要你在感应区内活动,LED持续亮着
HC-SR501能做什么?
| 应用场景 | 用途 |
|---|---|
| 楼道自动照明 | 人走过时灯自动亮起,人走后熄灭 |
| 安防报警系统 | 检测到入侵者触发报警 |
| 自动门控制 | 人靠近时自动开门 |
| 智能卫生间 | 人来灯亮,人走灯灭 |
| 节能控制系统 | 检测到无人时自动关闭设备 |
| 互动装置 | 人靠近触发声音/灯光/视频播放 |
调节技巧——让传感器适应你的需求
传感器背面的两个电位器可以调节:
| 旋钮 | 作用 | 调节方向 |
|---|---|---|
| 延时调节 | 输出高电平的持续时间 | 顺时针→延长(最长200秒),逆时针→缩短(最短0.5秒) |
| 距离调节 | 感应距离范围 | 顺时针→增加(最远7米),逆时针→缩短(最近3米) |
全程回顾
| 步骤 | 操作 | 效果 |
|---|---|---|
| 找到课程 | 文档→课程→ESP32+MicroPython→人体红外检测 | 了解人体感应传感器 |
| 认识原理 | 热释电效应 + 两种触发模式 | 理解传感器工作方式 |
| 动手接线 | VCC→5V, GND→GND, OUT→GPIO13 | 硬件就位 |
| 打开代码 | 点击“打开”按钮 | 代码进入编辑器 |
| 保存运行 | Ctrl+S → 选择ESP32 → 运行 | 开始感应人体 |
| 走进感应区 | 人走到传感器前方3~7米内 | LED亮起! |
如果你对本节课感兴趣,去官网(www.dounao.cn)下载逗脑IDE,准备好相关配件,跟着课件走一遍。
有任何问题或建议,欢迎在评论区留言告诉我们。