在本教程中,我们将学习使用 Arduino IDE 将 BME680 传感器与 ESP32 连接。BME680环境传感器,用于测量环境温度、气压、相对湿度和气体(VOC)或室内空气质量(IAQ)。我们将学习如何使用 Arduino 核心编程将其与 ESP32 连接。为了进行演示,首先,我们将使用一个简单的 Arduino IDE 代码来读取 BME680 传感器数据并将其显示在 Arduino IDE 的串行监视器上。此外,我们还将看到一个在 OLED 显示屏上显示 BME680 传感器读数的示例。
先决条件
在开始本课程之前,请确保您熟悉并安装了最新版本的 Arduino IDE。另外,请确保您在 Arduino IDE 中安装了 ESP32 插件。
BME680介绍
BME680是一款四合一电力驱动传感器,集成了温度、压力、湿度和气体检测传感器。它的工作电压为1.8-3.8V,并通过I2C和SPI协议与其他微控制器通信。该传感器用于跟踪空气质量、湿度指示器、天气趋势、家庭自动化、控制和 GPS 增强等领域。
工作范围和精度
BME680 的一些主要 特性包括:
- 温度测量:测量环境温度,精度为±1.0℃,工作范围为-40至85℃。
- 相对湿度测量:测量相对湿度,响应速度快,精度为±3%,工作范围为0-100%。
- 压力测量:以±1 hPa绝对精度测量气压,以±1米精度测量海拔高度。压力操作范围为 300-1100 hPa。
准确性 | 工作范围 | |
---|---|---|
温度 | ±1.0℃ | -40 至 85 ℃ |
湿度 | ±3% | 0-100% |
压力 | ±1 hPa | 300-1100 hPa |
- 气体测量:检测包括挥发性有机化合物 (VOC) 在内的多种气体,从而确定室内空气质量。
- 由于其紧凑的尺寸和低功耗运行,它适用于移动应用、智能手表和导航系统。
与 BME280 相比,BME680 是一款独特且更新的传感器,因为它包含小尺寸 MOX(金属氧化物)传感器。
气体传感器
BME680传感器可以测定环境中污染物/VOC的数量,例如一氧化碳、乙烷、异戊二烯/2-甲基-1,3丁二烯、丙酮和乙醇。VOC 通过金属氧化物层上吸附的氧分子来检测。它的实际检测是通过改变MOX传感器的阻值原理来完成的。每当 MOX 与空气中的污染物接触时,传感器的电阻就会随着污染物浓度的变化而变化。这意味着空气中污染物数量较多会导致传感器的电阻显着降低。同样,随着空气中 VOC 浓度的降低,传感器的电阻也会明显升高。
注意:BME680 气体传感器不是 CO2 或乙醇测量传感器。它从空气中的VOC中得到CO2的相对值,但不能用于直接测量CO2。
与所有其他气体传感器一样,BME680 每次也会给出不同的结果。为了确保更高的准确性,我们必须根据已知源对其进行校准,然后绘制其曲线。由于传感器在初次使用期间灵敏度水平不是恒定的,因此最初建议运行四十八小时,随后可以在每次使用前将其调低至三十分钟。
BME680 模块
市场上有多种不同尺寸和端子数量的 BME680 传感器。但所有模块都通过SPI但所有模块都通过SPI和I2C接口提供数据,我们可以使用相同的 Arduino 草图来获取传感器读数。其中一些如下所示:
可以根据自己的方便以及要连接的微控制器类型来选择模块。在本文中,我们将使用带有 6 个端子的 BME680 传感器,如下所示。它有 4 个 SPI 和两个 I2C 端子。
引脚图
下图显示了BME680传感器的引脚排列:
BME680 引脚分配
引脚 |
---|