BMP180压力传感器Arduino界面的完整指南

在这个项目中,我将向您展示如何与Arduino接口BMP180气压和温度传感器。在此过程中,您将看到典型压力传感器的功能和规范以及BMP180 Arduino界面的工作方式。

我们将看到如何将该传感器与Arduino Uno板连接起来,安装必要的软件库并从传感器中获取数据。

bmp180-with-arduino-1

介绍

气压压力(也称为大气压)是在给定点上施加的空气的力。用于测量大气压力的设备称为气压计(因此是气压压力)。

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

海气压的测量值非常重要,因为它在地球上的点之间变化,并且有助于研究,分析和预测天气和气候。

我们知道压力的SI单位是Pascal,它是单位面积的力(1 pa = 1 n/m2)但是,气压通常在海hoccascal(1 HPA = 100 PA)或Millibar(1 MBAR = 100 PA = 1 HPA)中表示。

在海平面,平均大气压约为101,325 PA(≈1,013mbar或1,013 HPA)。这被称为标准气氛(ATM = 101,325 PA)。

关于物理学的足够讲座。让我们继续使用BMP180Arduino界面。首先,让我们了解有关BMP180气压传感器的一些信息。

BMP180传感器的简短说明

BMP180是Bosch的数字气压传感器。它是基于压电电阻MEMS设备的超低动力设备。它可以测量300 hPa至1100 hPa的大气压。

除压力外,BMP180传感器还可以测量0的温度0C至650C.通过测量压力,您也可以扣除点的高度(因为它们都是相关的)。

BMP180传感器
BMP180传感器引脚

实际的BMP180传感器是一个微型设备,尺寸为3.6mm x 3.8mm。它可在7 PIN LGA包中使用,并通过I与微控制器进行通信2C或SPI(最终传感器中只有一个)。

传感器的一个重要点是其校准。传感器需要正确校准以产生可接受的结果。幸运的是,所有Bosch BMP180气压传感器均已出厂校准,以便它们可以使用。

BMP180模块

许多第三方模块和传感器制造商都采用了小型BMP180传感器,并设计了一个小模块,非常适合Arduino和其他DIY项目。今天可用的大多数模块使用i2C沟通。

BMP180模块前

如果您想查看BMP180模块的引脚,则将其打印在PCB的背面。此版本的传感器通过i通信2C,因此该模块仅由4个引脚组成。

  • Vin
  • gnd
  • SCL
  • SDA

BMP180模块背

模块的示意图

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

BMP180模块检查
BMP180模块的示意图

从示意图,i的SCL和SDA引脚中可以看到2C通信分别使用两个4.7kΩ电阻来升高。您不必再担心上拉电阻了。

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

将BMP180与Arduino连接

现在,我们已经看到了一些有关BMP180传感器及其功能的信息,让我们继续进行BMP180 Arduino Connection。BMP180传感器必须是Arduino可用的最简单传感器之一。

为了开始使用BMP180,您只需要一个Arduino Uno,一个BMP180传感器,一束连接电线和PC(或笔记本电脑)。而已。您可以建立几个简单的连接,并从Arduino IDE的串行显示器上获取传感器的数据。

bmp180-with-arduino-2

但是,为了使事情变得有趣,我使用了一个特定于16×2字符LCD的LCD模块,以显示传感器的结果。

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

需要组件

  • Arduino Uno
  • BMP180压力传感器
  • 16×2 LCD
  • PCF8574 i2C LCD模块(可选)
  • 面包板
  • 连接电线
  • 面包板电源(可选)

电路原理图

下图显示了将BMP180与Arduino接口的电路图。我选择了一个我2C LCD作为传感器也基于I2C沟通。您可以查看有关接口的更多信息2c lcd与arduino这里

BMP180-Arduino-Interface-Circuit-Diagram
BMP180 Arduino界面的电路图

代码

在进入代码之前,您必须下载BMP180传感器的库。有三个选择:

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

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

在软件方面没有差异,您可以为两个传感器使用相同的库。

重要的提示:我相信即使是BMP180传感器也被Bosch停用,并由BME280取代。因此,我的下一个项目将基于BME280传感器。

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

BMP180-图1

在搜索栏中,键入BMP180并点击Enter。选择“ Adafruit BMP085库”,然后单击“安装”。

BMP180-图2

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

在职的

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

下图显示了要遵循的步骤顺序以读取传感器的数据。在这里,UT是16位温度数据,UP为16位 - 19位压力数据。

BMP180测量步骤

在此过程中,您必须执行许多复杂的数学计算。例如,看看BMP180传感器的温度和压力所涉及的数学。

BMP180计算 - 压力

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

感谢Arduino库,因为它们在幕后进行了所有必要且复杂的计算,并为您提供简单的API。一些有用的API表格Adafruit BMP085库是:

  • readtemperature();
  • readPressure();
  • readsealevelpressure();
  • readaltitude();
  • readrawtemperature();
  • ReadRawPressure();

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

结论

在这个项目中,您了解了如何与Arduino接口BMP180传感器并测量压力和温度值。在未来的项目中,我将向您展示如何与Arduino连接更好,高级的BME280传感器。

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map