Arduino Uno 使用气压传感器
目录
实现效果
如果无法播放,请按一下连接查看: https://www.bilibili.com/video/BV1qV411e7qG
元件说明
专为测量大气压力而设计的基本传感器, BMP180可以测量300至1100 hPa(海拔9000m至-500m)的大气压,以及-40°C至85°C的温度,精度为±1.0°C。 而大气压随天气变化,因此我们也可以用它来监测天气的变化。
(所以在本次实验当中受天气影响,位置实际海拔为20米,但测量出为-1米,因为同样的程序两天前是正确的海拔高度。)
该模块带有板载LM6206 3.3V稳压器,因此您可以与Arduino等5V逻辑微控制器一起使用,而无需担心。
该模块使用的是I2C通信方式,非常方便与其他开发主板进行交互,其I2C地址已设置为0x77。
引脚说明
VIN 是模块的供电输入,可以在3.3V至5V之间的任何范围内 GND 地线,该连接到Arduino的地线(GND) SCL 是I2C接口的串行时钟引脚 SDA 是I2C接口的串行数据引脚
BOM表
名称 | 数量 |
---|---|
Arduino Uno | x1 |
气压传感器BMP180 | x1 |
面包板 | x1 |
跳线(杜邦线) | 若干 |
接线方式
Arduino Uno 引脚 | <-> | 电位器 引脚 |
---|---|---|
3.3V | <-> | VCC |
GND | <-> | GND |
A5 | <-> | SCL |
A4 | <-> | SDA |
程序提点
安装BMP180/BMP085库
在代码编写之前,需要在添加BMP180的库, 从菜单栏中,依次打开:「项目」->「加载库」->「管理库」 在弹出的对话框的搜素栏里,输入:“bmp180” 查找相关的库 我使用的是名为「Adafruit BMP085 Library」的库 点击安装后,等待安装完成即可关闭对话框,进行代码的编写
在视频中有详细的添加步骤,如有不懂可再参考视频。
加载库
安装好之后,则可以在代码中引用加载
#include <Adafruit_BMP085.h>
创建bmp实例
创建名为bmp的实例,这样可以方便我们在代码中,使用Adafruit_BMP085的功能和访问
Adafruit_BMP085 bmp;
bmp常用函数
readTemperature() 获取/返回 传感器的温度。 readPressure() 获取/返回 传感器的气压。 readAltitude(101500) 获取/返回 指定的大气压力(以hPa为单位)计算海拔高度(以米为单位)。 readSealevelPressure() 获取/返回 计算海平面的压力(以hPa为单位)。
程序实现
// by lingshunlab.com
#include <Adafruit_BMP085.h> // 加载BMP库,BMP085/BMP180通用
Adafruit_BMP085 bmp; // 创建名为bmp的实例
void setup() {
Serial.begin(9600); // 设置波特率
if (!bmp.begin()) { // 判断bmp是否能正常初始化
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {
}
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature()); // 输出温度
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure()); // 输出气压
Serial.println(" Pa");
Serial.print("Altitude = ");
Serial.print(bmp.readAltitude()); // 输出海拔
Serial.println(" meters");
Serial.print("Pressure at sealevel (calculated) = ");
Serial.print(bmp.readSealevelPressure()); //输出密封面的压力(计算后)
Serial.println(" Pa");
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101500)); // 输出通过指定海平面气压值计算的实际高度
Serial.println(" meters");
Serial.println();
delay(500);
}
程序上传成功后,打开「串口监视器」可以查看当前的位置信息