1. 项目概述
BH1750是一款数字式环境光传感器,能够精确测量环境光照强度(单位:Lux)。而ESP32作为一款功能强大的物联网开发板,结合BH1750可以实现智能照明、农业温室监测等多种应用场景。本文将详细介绍如何使用ESP32通过I2C接口读取BH1750传感器的光照强度数据。
在实际项目中,我曾用这套方案为某植物工厂开发光照监测系统。BH1750的高精度特性(0-65535 Lux量程)和ESP32的无线传输能力完美结合,实现了对植物生长环境的实时监控。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件准备与连接
2.1 所需材料清单
- ESP32开发板(任何型号均可,如ESP32-WROOM-32)
- BH1750光照传感器模块
- 杜邦线若干(建议使用优质线材,我遇到过劣质线导致的I2C通信不稳定)
- 面包板(可选,用于临时搭建电路)
2.2 电路连接详解
BH1750与ESP32通过I2C接口通信,标准连接方式如下:
| BH1750引脚 | ESP32引脚 | 备注 |
|---|---|---|
| VCC | 3.3V | 注意:BH1750工作电压为2.4V-3.6V,切勿接5V |
| GND | GND | 共地很重要 |
| SCL | GPIO22 | I2C时钟线,也可用其他支持I2C的引脚 |
| SDA | GPIO21 | I2C数据线 |
| ADDR | 悬空或GND | 地址选择:悬空=0x23,接GND=0x5C |
注意:我曾遇到ADDR引脚接触不良导致地址识别错误的问题,建议焊接牢固或使用热熔胶固定。
3. 软件环境配置
3.1 Arduino IDE设置
- 安装ESP32开发板支持包:
- 文件 > 首选项 > 附加开发板管理器网址添加:
code复制https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - 工具 > 开发板 > 开发板管理器,搜索安装"esp32"
- 文件 > 首选项 > 附加开发板管理器网址添加:
