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

   日期:2024-01-22     浏览:101    评论:0    
核心提示:BH1750FVI 是一款 IIC 接口的数字型光强度传感器集成电路。下面介绍一下其在树莓派下的用法。

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 <stdio.h>
#include <fcntl.h>
#include <linux/i2c-dev.h>
#include <errno.h>
#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\n",strerror(errno)); return 1;
    }
    if(ioctl( fd,I2C_SLAVE,I2C_ADDR)<0 )
    {
        printf("ioctl 错误 : %s\r\n",strerror(errno));return 1;
    }
    val=0x01;
    if(write(fd,&val,1)<0)
    {
        printf("上电失败\r\n");
    }
    val=0x11;
    if(write(fd,&val,1)<0)
    {
        printf("开启高分辨率模式2\r\n");
    }
    usleep(200000);
    if(read(fd,&buf,3)){
        flight=(buf[0]*256+buf[1])*0.5/1.2;
        printf("光照度: %6.2flx\r\n",flight);
    }
    else{
        printf("读取错误\r\n");
    }
}

编译、运行:

sudo gcc -o bh1750 bh1750.c
sudo ./bh1750
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服