●Arduinoで大気圧センサーモジュールを使う

Amazonで300円ぐらいで購入できるBMP180 大気圧センサーモジュールを手に入れたので気圧計を作成したいと思います。
GY-68 圧力センサー,BMP180圧力気圧センサモジュールデジタルブルー

だいぶコンパクトなセンサーで思った以上に小さいです。
センサーの金属缶には小さな穴があいてます、その中には真空の器とそれを覆う”ひずみ”センサーが入っていて機械的な気圧計とほぼ同じ構造になっています。
このセンサーには気圧計と温度計が内蔵されています。
裏面はこのような感じです。


気圧計の表示部分は、 Arduinoで1602 I2C液晶モジュールを使う で作成した表示部分を流用します。


▼ハードウエアの接続

I2C接続のセンサーのため、I2C液晶モジュールと共用で配線します。
電源電圧は本来なら3V程度です、このモジュールはレギュレターが入っているみたいですが、念のために3.3Vの端子に接続しました。

GNDをArduinoのGND
VINをArduinoの3V3
SDAをArduinoのA4
SCLをArduinoのA5


▼ソフトウエアの作成

難しい事は無しにしてサクッとライブラリに頼りましょう。
ツール→ライブラリの管理 を選択してライブラリマネージャを開きます。
そこで 検索をフィルタ...に"adafruit BMP085"と入力してライブラリをインストールします。


プログラムはライブラリの戻り値をLCDに表示するだけです。
こんな簡単に出来るなんて、やはりライブラリは偉大です。
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <LiquidCrystal_I2C.h>

//アドレス0x27 16文字2行の液晶
LiquidCrystal_I2C lcd(0x27, 16, 2);

 
Adafruit_BMP085 bmp;
   
void setup() {
  lcd.init();
  lcd.backlight();
  
  if (!bmp.begin()) {
    lcd.setCursor(0, 0);
    lcd.print("ERROR");
    while(1);
  }
}
   
void loop() {
    lcd.setCursor(0, 0);
    lcd.print(bmp.readTemperature());
    lcd.print(" ");
    lcd.write(0xDF);
    lcd.print("C       ");
     
    lcd.setCursor(0, 1);
    lcd.print((double)bmp.readPressure()/100);
    lcd.print(" hPa       ");
     
    delay(1000);
}

赤文字部分がBMP180から値を読み出す中心的な部分です。
実際に作成してみました。
気温と気圧が表示されています。



もし、液晶がI2Cではなく、Arduinoで1602 LCDを使うのように1602LCDをデジタルピンで接続している場合は LCD表示部分を変更した、次のプログラムを使います。
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd( 8, 9, 4, 5, 6, 7);
 
Adafruit_BMP085 bmp;
   
void setup() {
  lcd.begin( 16, 2 );
  lcd.clear();
  
  if (!bmp.begin()) {
    lcd.setCursor(0, 0);
    lcd.print("ERROR");
    while(1);
  }
}
   
void loop() {
    lcd.setCursor(0, 0);
    lcd.print(bmp.readTemperature());
    lcd.print(" ");
    lcd.write(0xDF);
    lcd.print("C       ");
     
    lcd.setCursor(0, 1);
    lcd.print((double)bmp.readPressure()/100);
    lcd.print(" hPa       ");
     
    delay(1000);
}
赤文字部分を変更して1602液晶の接続方式を切り替えています。


▲トップページ > マイコンなど