File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ---
2+ title : 气压传感器 BMP180
3+ order : 9
4+ icon : plane
5+ ---
6+
7+ ## 简介
8+
9+ 本章介绍使用Air001开发板驱动 BMP180。
10+
11+ ::: tip
12+
13+ BMP180 使用I²C通信接口,是专为测量大气压力而设计的基本传感器, BMP180可以测量300至1100 hPa(海拔9000m至-500m)的大气压,以及-40°C至85°C的温度。
14+
15+ :::
16+
17+ ## 硬件准备
18+
19+ - 按[ ☁️ Air001开发板入门] ( /tutorial-advanced/Air001_start.html ) ,将` Air001 ` 和` DAPLink调试器 ` 使用排针排母连接。
20+
21+ - 将` BMP180 ` 模块与` Air001开发板 ` ,按如下表格进行相连:
22+
23+ | BMP180 | Air001 |
24+ | :---: | :----: |
25+ | GND | GND |
26+ | VCC | 3.3V |
27+ | SCL | PF_1 |
28+ | SDA | PF_0 |
29+
30+ ## 软件部分
31+
32+ 首先,安装` Adafruit BMP085 Library ` 库。
33+
34+ :::details 打开Arduino管理库,进行安装
35+
36+ 可以打开Arduino管理库,找到` Adafruit BMP085 Library ` 库,并选择` 全部安装 ` 以安装所需依赖。
37+
38+ ![ 库管理器中的 Adafruit BMP085 Library] ( img/QQ20230815132327.png )
39+
40+ :::
41+
42+ 开头引用` Adafruit_BMP085 ` 包,并实例化对象` bmp ` ,后续仅需调用` bmp ` 对象即可使用BMP180,
43+
44+ ``` cpp
45+ #include < Adafruit_BMP085.h>
46+ Adafruit_BMP085 bmp;
47+ ```
48+
49+ 在` setup() ` 函数中初始化串口与BMP180:
50+
51+ ``` cpp
52+ void setup () {
53+ Serial.begin(9600);//初始化串口,波特率9600
54+ if (!bmp.begin()) {//初始化设备
55+ Serial.println("initial failed");
56+ while (1);
57+ }
58+ }
59+ ```
60+
61+ 在` loop() ` 函数中添加如下代码:
62+
63+ ``` cpp
64+ void loop () {
65+ Serial.print("温度");
66+ Serial.print(bmp.readTemperature());
67+ Serial.println("℃");
68+
69+ Serial.print("气压");
70+ Serial.print(bmp.readPressure());
71+ Serial.println("Pa");
72+
73+ // 粗略计算海拔高度
74+ Serial.print("海拔");
75+ Serial.print(bmp.readAltitude());
76+ Serial.println("米");
77+
78+ Serial.println();
79+ delay (500);
80+ }
81+ ```
82+
83+ - 使用` bmp.readTemperature ` 方法,获取当前温度。
84+ - 使用` bmp.readPressure ` 方法,获取当前气压。
85+ - 使用` bmp.readAltitude() ` 方法,粗略计算当前的海拔高度。
86+
87+ ## 输出结果
88+
89+ 在串口监视器中将波特率调至9600,可观察到当前的信息,如下图:
90+
91+ ![ uart] ( img/20230824132754.png )
You can’t perform that action at this time.
0 commit comments