Lab14
Barometer 氣壓溫度感測器
[材料]
Arduino主板 x 1
麵包板 x 1
BMP280氣壓溫度感測器 x 1 (請注意,電源要接到3V3,以免燒壞)
[BMP280 氣壓溫度感測器之腳位]
VIN --> 3V3 (請注意,電源要接到3V3,以免燒壞)
GND --> GND
SCL --> A5
SDA --> A4
[函式庫]
[BMP280]
BMP280
/* Lab14 Barometer BMP280 程式碼*/
/* BMP280 接線方式
VIN --> 3V3 (請注意,電源要接到3V3,以免燒壞)
GND --> GND
SCL --> A5
SDA --> A4
*/
#include <Wire.h>
#include "i2c.h"
#include "i2c_BMP280.h"
BMP280 bmp280;
void setup()
{
Serial.begin(9600);
bmp280.initialize();
bmp280.setEnabled(0);
bmp280.triggerMeasurement();
}
void loop()
{
bmp280.awaitMeasurement();
float temperature; //氣溫,單位:攝氏溫度
bmp280.getTemperature(temperature);
float pascal; //氣壓,單位:pa帕
bmp280.getPressure(pascal);
float meters; //海拔高度,單位:m公尺
bmp280.getAltitude(meters); //假設海平面大氣壓為101325Pa,所計算的海拔高度;
bmp280.triggerMeasurement();
Serial.print("Height: ");
Serial.print(meters);
Serial.print(" Pressure: ");
Serial.print(pascal/100); //換算成常用的單位"百帕"
Serial.print(" hPa; T: ");
Serial.print(temperature);
Serial.println(" C");
}
[基本問題]
1. 請說明這個感測器,如何知道高度資料?
2. 將"氣壓"、"氣溫"數據,都顯示在LCD上。
3. 測量在不同樓層「室外陰影下」的氣壓與溫度數據。
4. 從中央氣象局網站可以得知目前台中的「海平面氣壓」。若知道海平面的高度(0m)、氣壓(氣象局提供),也知道惠文高中1F的高度(72m)、氣壓 (自己測量),請推導出氣壓與高度關係的方程式? y=ax+b (x:氣壓,y:海拔高度)
5. 使用Excel繪製表格:根據問題4,計算每層樓的實際海拔高度和平均樓高。
6. 使用Excel繪製兩個圖表,顯示趨勢線(線性)和趨勢線的方程式,上傳至作業區。
標題:氣壓與海拔高度關係圖;x軸:氣壓;y軸:海拔高度。
標題:樓層與海拔高度關係圖;x軸:海拔高度;y軸:樓層 。
[挑戰問題]
1. 重複之前的步驟,可以計算溫度和高度的關係嗎?
2. 將氣壓和溫度變化,上傳到ThingSpeak(請參考Lab12),試著記錄連續幾天的氣壓和溫度變化。
[參考資料]
- 高度氣壓換算
p = 101325 (1 - 2.25577 10-5 h)5.25588
where
101325 = 海平面的氣壓 (Pa)
p = 該處的氣壓 (Pa)
h = 該處的海拔高度 (m)
(資料來源:https://www.engineeringtoolbox.com/air-altitude-pressure-d_462.html)