BME680 – 环境传感器综合指南
通常,各种元素都需要传感和评估,例如湿度、光线、温度、气体、水位等。因此,进行测量的最常见方法是通过温度计、气体传感器芯片等传感设备。尽管效率很高,它们只感知一种元素。因此,我们将向您介绍一款多功能传感器 BME680。
BME680传感器是一款4合1环境参数传感器,包括气压传感器、温度传感器等。此外,安装本文所需的库后,您将了解如何将BME680与Arduino电路板连接。
什么是 BME680?
BME680 是一款环境传感器,集成了高精度、高线性度的温度、湿度、大气压/大气压力和 VOC 气体传感器。简而言之,BME680 气体传感器可在测量室内空气质量之前检测广泛的气体范围,例如 VOC(挥发性有机化合物)。
通常,传感器可根据特定操作保证高 EMC 稳健性、长期稳定性和优化消耗。

BME680 环境传感器
此外,它主要适用于低功耗和紧凑型产品,如可穿戴和移动设备。
BME680 精度
下表显示了BME68在压力、湿度和温度传感器方面的绝对精度。

BME680 工作范围
T第二张表显示了BME680的压力、湿度和温度传感器的工作范围。

BME680 引脚排列

BME680 设备配置
BME 680 传感器有如下所示的六个引脚;

原理图 - 带有 BME 680 的 Arduino
BME60 传感器通信并支持 SPI 接口和 I2C 通信协议。此外,所需的组件包括跳线、面包板、Arduino UNO 和 BME680 传感器模块。

使用跳线/电缆将 BME680 传感器与 Arduino UNO 连接
Arduino UNO 与 BME680 使用 I2C

Arduino UNO 与 BME680 使用 SPI

注意;
- 查找 Adafruit BME680 库,然后在您的 Arduino IDE 中安装 BME680 库/传感器模块以获得所需的传感器读数。
- 然后,在库安装后重新启动您的 Arduino IDE。
- 接下来,使用 BME680 需要安装 Adafruit_sensor 库。因此,我们的下一步是将 Adafruit_sensor 库添加到 Arduino IDE。
如何从 BME680 传感器模块获取读数?
我们将使用 AdafruitBME680 库中的一个草图示例来获取湿度、温度、压力和气体的传感器读数。
首先,使用已安装的 Adafruit_sensor 和 BME680 库打开您的 Arduino IDE。然后,从文件、示例和 Adafruit BM680 库继续执行 bme680async。
所以,这是原始代码的布局;


代码如何运作
需要的库
第一个原始代码首先插入所需的库,如下所示;
- 用于 BME 680 传感器接口的 Adafruit_BME680 和 Adafruit_Sensor 库,
- SPI 库,以及
- I2C 库。

SPI 或 I2C 通信
接下来,您可以将 SPI 或 I2C 通信协议与 BME680 一起使用,因为两者都有所需的代码。
我们的代码适用于 I2C 协议,因此请确保取消注释下面定义 SPI 引脚的代码行。

海平面的压力
在第三部分中,创建了一个名为 SEALEVELPRESSURE_HPA 的变量,以百帕为单位保存海平面压力。

通常,该变量将海平面压力与给定压力进行比较以获得估计的高度。并且由于它具有默认值,因此请使用准确的当前海平面压力值以获得更好的准确性。
I2C
正如我们之前所说,I2C 是默认的通信协议。因此,下面的行将在您的 Arduino I2C 引脚(即 D4/SDA 和 D5/SCL)上显示 bme(Adafruit_BME680 对象)。

此外,您可以在使用 SPI 时取消注释下面的代码行并在上面的行上进行注释。

设置()
第五,setup() 有助于启动串行通信。

初始化 BME 680 传感器
第六个代码步骤需要初始化 BME 680 传感器。

然后,设置 BME 680 的燃气加热器、过滤器和过采样参数。

循环()
我们最后的 loop() 步骤过程为我们提供了 BME 680 传感器测量结果,它命令传感器使用 bme.begin reading() 开始异步读取。随后,这将有助于了解接收阅读的时间。

稍后,使用 end reading() 方法结束或阻止异步读取。

最后,我们现在将获得包含的传感器读数;


实战演示
现在我们知道代码是如何工作的,我们将把它上传到 Arduino UNO 板上。接下来,要显示传感器测量值,请打开串行监视器(115200 波特率)。然后,按下RST板上写的按钮,应该如下图所示;

BME 680 应用程序
BME 680传感器的应用包括:


(智能手表——可穿戴设备的类型)

(显示空气中颗粒物数量的传感器)

(计步器)
结论
简而言之,BME 680 是一款数字环境传感器,可测量一氧化碳等气体、大气压力、湿度和温度。
如果您想了解更多关于 BME 680 的信息或有任何疑问,请联系我们。
工业技术