项目作者: sanjaywu

项目描述 :
基于RT-Thread的BH1750FVI驱动软件包,非sensor框架
高级语言: C
项目地址: git://github.com/sanjaywu/bh1750.git
创建时间: 2019-04-19T06:59:08Z
项目社区:https://github.com/sanjaywu/bh1750

开源协议:Apache License 2.0

下载


BH1750FVI 软件包

1 介绍

BH1750FVI 软件包提供了使用光照强度传感器 BH1750FVI 基本功能,并且提供了软件平均数滤波器可选功能 。本文介绍该软件包的基本功能,以及 Finsh/MSH 测试命令等。

基本功能主要由传感器 BH1750FVI 决定:在输入电压为 2.4v-3.6v 范围内,测量光照强度的量程如下表所示:

功能 量程
光照强度 1lx - 65535lx

BH1750FVI 的分辨率以及测量时间都与测量模式有关,具体如下表所示:

测量模式 测量时间 分辨率
H-resolution Mode2 Typ. 120ms. 0.5 lx
H-resolution Mode Typ. 120ms. 1 lx
L-resolution Mode Typ. 16ms. 4 lx

1.1 目录结构

名称 说明
bh1750.h 传感器使用头文件
bh1750.c 传感器使用源代码
SConscript RT-Thread 默认的构建脚本
README.md 软件包使用说明
BH1750FVI_datasheet.pdf 官方数据手册

1.2 许可证

BH1750FVI 软件包遵循 Apache-2.0 许可,详见 LICENSE 文件。

1.3 依赖

依赖 RT-Thread I2C 设备驱动框架。

2 获取软件包

使用 BH1750FVI 软件包需要在 RT-Thread 的包管理器中选择它,具体路径如下:

  1. RT-Thread online packages
  2. peripheral libraries and drivers --->
  3. [*] BH1750FVI: Ambient Light Sensor IC BH1750FVI driver library --->
  4. [*] Enable average filter by software
  5. (10) The number of averaging
  6. (1000) Peroid of sampling data(unit ms)
  7. Version (latest) --->

每个功能的配置说明如下:

  • BH1750FVI: Ambient Light Sensor IC BH1750FVI driver library:选择使用 BH1750FVI 软件包;
  • Enable average filter by software:开启采集光照强度软件平均数滤波器功能;
  • The number of averaging:取平均数的采样数目;
  • Peroid of sampling data(unit ms):采集数据的周期,时间单位 ms
  • Version:配置软件包版本,默认最新版本。

然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update 命令更新包到 BSP 中。

3 使用 BH1750FVI 软件包

按照前文介绍,获取 BH1750FVI 软件包后,就可以按照 下文提供的 API 使用传感器 bh1750Finsh/MSH 命令进行测试,详细内容如下。

3.1 API

3.1.1 初始化

bh1750_device_t bh1750_init(const char *i2c_bus_name)

根据总线名称,自动初始化对应的 bh1750 设备,具体参数与返回说明如下表

参数 描述
name i2c 设备名称
返回 描述
!= NULL 将返回 bh1750 设备对象
= NULL 查找失败

3.1.2 反初始化

void bh1750_deinit(bh1750_device_t dev)

如果设备不再使用,反初始化将回收 bh1750 设备的相关资源,具体参数说明如下表

参数 描述
dev bh1750 设备对象

3.1.3 读取光照强度

float bh1750_read_light(bh1750_device_t dev)

通过 bh1750 传感器读取光照强度测量值,返回浮点型光照强度值,具体参数与返回说明如下表

参数 描述
dev bh1750 设备对象
返回 描述
!= 0.0 测量光照强度值
=00000.0 测量失败

3.2 Finsh/MSH 测试命令

BH1750FVI 软件包提供了丰富的测试命令,项目只要在 RT-Thread 上开启 Finsh/MSH 功能即可。在做一些基于 BH1750FVI 的应用开发、调试时,这些命令会非常实用,它可以准确的读取传感器测量的光照强度。具体功能可以输入 bh1750 ,可以查看完整的命令列表

  1. msh />bh1750
  2. Usage:
  3. bh1750 probe <dev_name> - probe sensor by given name
  4. bh1750 read - read sensor bh1750 data
  5. msh />

3.2.1 在指定的 i2c 总线上探测传感器

当第一次使用 bh1750 命令时,直接输入 bh1750 probe <dev_name> ,其中 <dev_name> 为指定的 i2c 总线,例如:i2c2。如果有这个传感器,就不会提示错误;如果总线上没有这个传感器,将会显示提示找不到相关设备,日志如下:

  1. msh />bh1750 probe i2c2 #探测成功,没有错误日志
  2. msh />
  3. msh />bh1750 probe i2c66 #探测失败,提示对应的 I2C 设备找不到
  4. [E/bh1750] can't find bh1750 device on 'i2c66'
  5. msh />

3.2.2 读取数据

探测成功之后,输入 bh1750 read 即可获取光照强度,包括提示信息,日志如下:

  1. msh />bh1750 read
  2. read bh1750 sensor intensity : 00431.6 lx
  3. msh />

4 注意事项

暂无。

5 联系方式