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

    xiaoxiao2023-10-25  185

    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、测试 根据芯片说明书,大气压力与海拔高度对应关系如下: 

    核心代码:

    /** * 文件: BMP180模块测试.ino by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url]) * -^^- 零知开源,让电子制作变得更简单! -^^- * 时间: 2018/10/18 11:16 * 说明: **/ #include "BMP180.h" Adafruit_BMP085 bmp; void setup() { Serial.begin(9600); if (!bmp.begin()) { Serial.println("BMP180 传感器启动失败"); while (1) {} } } void loop() { Serial.print("温度:"); Serial.print(bmp.readTemperature()); Serial.println(" ℃"); Serial.print("压力:"); Serial.print(bmp.readPressure()); Serial.println(" Pa"); // 标准气体时测量的数据 101325 Pa Serial.print("高度:"); Serial.print(bmp.readAltitude()); Serial.println(" m"); Serial.print("海平面压力:"); Serial.print(bmp.readSealevelPressure()); Serial.println(" Pa"); // 根据当地的海平面压强进行更精确的实际高度计算 Serial.print("真实高度:"); Serial.print(bmp.readAltitude(101400)); Serial.println(" m"); Serial.println(); delay(500); }

     上述代码测量真实高度时需根据当地的实际气压进行校正,在这里我使用中央气象台查询到的作为依据:

    注:1014hPa = 101400Pa,这里的气压值没有很精确,可能会有存在误差。

    4、测试结果 查询当地的海拔高度为14米:

     

    实际测量如下:

    二十五层高度,室内,存在着误差。 更多详细资料可到零知实验室官网免费获取。  

    最新回复(0)