Lab14

Barometer 氣壓溫度感測器

[材料]

Arduino主板 x 1

麵包板 x 1

BMP280氣壓溫度感測器 x 1 (請注意,電源要接到3V3,以免燒壞)


[BMP280 氣壓溫度感測器之腳位]

VIN --> 3V3 (請注意,電源要接到3V3,以免燒壞)

GND --> GND

SCL --> A5

SDA --> A4


[函式庫]

BMP280:https://github.com/orgua/iLib

[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),試著記錄連續幾天的氣壓和溫度變化。



[參考資料]


  1. 高度氣壓換算

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)