본문 바로가기

개발자/Arduino

bmp180 디지털 압력센서 아두이노 라이브러리 테스트

반응형

 

 

 

우선 BMP180 datasheet 디지털 압력센서 데이터 쉬트는 아래 링크를 참고한다. 

 

BMP180 Digital pressure sensor

 

센서 사용법과 데이터 쉬트에 대한 자세한 설명은 아래 링크를 참고한다.

 

BMP180 고도/압력 Barometer GY-68 3.3/5V 레귤레이터 내장형 센서 메뉴얼

 

일단 라이브러리를 다운 받는데 깃 사이트에 가면 판매처를 안내하는 아래 링크가 있다. 참고하기로 한다. 

A powerful but easy to use BMP085/BMP180 Library 

 

라이브러리 다운은 아래에서 하는데 오른쪽 clone or download 버튼을 클릭하고 download zip 항목을 선택하여 다운 받는다.

 

압축을 풀면 다음 폴더가 생긴다. Adafruit-BMP085-Library-master 폴더를 통채로 카피하여 아두이노가 설치된 폴더의 라이브러리 폴더에 카피한다. 보통 C:\Program Files (x86)\Arduino\libraries 아래에 카피하면 될 것이다. 

 

이름이 180이 나니라 085 인 것은 상관 없다 동일한 결과를 출력한다. 

 

아두이노 스케치를 종료하고 다시 실행시킨다. [파일 - 예제] 항목에서 [모든 보드의 예제] 아래에 보면 방금 라이브러리 폴더에 카피한 Adafruit BMP085 Library 항목을 선택하여 파일 이름이 BMP085test 인 파일을 연다. 

 

연결 회로는 아래 그림을 참고한다.

 

 

 

아래는 소스코드이다. BMP085test.ino 정도 되겠다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
#include <Wire.h>
#include <Adafruit_BMP085.h>
 
/*************************************************** 
  This is an example for the BMP085 Barometric Pressure & Temp Sensor
 
  Designed specifically to work with the Adafruit BMP085 Breakout 
  ----> https://www.adafruit.com/products/391
 
  These displays use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!
 
  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/
 
// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4
// EOC is not used, it signifies an end of conversion
// XCLR is a reset pin, also not used here
 
Adafruit_BMP085 bmp;
  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    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");
    
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");
 
    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");
 
  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}
 
cs

 

 

스케치에서 열리면 보드와 포트를 선택하고 컴파일 업로드를 하면 아름다운 결과를 볼 수 있다.

 

Temperature = 29.10 *C

Pressure = 100998 Pa

Altitude = 26.76 meters

Pressure at sealevel (calculated) = 100997 Pa

Real altitude = 41.81 meters

 

Temperature = 29.10 *C

Pressure = 100998 Pa

Altitude = 27.26 meters

Pressure at sealevel (calculated) = 101004 Pa

Real altitude = 41.72 meters

 

Temperature = 29.10 *C

Pressure = 100996 Pa

Altitude = 27.09 meters

Pressure at sealevel (calculated) = 100999 Pa

Real altitude = 41.56 meters

 

 

u5가 그 놈 되겠다.

 

 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^