树莓派集成BH1750光敏传感器配置

我是代码小白,一个正在做毕设的秃头少年。鄙人拙作,有不当之处,还请指教。

今天介绍的是在树莓派上集成BH1750光照传感器并收集信息的配置过程。

1.硬件

树莓派PI3B+RS
GY-302 BH1750 FVI模块

2.树莓派环境

可以执行 cmake、make等指令。
因为本文的传感器驱动代码使用c语言编写的

3.树莓派与BH1750接线


BH1750光照传感器有五个引脚,按从上到下的顺序是VCC,GND,SCL,SDA,ADDR,我们要用的口只有前四个,ADDR口现在对于我们无用,VCC口连接树莓派的2口,GND口连树莓派的6口,SCL口连接树莓派的5口,SDA口连接树莓派的3口,具体连接如图(2-4)所示。

4.将驱动代码bh1750.c和编译指示性文件CMakeLists.txt复制到树莓派的文件夹中

bh1750.c代码

#include <stdio.h>
#include <fcntl.h>
#include <linux/i2c-dev.h>
#include <errno.h>
#define I2C_ADDR 0x23
void usleep(int micro_seconds);
ssize_t write (int fd, const void * buf, size_t count);
ssize_t read(int fd, void * buf, size_t count);
int ioctl( int fd, int request, .../* void *arg */ );
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("开启高分辨率模式\r\n");}usleep(200000);if(read(fd,&buf,3)){flight=(buf[0]*256+buf[1])*0.5/1.2;printf("%6.2f",flight);}else{printf("0.0");}
}

CMakeLists.txt代码

cmake_minimum_required(VERSION 2.8)
project( bh1750.c )
add_executable( bh1750 bh1750.c )

5.编译驱动文件

远程连接树莓派,打开到你放置代码的文件夹
输入命令
cmake .
结束之后在输入
make
如图

之后就是测试代码是否生效
执行命令 ./bh1750
成功的话就会有光照数据传出来

可以看到光照传感器的值已经传出来了。
单位为lux

6.有些树莓派可能没有激活激活i2c串口导致提示 打开文件错误

解决办法:打开树莓派配置界面
sudo raspi-config
选择:
Interfacing Options-> I2C->Enable
不同版本的raspbian选择方式可能不一样
更新i2c配置
sudo apt-get install i2c-tools
我刚开始就是这个错误,到这里已经解决了。
这部分参考链接:
参考i2c激活

树莓派集成BH1750光敏传感器配置相关推荐

  1. STM32+BH1750光敏传感器获取光照强度

    一.环境介绍 MCU:  STM32F103ZET6 光敏传感器: BH1750数字传感器(IIC接口) 开发软件: Keil5 代码说明:使用IIC模拟时序驱动,方便移植到其他平台,采集的光照度比较 ...

  2. python连接传感器_树莓派4B之光敏传感器模块(python3)

    背景 本人最因工作原因接触到各种电路板,传感器,而自己又是一个小白,随意在其他朋友的推荐下决定从树莓派开始玩传感器:本例子为树莓派控制红外避障传感器 材料 1.树莓派4b 2.火焰传感器模块 3.导线 ...

  3. c# iot .net6 树莓派 读取光敏传感器三针 代码实例

    这里用c#   .net 6接入光敏传感器 三针 完美操作实例 设备: 1.三针光敏传感器 2.树莓派 ​ 结果: 1.可以拿到 当前光亮度是否到达 自自己在模块上设置的阀值   (高电平 黑),(低 ...

  4. 树莓派集成Hx711称重传感器demo

    我是代码小白,一个正在做毕设的秃头少年.鄙人拙作,有不当之处,还请指教. 今天,我怀着无比悲痛的心情写下这边博文.为什么呢,因为就在刚刚,我的一个树莓派3B+烧了,因为接线短路. 大家接线的时候一定要 ...

  5. 基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计

    目录 1 项目概述 1.1 项目介绍 1.2 项目开发环境 1.3 小组人员及分工 2 需求分析 2.1 系统需求分析 2.2 可行性分析 2.3 项目实施安排 3 系统硬件设计 3.1 系统整体硬件 ...

  6. 树莓派摄像头c语言,树莓派图像处理之摄像头安装+配置教程

    树莓派图像处理之摄像头安装+配置教程 本文简单讲讲树莓派如何安装摄像头,以及一些配置和简单使用 树莓派的主板上有一个专门为摄像头模块预留的接口:CSI(Camera Serial Interface) ...

  7. 【STM32Cube】学习笔记(一):光敏传感器

    文章目录 前言 一.光敏传感器是什么? 二.硬件电路设计 三.软件设计 1.CubeMX配置 2.CubeIDE代码 3.结果显示 总结 附录 前言 本篇文章用STM32CubeMX和STM32Cub ...

  8. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据

    简 介: 使用ESP32读取BH1750的光度传感器的数据.但是最终不知道甚么原因,所读取的数据都是0 ? 后面通过证明,说明在原来进行I2C写的时候出现了语法错误. 关键词: BH1750,ESP3 ...

  9. 树莓派4B之火焰传感器模块(python3)

    背景 本人最因工作原因接触到各种电路板,传感器,而自己又是一个小白,随意在其他朋友的推荐下决定从树莓派开始玩传感器:本例子为树莓派控制红外避障传感器 材料 1.树莓派4b 2.火焰传感器模块 3.导线 ...

  10. c语言光敏程序代码,ADC实验之光敏传感器

    ADC实验之光敏传感器 硬件连接 我们可以测量A的电位,进而测量光的强度,光强与A点电压的对应关系如下: 电流反应的光敏二极管的导通状态,光强与电流对应关系如下: 因此,我们可以得出ADC读取的电压值 ...

最新文章

  1. 关于 form表单 嵌套问题的解决方案
  2. 转换string_类型转换详解
  3. java中String的比较符
  4. 常见位操作:获取,设置,清零
  5. html的实战性介绍
  6. 小米android停止,小米由于错误而停止将Android 10推广到MiA3
  7. mysql行级锁 select for update
  8. APIcloud解决检出到指定路径:false问题
  9. 修正 Mui 下拉上拉刷新功能
  10. Cesium最全源码集合
  11. VMware 15 上Mac虚拟机卡顿情况的优化
  12. 计算机集成声卡输出通道,电脑如何屏蔽集成声卡使用独立声卡?
  13. 可视化实验四:大数据可视化工具—ECharts(二)
  14. 空间管理 - 碎片化问题及解决思路
  15. DHCP的IP地址租约、释放
  16. ios app 上传时 ERROR ITMS-90096
  17. Linux 内存管理中的 RSS 、VSZ等的含义
  18. 给“四时有惑”播客招募几位志愿者
  19. php empty 和空字符串区别
  20. 【第25章】移动应用安全需求分析与安全保护工程(软考:信息安全工程师) -- 学习笔记

热门文章

  1. oracle 密码解锁
  2. 深度学习基本算法介绍
  3. 【SHOI2008】【BZOJ1023】cactus仙人掌图
  4. Oracle的软解析(soft prase)和硬解析(hard prase)及绑定变量
  5. 努比亚Z5Smini刷机包 正式版时间锁屏 音量唤醒 精简优化 流畅稳定
  6. Directx11教程(58) 鼠标控制摄像机
  7. brain segmentation调研--Brain Parcellation as a Pretext Tas
  8. 汽车 Automotive > 汽车安全芯片调研
  9. C语言 整数形式输出
  10. Urllib2库+正则爬取内涵段子