在本项目中,我将向您展示如何将BMP180大气压力和温度传感器与Arduino接口。在此过程中,您将看到典型压力传感器的功能和规格,以及BMP180 Arduino接口的工作原理。
我们将了解如何将此传感器与Arduino UNO板连接,安装必要的软件库并从传感器获取数据。
介绍
大气压力(也称为大气压力)是空气在给定点施加的力。用于测量大气压力的装置称为气压计(因此得名为气压计)。
大气压力与海拔或高度成反比,即随着海拔升高,大气压力降低。因此,山顶上的气压比海平面上的气压小。
大气压力的测量非常重要,因为它在地球上的各个点都不同,有助于研究、分析和预测天气和气候。
我们知道国际单位制的压力单位是帕斯卡,即单位面积的力(1帕=1 N/m)2.)但大气压通常以百帕(1百帕=100帕)或毫巴(1毫巴=100帕=1百帕)表示。
在海平面上,平均大气压力约为101325 Pa(≈ 1013 mbar或1013 hPa)。这称为标准大气(atm=101325 Pa)。
足够多的物理课。让我们继续看BMP180Arduino接口. 首先,让我们了解一下BMP180大气压力传感器。
BMP180传感器简介
BMP180是博世的数字大气压力传感器。它是一种基于压阻式MEMS器件的超低功耗器件。它可以测量300 hPa至1100 hPa范围内的大气压力。
除了压力外,BMP180传感器还可以测量0范围内的温度0C至650C.通过测量压力,您还可以扣除该点的高度(因为两者都是相关的)。
实际的BMP180传感器是一个尺寸为3.6mm x 3.8mm的微型设备。它采用7针LGA封装,通过I/O接口与微控制器通信2.C或SPI(最终传感器中只能有一个)。
传感器的一个重要方面是其校准。传感器需要正确校准以产生可接受的结果。幸运的是,所有博世BMP180大气压力传感器都经过工厂校准,可以随时使用。
BMP180模块
许多第三方模块和传感器制造商采用微型BMP180传感器,设计了一个小型模块,非常适合Arduino和其他DIY项目。目前可用的大多数模块都使用I2.C通信。
如果要查看BMP180模块的引脚,its将打印在PCB背面。此版本的传感器通过I/O进行通信2.因此,模块仅由4个引脚组成。
- VIN
- GND
- 症状自评量表
- SDA
模块示意图
由于BMP180传感器的工作电压为3.3V,因此模块由车载3.3V电压调节器组成,因此您可以直接从5V板(如Arduino)为模块供电。如果您想要模块的完整示意图,请查看下一幅图。
从示意图中可以看出,I2.C分别使用两个4.7 KΩ电阻器将通信拉高。你不必再担心上拉电阻了。
重要提示:似乎有太多的虚假、错误或校准错误的博世BM180传感器(至少以我的经验来看)。我买了3个不同的模块(从三个不同的供应商)只是为了这个项目。因此,从知名卖家那里购买。
将BMP180与Arduino连接
现在我们已经了解了BMP180传感器及其功能,让我们继续进行BMP180 Arduino连接。BMP180传感器必须是Arduino可用的最简单传感器之一。
要开始使用BMP180,您只需要一个Arduino UNO、一个BMP180传感器、一束连接线和一台PC(或笔记本电脑)。就这样。您可以进行一些简单的连接,并从Arduino IDE的串行监视器上的传感器获取数据。
但为了让事情变得有趣,我使用了一个LCD模块,具体来说是一个16×2字符的LCD,来显示传感器的结果。
这样做的原因是,您可以将这个简单的项目扩展为全面的气象站项目,因为BMP180可以测量压力、温度和海拔高度,通过LCD显示屏,实现气象站将更加直观。
所需组件
- 阿杜伊诺·乌诺
- BMP180压力传感器
- 16×2液晶显示器
- PCF8574 I2.C液晶显示模块(可选)
- 试验板
- 连接线
- 试验板电源(可选)
电路图
下图显示了BMP180与Arduino接口的电路图。我选择了一个I2.C液晶显示器作为传感器也是基于I2.C通信。你可以查看更多关于接口I的信息2.带Arduino的C液晶显示器在这里.
密码
在阅读代码之前,您必须下载BMP180传感器的库。有三种选择:
- Adafruit BMP085库
- Adafruit BMP085统一图书馆
- Sparkfun的BMP180突破Arduino库
我选择“Adafruit BMP085库”是因为它简单。您始终可以尝试使用其他库。是的,图书馆说“BMP085”。这是因为BMP180是上一代BMP085传感器的替代品。
软件方面没有区别,两个传感器可以使用相同的库。
重要提示:我相信即使是BMP180传感器也已被博世停止使用,并由BME280替代。所以,我的下一个项目将基于BME280传感器。
要下载库,请打开Arduino IDE并转到工具->管理库…
在搜索栏中,键入BMP180并按enter键。选择“Adafruit BMP085库”并单击安装。
就代码而言,我只是使用库读取传感器的压力和温度读数,并将其显示在LCD上。
工作
BMP180的数据表清楚地说明了如何从传感器中提取压力和温度数据。此处提供的所有信息均取自数据表本身。
下图显示了从传感器读取数据的步骤顺序。这里,UT是16位温度数据,UP是16位–19位压力数据。
在这个过程中,你必须进行很多复杂的数学计算。例如,看看计算BMP180传感器的温度和压力所涉及的数学。
这只是完整逻辑的一部分,数据表为您提供了完整的信息。
感谢Arduino库,因为它们在幕后完成了所有必要和复杂的计算,并为您提供了简单的API。Adafruit BMP085库中的一些有用API包括:
- 读取温度();
- readPressure();
- 读取水平压力();
- 阅读高度();
- 读取温度();
- 读取压力();
有关API的更多信息,请访问库的github页面。
结论
在本项目中,您学习了如何将BMP180传感器与Arduino接口,并测量压力和温度值。在未来的项目中,我将向您展示如何将更好、更先进的BME280传感器与Arduino连接起来。