ESP32开发之旅——人体感应传感器HC-SR501

ESP32开发之旅——人体感应传感器HC-SR501

前言

  • 在本文中,您将学会HC-SR501人体感应传感器在ESP32中的使用,本文提供了简单的示例供学习参考。
  • 需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时ESP8266也可按照本文进行开发)。
  • 对HC-SR501模块熟悉的小伙伴可以直接跳至正文部分

HC-SR501介绍

  • HC-SR501 是一款基于热释电效应的人体热释运动传感器,能检测到人体或者动物上发出的红外线。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3oBp1KUu-1638190982962)(C:\Users\99216\AppData\Roaming\Typora\typora-user-images\image-20211129203539480.png)]

  • 这个传感器模块可以通过两个旋钮调节检测 3 ~ 7 米的范围,5秒至5分钟的延迟时间,还可以通过跳线来选择单次触发以及重复触发模式

img

电气参数

功能
工作电压范围直流电压4.5~20V(在3.3V下也能使用,但不稳定)
电平输出没有检测到移动时为低电平(0V),检测到移动输出高电平(3.3V)
时间延迟调节用于调节在检测到移动后,维持高电平输出的时间长短,可以调节范围(0.5-200S)
感应距离调节用于调节检测范围,可调节范围 3米 ~ 7米
检测模式条件可选择单次检测模式和连续检测模式
感应范围小于120度锥角,7米以内

时间延迟、距离调节方法

时间延迟调节

将菲涅尔透镜朝上,左边旋钮调节时间延迟,顺时针方向增加延迟时间,逆时针方向减少延迟时间。

距离调节

将菲涅尔透镜朝上,右边旋钮调节感应距离长短,顺时针方向减少距离,逆时针方向增加距离。

两种触发方式(可跳线选择)

不可重复触发方式

即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平;

可重复触发方式

即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)

正文

所需材料

  • ESP32开发板(已刷入MicroPython固件,未刷入的小伙伴可以参考我前面的教程)
  • 人体感应传感器HC-SR501
  • Thonny(其他支持MicroPython开发的IDE皆可)

连接说明

在HC-SR501只有三个引脚,引脚对应表如下:

HC-SR501VCCOUTGND
ESP32/ESP82665VP22GND

在安信可的ESP32上,板载LED对应的引脚为——P2

核心代码

from machine import I2C,Pin
import time

Human=Pin(22,Pin.IN,Pin.PULL_UP) #构建人体红外对象
led=Pin(2,Pin.OUT) #构建 led 对象, GPIO2,输出

def fun(Human): #当检测到人时,板载LED灯亮起
    print("1")
    led.on()
    time.sleep_ms(500)
    led.off()
    
Human.irq(fun,Pin.IRQ_RISING) #定义中断,上升沿触发

现象

代码成功写入ESP32后,且硬件连接无误的情况下,可以看到以下现象:

  • 当HC-SR501检测到人体时,ESP32板载LED灯亮起。
  • 当人体离开HC-SR501检测范围后,ESP32板载LED灯熄灭。

参考资料

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来程序猿小吕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值