树莓派上使用光照强度检测(BH1750)传感器

BH1750FVI 是一款 IIC 接口的数字型光强度传感器集成电路。下面介绍一下其在树莓派下的用法。

一、前期准备

1、环境要求

GY30模块(BH1750FVI传感器)

树莓派 Raspbian 系统

python-smbus

IIC 开启

启动 IIC 驱动的方法:

运行 sudo raspi-config 进入 Interfacing Options 高级设置,将 SPI 与 I2C 设置为 Enable 后重启系统。

2、安装 python-smbus

这个安装会附带安装 i2c-tools,省的单独安装了

sudo apt-get install python-smbus

3、将 BH1750 连接到树莓派

二、连接测试

sudo i2cdetect -y 1

三、光照强度测量

1、创建代码文件 bh1750.c

#include #include #include #include #define I2C_ADDR 0x23 int main(void) { int fd; char buf[3]; char val,value; float flight; fd=open(“/dev/i2c-1”,O_RDWR); if(fd<0) { printf("打开文件错误:%s\r ",strerror(errno)); return 1; } if(ioctl( fd,I2C_SLAVE,I2C_ADDR)<0 ) { printf("ioctl 错误 : %s\r ",strerror(errno));return 1; } val=0x01; if(write(fd,&val,1)<0) { printf("上电失败\r "); } val=0x11; if(write(fd,&val,1)<0) { printf("开启高分辨率模式2\r "); } usleep(200000); if(read(fd,&buf,3)){ flight=(buf[0]*256+buf[1])*0.5/1.2; printf("光照度: %6.2flx\r ",flight); } else{ printf("读取错误\r "); } } 编译、运行: sudo gcc -o bh1750 bh1750.c sudo ./bh1750