零基础学ESP32:光敏传感器——让ESP32拥有“感光”能力!

前面我们学了温度传感器(感知冷热)、倾斜传感器(感知姿态)、震动传感器(感知震动)------今天再给ESP32加上一项新感官:感光能力。

手机屏幕根据环境亮度自动调节亮度、路灯天黑自动亮起、楼道声控灯白天不工作......这些功能的背后,都是光敏传感器在工作。

今天这节课,我们就用光敏传感器,让ESP32能"看见"光的强弱!

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

打开逗脑IDE,点击顶部 "文档" ,在 "课程" → "ESP32 + MicroPython" 分类下,找到光敏传感器。

打开课件,你会看到本节课的最终效果:终端实时打印光线数据------用手遮住传感器,数值变大;移开手,数值变小。

第二步:什么是光敏传感器?

本节课使用的是光敏电阻模块,它包含一个光敏电阻和一个比较器电路。

光敏电阻的原理:

光敏电阻的阻值随光照强度变化而变化。

  • 光线越强 → 电阻越小
  • 光线越弱 → 电阻越大

这个模块非常贴心地提供了两路信号输出,可以满足不同场景的需求:

引脚 信号类型 输出值 说明
AO 模拟输出 0~4095 数值越小 ,光线越强 ;数值越大 ,光线越弱
DO 数字输出 0 或 1 光线充足时输出0 ,光线暗时输出1(阈值可调)

第三步:动手接线

光敏传感器模块有4个引脚:

传感器引脚 连接ESP32 说明
VCC 3.3V 电源正极
GND GND 电源地
AO GPIO33 模拟输出(接ADC引脚)
DO GPIO15 数字输出(阈值触发)

第四步:代码------同时读取模拟量和数字量

python 复制代码
from machine import Pin, ADC
import time


# 模拟量
ps2_y = ADC(Pin(33))
ps2_y.atten(ADC.ATTN_11DB)  # 这里配置测量量程为3.3V

# 数字量
p15 = Pin(15, Pin.IN)

# 循环检测
while True:
    val_y = ps2_y.read()  # 0-4095
    light = p15.value()
    print(val_y, light)
    time.sleep(0.1)

两路信号的解读:

信号 取值 含义
AO(模拟量) 数值越小 光线越亮 ☀️
数值越大 光线越暗 🌑
DO(数字量) 0 光线充足(有光) ☀️
1 光线不足(无光) 🌑

第五步:保存运行,看光线变化!

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

点击运行按钮,终端开始打印数据。

试试看:

  • 传感器对着光源(光线充足)→ 数值小,数字量输出0
  • 用手遮住传感器(光线变暗)→ 数值变大,数字量输出1

光敏传感器能做什么?

应用场景 原理
自动照明 环境变暗时自动开灯
智能窗帘 光线过强时自动拉上窗帘
手机/屏幕亮度调节 根据环境光自动调节屏幕亮度
路灯控制 天黑自动亮起,天亮自动熄灭
温室补光 光线不足时自动开启补光灯
相机测光 检测环境光线,提示曝光参数

结合继电器: 光敏传感器 + 继电器 = 天黑自动开灯的智能路灯!

全程回顾

步骤 操作 效果
找到课程 文档→课程→ESP32+MicroPython→光敏传感器 了解光敏传感器
认识原理 光线强→电阻小,光线弱→电阻大 理解AO和DO两种输出
动手接线 VCC→3.3V, GND→GND, AO→GPIO33, DO→GPIO15 硬件就位
打开代码 点击"打开"按钮 代码进入编辑器
保存运行 Ctrl+S → 选择ESP32 → 运行 终端打印数据
遮住传感器 用手遮住光敏电阻 数值变化!

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

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

相关推荐
ragnwang6 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
王中阳Go6 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
weixin_307779137 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
云和数据.ChenGuang8 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
荣码10 小时前
长上下文与大文档处理:200页PDF怎么喂给AI,我踩了4个坑
java·python
databook11 小时前
Pandas 与 Polars:语法、性能和资源占用方面的对比
python·数据分析·pandas
威哥爱编程11 小时前
Python 智能体开发实战 10:本地跑得好好的,一并发就崩?把它做成一个能上线的服务
python·agent
威哥爱编程11 小时前
Python 智能体开发实战 09:改了提示词,到底是变好还是变坏?搭一套能打分的离线评测
python·agent
meiying883812 小时前
多快递公司快递单号批量查询接口怎么对接?Python 聚合查询实现
java·大数据·python
Hello_Pyhx12 小时前
Deep-Live-Cam 源码配置思路:环境、模型与执行后端分开排查
python