接口BMP280与Arduino读取压力,温度和高度
扫描二维码
随时随地手机看文章
本文展示了如何将BMP280压力传感器与Arduino连接起来。BMP280是由博世Sensortec公司开发的压力、湿度、温度和近似高度传感器。它非常适用于与环境相关的应用,该传感器也可用于与假肢相关的应用,其中压力是一个非常关键的参数。在无人机中,压力、温度和高度可以用于监测和进一步观察。
博世BMP280可以与各种微控制器接口,如PIC, AVR, ESP32/ESP8266, Arduino等。在本教程中,我们将使用Arduino来连接我们的BMP280传感器。除了BMP280之外,还有一种叫做BMP180的传感器可以测量压力。我们之前已经将BMP180与树莓派和BMP180与ESP32接口,以构建基于物联网的气象站,如果感兴趣,您可以查看它们。
组件的要求
1.Arduino Uno和USB电缆。
2.BMP280。
3.试验板。
4.跳线。
BMP280压力传感器的工作原理
在开始接口之前。让我们知道一些关于传感器的重要细节。该传感器的工作电压最低为1.7V至3.6V。BMP280由一个压阻传感元件组成,然后与a /D转换器连接。该转换器提供具有特定传感器补偿的转换结果以及数字接口,并配备了内置IIR滤波器,以最大限度地减少输出数据中的干扰。
BMP280可以使用I2C和SPI两种协议进行接口。它可以测量300至1100 hPa的压力,精度为±1%,温度范围为-40至+85℃,精度为±1%,并可以通过一些计算给出近似的海拔高度。该传感器的工作电压为1.2V至3.6V,在休眠模式下电流消耗为0.1uA,这使得它适用于嵌入式电子产品中的低功耗应用。要了解有关传感器及其技术规格的更多信息,您可以查看BMP280 Datasheet。
简而言之,让我们了解什么是I2C(内部集成电路)协议,它允许我们将多个从机与一个或多个主电子设备集成在一起。它是一个2线协议,可以支持多达1008个从机。每个从属节点可以使用唯一的地址进行标识。
BME280与BMP280的区别
请注意,有两种类型的传感器在市场上出售,即BME280和BMP280。以下是这两种传感器之间的区别。
•BME280和BMP280都是由博世Sensortec公司开发的。
•BMP280传感器用于查找数字压力和温度,而BME280可用于测量数字压力,温度和湿度。
•由于这个差异,BME280比BMP280稍微贵一些。
•因此,根据您的项目要求,您可以选择适合您的用途的传感器。
BMP280与Arduino接口电路图
BMP280与Arduino连接的完整原理图如下所示。我还使用了注释选项来说明哪些引脚连接到什么。
连接非常简单,我使用面包板安装传感器,并使用连接线将传感器与Arduino连接起来。我的硬件设置如下所示
在Arduino IDE中安装BMP280库
为了使用I2C与该模块通信,避免复杂的编程技术,我们需要使用这个库Adafruit_BMP280_Library。下载zip格式的库,并按照步骤将其安装到Arduino IDE中
转到您下载zip文件夹的位置,选择zip文件并按“打开”。
这将在Arduino IDE上安装库。该传感器的默认I2C地址为0x77。如果您遇到如下所示无法找到有效的BMP280传感器的错误,请检查接线!
如果问题仍然存在,将Adafruit_BMP280.cpp的_i2caddr中的传感器地址修改为0x76,如下所示。
如果一切正常,可以在串行监视器上找到输出,如下所示。
本文中演示的完整程序可以在本页底部找到。代码解释如下。
我们通过定义库开始程序,如下所示。
然后我们将定义SPI引脚,如果我们使用SPI通信协议。
在设置中,我们定义串行监视器波特率,并通过调用begin()函数初始化I2C模块。它有一些打印语句,使代码在重置时交互。如果传感器由于错误的地址或布线问题而无法读取,则在串行上给出错误以检查传感器的布线和地址。如果传感器连接成功,它将开始在串行终端上打印值。
在循环中,代码使用以下函数向我们提供来自传感器的读数,并将其打印到串行终端上。
在市场上,有各种各样的传感器模块,我们拥有的传感器是直接到接口的,但是你有机会得到可能有I2C地址选择器的传感器,像这样,
您不必担心,我们将解释如何使用与上面解释的相同步骤连接此传感器。
完整的工作也可以在下面的视频链接中找到。总之,这种传感器使我们能够轻松获得压力,湿度,温度和海拔,而无需任何复杂的布线或编程。该传感器工作在I2C协议上,该协议易于理解,并具有预定义的功能,可以为我们完成工作。
本文编译自iotdesignpro