打印

[Studio] 零知开源分享 - BMP180大气压传感器模块的使用

[复制链接]
314|1
跳转到指定楼层
楼主
BMP180作为一个高精度、超小体积的气压传感器,在很多应用场景下都能见到它的身影,比如航模等一些需要高度数据的场合。下面将把它应用于零知平台进行演示。
1、硬件、软件准备
(1)零知开发板-标准板


零知标准板使用了STM32F103RBT6 作为MCU,采用32位高性能ARM核心,;包含37个IO引脚、15路PWM、15路ADC(12位精度)、一个USB设备接口、一个USB转串口设备接口;可以使用USB、AC-DC适配器、LI-PO等多种方式供电;供电电压 7v-28v,范围非常的宽。同时零知标准板配合零知开发工具能实现一键下载,使用非常方便。
(2)BMP180大气压传感器模块


该模块VCC为5V,可使用3.3V和5V电压供电。
(3)   杜邦线若干
(4)零知开发工具



2、电路连接
这里使用3.3V供电,把SCL和SDA引脚分别接标准板的A5、A4引脚即可。如下:


3、测试
根据芯片说明书,大气压力与海拔高度对应关系如下:


代码如下:
  1. /**
  2. *    文件: BMP180模块测试.ino      by 零知实验室
  3. *    -^^- 零知开源,让电子制作变得更简单! -^^-
  4. **/

  5. #include "BMP180.h"

  6. Adafruit_BMP085 bmp;
  7.    
  8. void setup() {
  9.   Serial.begin(9600);
  10.   if (!bmp.begin()) {
  11.         Serial.println("BMP180 传感器启动失败");
  12.         while (1) {}
  13.   }
  14. }
  15.    
  16. void loop() {
  17.     Serial.print("温度:");
  18.     Serial.print(bmp.readTemperature());
  19.     Serial.println(" ℃");
  20.      
  21.     Serial.print("压力:");
  22.     Serial.print(bmp.readPressure());
  23.     Serial.println(" Pa");
  24.      
  25.     // 标准气体时测量的数据 101325 Pa
  26.     Serial.print("高度:");
  27.     Serial.print(bmp.readAltitude());
  28.     Serial.println(" m");

  29.     Serial.print("海平面压力:");
  30.     Serial.print(bmp.readSealevelPressure());
  31.     Serial.println(" Pa");

  32.   // 根据当地的海平面压强进行更精确的实际高度计算
  33.     Serial.print("真实高度:");
  34.     Serial.print(bmp.readAltitude(101400));
  35.     Serial.println(" m");
  36.      
  37.     Serial.println();
  38.     delay(500);
  39. }
复制代码
上述代码测量真实高度时需根据当地的实际气压进行校正,在这里我使用中央气象台查询到的作为依据:

注:1014hPa = 101400Pa,这里的气压值没有很精确,可能会有存在误差。
4、测试结果
查询当地的海拔高度为14米:


实际测量如下:


使用特权

评论回复

相关资料

沙发
| 2019-6-20 08:47 | 只看该作者

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /6 下一条

在线客服 快速回复 返回顶部 返回列表