石岛编程周老师:
实战是掌握编程最快的方法,没有之一
放下书本、放下理论,
马上动手做起来。
一 ESP32 Python项目简介:
本程序结合ESP32、SR602人体感应模块、LED灯做一个简单的人体感应灯,
理解人体感应灯的原理,做为升级版人体感应灯的学习基础。
二 硬件说明:
三 ESP32 Python人体感应灯接线图
四 ESP32 Python人体感应灯源代码
# 导入 time 模块,用于获取系统时间、延时等操作
import time
# 从 machine 模块导入 Pin 类,用于控制 GPIO 引脚
from machine import Pin
# 定义 LED 连接的引脚:GPIO4,设置为输出模式(OUT)
LED = Pin(4, Pin.OUT)
# 定义 PIR(人体红外传感器)连接的引脚:GPIO5,设置为输入模式(IN)
PIR = Pin(5, Pin.IN)
# 初始化一个变量 lefttime,用于记录"LED 应该保持点亮的截止时间"
# 初始值为 0,表示一开始没有触发,LED 应熄灭
lefttime = 0
# 主循环:程序将无限重复执行以下逻辑
whileTrue:
# 读取 PIR 传感器当前的输出值(0 或 1)
# pir_val = 1 表示检测到人体移动;pir_val = 0 表示未检测到
pir_val = PIR.value()
# 如果 PIR 检测到人体(pir_val 为真,即非零)
if pir_val:
# 更新 lefttime:设置为当前时间 + 10 秒
# 即:从现在起,LED 将持续亮 10 秒
lefttime = time.time() + 10
# 判断当前系统时间是否还在"应点亮"的时间段内
if time.time() < lefttime:
# 如果是,则打开 LED
LED.on()
else:
# 否则,关闭 LED
LED.off()
# 短暂休眠 10 毫秒,避免 CPU 占用过高,同时保证响应速度
# 不加这句会导致主循环运行过快,浪费资源
time.sleep_ms(10)
END
✨ 今日份小成就达成!
如果你觉得这个项目有用,欢迎:
️⃣ 点赞/在看——让更多同学看到
️⃣ 留言告诉我——你还想做什么作品?
️⃣ 关注公众号,更新各种实战项目,不迷路!
✨ 石岛编程周老师的课
带你用实战项目快速掌握编程,
分享Python、C++、ESP32、掌控板、AI编程等软硬件编程实战项目,
欢迎关注!