yaboPP电子
项目

博世BMP180传感器入门

2015年12月20日通过亚历克斯Udanis

学习一种开始使用BMP180传感器的方法,并学习一种改进数据的简单方法。

博世BMP085BMP180气压传感器是两个小型传感器,可以测量大气压力的微小变化。像大多数气压传感器一样,这些传感器可以用来监测天气。博世的传感器的一大优点是它们也足够敏感,可以测量高度的变化。这种高灵敏度是一把双刃剑;额外的灵敏度带来了额外的噪音。本教程将向您展示如何连接博世BMP085或BMP180断接板,基本软件入门,和软件来改善来自传感器的数据。

本教程展示了使用Arduino传感器的一种方法。有几个arduino兼容的库,可以使用这个传感器,如:

除了各种各样的库之外,还有几个突破板将与本教程一起工作。这些包括:

当为BMP180选择插接板时,关键的规范是它是否能在5v或3v下工作。如果板不兼容5v,将需要不同的布线。

部分要求:

  • Arduino UNO(其他变体最有可能工作,但可能需要小的改变)
  • Arduino USB电缆。(很可能是Arduino UNO的B型。)
  • 4x Male连接线
  • 小电路试验板
  • 5v兼容BMP180传感器(Adafruit 1604用于本项目)

软件要求:

  • Arduino IDE(这里使用的版本是1.6.6)
  • Adafruit BMP085 Library (Sketch -> Include Library-> Manage Libraries->Search for " BMP085 ")
  • 本教程中使用的Arduino文件(下载如下)

产品说明:

  • 把气压传感器连接到Arduino上
    • 将传感器接线板上的Vcc连接到Arduino上的5v
      • 本教程使用了一根红色的连接线
      • 请确保你的断板是5v兼容
    • 将传感器断电板上的GND连接到Arduino上的GND
      • 本教程使用了一根棕色的连接线
    • 将电路板上的SCL连接到Arduino上的A5
      • 本教程使用了一根黄色的线
    • 将电路板上的SDA附加到Arduino的A4上
      • 本教程使用了一根白色的电线。
    • 连接应该类似于以下内容:

  • 下载以下文件。

BMP180_Alex_Udanis.zip

  • 打开文件AAC_BMP180_Part1

    • 这是一个非常基本的程序,从传感器读取压力,将其转换为高度,并通过串口发送到计算机。

    • 下面是1分钟的数据。

正如你从标绘数据中看到的,传感器的数据是波动的。下一步,我们将对数据进行平滑处理,以获得更一致的结果。

  • 打开文件:AAC_BMP180_Part2
    • 这个程序包含比前一个程序多一点的功能。
    • 这需要1个、25个和50个样本数据,并得到平均值。
    • 然后将数据以.csv格式发送到串口,以便在Excel中绘制数据。

请看下图,50个样本平均值用红色表示,25个样本平均值用蓝色表示,单个样本用橙色表示:

从数据来看,平均样本的结果更加一致。

结论

如你所见,对博世气压传感器进行一些基本处理,数据可以得到改进。这种平滑的数据可以在无人机或室内定位系统等许多应用中提供更好的结果。这个项目使用一个简单的移动平均线来平滑数据,但是有相当多的其他平滑算法,如指数平滑和加法平滑,可以达到类似(或更好!)的结果。


视频

自己试试这个项目吧!BOM。

4评论
  • K
    肯UKWIZARD 2015年12月31日

    我对Bosch BMP085和BMP180感兴趣,用于LED读出电路。
    有可能找到一个吗?

    谢谢,Arduino不是我的。

    喜欢的。 回复
    • P
      Phil-S 2015年12月31日
      没有Arduino或任何描述的MCU,你会发现这是困难的。它的输出是需要处理的数字I2C。可能会有一些工业指标将采用I2C输入,但成本要比MCU高很多(Arduino Atmel 328芯片加上引导加载程序大约3美元)。有一些简单的(Wire.h和LCD.h)库已经为Arduino编写好了。LED将比LCD更复杂,更耗电。一旦你掌握了这个,还有无数其他的传感器使用相同的系统。
      喜欢的。 回复
  • 布莱恩·C。 2018年1月29日

    这是一个有用的演示,谢谢。我很好奇,它是否可以用来感知扬声器发出的空气运动或某人手臂高度的微小变化。它们有那么敏感吗,还是基本上和你现在听到的一样?

    喜欢的。 回复