BMP180压力传感器Arduino接口完整指南

在本项目中,我将向您展示如何将BMP180大气压力和温度传感器与Arduino接口。在此过程中,您将看到典型压力传感器的功能和规格,以及BMP180 Arduino接口的工作原理。

我们将了解如何将此传感器与Arduino UNO板连接,安装必要的软件库并从传感器获取数据。

BMP180-with-Arduino-1

介绍

大气压力(也称为大气压力)是空气在给定点施加的力。用于测量大气压力的装置称为气压计(因此得名为气压计)。

大气压力与海拔或高度成反比,即随着海拔升高,大气压力降低。因此,山顶上的气压比海平面上的气压小。

大气压力的测量非常重要,因为它在地球上的各个点都不同,有助于研究、分析和预测天气和气候。

我们知道国际单位制的压力单位是帕斯卡,即单位面积的力(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传感器
BMP180传感器引脚

实际的BMP180传感器是一个尺寸为3.6mm x 3.8mm的微型设备。它采用7针LGA封装,通过I/O接口与微控制器通信2.C或SPI(最终传感器中只能有一个)。

传感器的一个重要方面是其校准。传感器需要正确校准以产生可接受的结果。幸运的是,所有博世BMP180大气压力传感器都经过工厂校准,可以随时使用。

BMP180模块

许多第三方模块和传感器制造商采用微型BMP180传感器,设计了一个小型模块,非常适合Arduino和其他DIY项目。目前可用的大多数模块都使用I2.C通信。

BMP180模块前面板

如果要查看BMP180模块的引脚,its将打印在PCB背面。此版本的传感器通过I/O进行通信2.因此,模块仅由4个引脚组成。

  • VIN
  • GND
  • 症状自评量表
  • SDA

BMP180模块背面

模块示意图

由于BMP180传感器的工作电压为3.3V,因此模块由车载3.3V电压调节器组成,因此您可以直接从5V板(如Arduino)为模块供电。如果您想要模块的完整示意图,请查看下一幅图。

BMP180模块示意图
BMP180模块示意图

从示意图中可以看出,I2.C分别使用两个4.7 KΩ电阻器将通信拉高。你不必再担心上拉电阻了。

重要提示:似乎有太多的虚假、错误或校准错误的博世BM180传感器(至少以我的经验来看)。我买了3个不同的模块(从三个不同的供应商)只是为了这个项目。因此,从知名卖家那里购买。

将BMP180与Arduino连接

现在我们已经了解了BMP180传感器及其功能,让我们继续进行BMP180 Arduino连接。BMP180传感器必须是Arduino可用的最简单传感器之一。

要开始使用BMP180,您只需要一个Arduino UNO、一个BMP180传感器、一束连接线和一台PC(或笔记本电脑)。就这样。您可以进行一些简单的连接,并从Arduino IDE的串行监视器上的传感器获取数据。

BMP180-with-Arduino-2

但为了让事情变得有趣,我使用了一个LCD模块,具体来说是一个16×2字符的LCD,来显示传感器的结果。

这样做的原因是,您可以将这个简单的项目扩展为全面的气象站项目,因为BMP180可以测量压力、温度和海拔高度,通过LCD显示屏,实现气象站将更加直观。

所需组件

  • 阿杜伊诺·乌诺
  • BMP180压力传感器
  • 16×2液晶显示器
  • PCF8574 I2.C液晶显示模块(可选)
  • 试验板
  • 连接线
  • 试验板电源(可选)

电路图

下图显示了BMP180与Arduino接口的电路图。我选择了一个I2.C液晶显示器作为传感器也是基于I2.C通信。你可以查看更多关于接口I的信息2.带Arduino的C液晶显示器在这里.

BMP180 Arduino接口电路图
BMP180 Arduino接口电路图

密码

在阅读代码之前,您必须下载BMP180传感器的库。有三种选择:

  • Adafruit BMP085库
  • Adafruit BMP085统一图书馆
  • Sparkfun的BMP180突破Arduino库

我选择“Adafruit BMP085库”是因为它简单。您始终可以尝试使用其他库。是的,图书馆说“BMP085”。这是因为BMP180是上一代BMP085传感器的替代品。

软件方面没有区别,两个传感器可以使用相同的库。

重要提示:我相信即使是BMP180传感器也已被博世停止使用,并由BME280替代。所以,我的下一个项目将基于BME280传感器。

要下载库,请打开Arduino IDE并转到工具->管理库…

BMP180-Library-1

在搜索栏中,键入BMP180并按enter键。选择“Adafruit BMP085库”并单击安装。

BMP180-Library-2

就代码而言,我只是使用库读取传感器的压力和温度读数,并将其显示在LCD上。

工作

BMP180的数据表清楚地说明了如何从传感器中提取压力和温度数据。此处提供的所有信息均取自数据表本身。

下图显示了从传感器读取数据的步骤顺序。这里,UT是16位温度数据,UP是16位–19位压力数据。

BMP180测量步骤

在这个过程中,你必须进行很多复杂的数学计算。例如,看看计算BMP180传感器的温度和压力所涉及的数学。

BMP180计算温度压力

这只是完整逻辑的一部分,数据表为您提供了完整的信息。

感谢Arduino库,因为它们在幕后完成了所有必要和复杂的计算,并为您提供了简单的API。Adafruit BMP085库中的一些有用API包括:

  • 读取温度();
  • readPressure();
  • 读取水平压力();
  • 阅读高度();
  • 读取温度();
  • 读取压力();

有关API的更多信息,请访问库的github页面。

结论

在本项目中,您学习了如何将BMP180传感器与Arduino接口,并测量压力和温度值。在未来的项目中,我将向您展示如何将更好、更先进的BME280传感器与Arduino连接起来。

留话

您的电子邮件地址将不会发布。已标记必填字段*

电子设备
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu