第1步:零件
讓我們把零件組合在一起:
一個(gè)arduino (克隆版本為10-15美元),盡管您可以使用任何想要的arduino,但我使用的是mega。當(dāng)然,可以在將來(lái)的項(xiàng)目中替換微控制器。
BMP180傳感器(1-2 $)測(cè)量氣壓并具有嵌入式溫度傳感器。
一些跨接電纜(這些電纜已經(jīng)在家里使用了,雖然我不得不以2-3美元(我認(rèn)為一包60條)買了一些,但不必購(gòu)買。) 。
這就是您所需要的,現(xiàn)在讓我們連接一切。
步驟2:連接
請(qǐng)記住BMP180使用3.3V,如果您將傳感器連接到5V,則將被快速破壞。確保在整個(gè)連接部分中斷開電源線。
按以下方式連接電線:
VIN(或VCC)-》 Arduino 3.3V
GND-》 GND
SCL-》 SCL
SDA-》 SDA
接下來(lái)讓我給你我的代碼:
第3步:代碼
此傳感器的代碼非常簡(jiǎn)單,盡管您將需要一個(gè)庫(kù)來(lái)獲取值。
繼續(xù)并導(dǎo)航至此處,以便從adafruit下載該庫(kù)。我使用的代碼如下:
(我已經(jīng)將此代碼編譯并上傳到了arduino上,并且效果很好。)謝謝您的閱讀!
#include //Including wire library
#include //Including BMP180 library
#define ALTITUDE 35.6 //Altitude where I live (change this to your altitude)
SFE_BMP180 pressure; //Creating an object
void setup() {
Serial.begin(9600); //Starting serial communication
Serial.println(“Program started”);
if (pressure.begin()) //If initialization was successful, continue
Serial.println(“BMP180 init success”);
else //Else, stop code forever
{
Serial.println(“BMP180 init fail”);
while (1);
}
}
void loop() {
char status;
double T, P, p0; //Creating variables for temp, pressure and relative pressure
Serial.print(“You provided altitude: ”);
Serial.print(ALTITUDE, 0);
Serial.println(“ meters”);
status = pressure.startTemperature();
if (status != 0) {
delay(status);
status = pressure.getTemperature(T);
if (status != 0) {
Serial.print(“Temp: ”);
Serial.print(T, 1);
Serial.println(“ deg C”);
status = pressure.startPressure(3);
if (status != 0) {
delay(status);
status = pressure.getPressure(P, T);
if (status != 0) {
Serial.print(“Pressure measurement: ”);
Serial.print(P);
Serial.println(“ hPa (Pressure measured using temperature)”);
p0 = pressure.sealevel(P, ALTITUDE);
Serial.print(“Relative (sea-level) pressure: ”);
Serial.print(p0);
Serial.println(“hPa”);
}
}
}
}
delay(1000);
}
-
監(jiān)視器
+關(guān)注
關(guān)注
1文章
778瀏覽量
33061 -
Arduino
+關(guān)注
關(guān)注
187文章
6455瀏覽量
186394 -
bmp180
+關(guān)注
關(guān)注
2文章
7瀏覽量
11508
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論