気圧・温湿度計
概要
- 気圧・温湿度計の単体テストを行うためのページ
- 気圧から高度が計算できる
機器詳細
気圧・温湿度センサ BME280
- 秋月電子: https://akizukidenshi.com/catalog/g/gK-09421/ (opens in a new tab)
- スイッチサイエンス: https://www.switch-science.com/catalog/2236/ (opens in a new tab)
回路図(秋月電子)
素子 Pin | Arduino Pin | 備考 |
---|---|---|
VDD | 3V3 | 3.3V 電源 |
GND | GND | GND |
SDI | A4 (SDA) | I2C のシリアルデータ |
SCK | A5 (SCL) | I2C のシリアルクロック |
SDO | GND | I2C のアドレス選択ピン。ここでは GND |
CSB | - | 通信設定。 VDD にするが,ここでは, J3 でジャンパさせているので未接続。 |
- 通信は I2C
- 電圧は 3.3V
- I2C の信号線は,レベル変換を挟むとなお良い
- J1, J2, J3 をはんだでショートさせ, I2C として使う
回路図(スイッチサイエンス)
素子 Pin | Arduino Pin | 備考 |
---|---|---|
Vcore | 3V3 | 3.3V 電源 |
Vio | 3V3 | I2C のプルアップ電圧 |
GND | GND | GND |
SDI | A4 (SDA) | I2C のシリアルデータ。 Vio でプルアップする |
SCK | A5 (SCL) | I2C のシリアルクロック。 Vio でプルアップする |
SDO | GND | I2C のアドレス選択ピン。ここでは GND |
CSB | 3V3 | 通信設定。 Vcore にする |
- 通信は I2C
- 電圧は 3.3V
- I2C の信号線は,レベル変換を挟むとなお良い
- I2C のプルアップ抵抗値はこの図の値から多少ずれても問題ない
- I2C のバスラインに他のセンサが接続されており,そちらでプルアップされている場合は,プルアップ抵抗は不要
注意
- このサンプルでは,秋月電子もスイッチサイエンスでも, I2C のアドレスが同一である。複数のセンサを用いたいなど,アドレスを変えたい場合は,
SDO
ピンをVDD
oVcore
に変更するとよい。
ソースコード
test_baro_thermo_hygrometer.ino
#include <CanSatSchool.h>
// 気圧・温湿度計を宣言
BaroThermoHygrometer bth;
void setup()
{
// ロガーを初期化
logger.enableComputer();
// Wire (Arduino-I2C) を初期化
// 気圧・温湿度計は I2C を使用するためこれが必要
Wire.begin();
// 気圧・温湿度計を初期化
bth.init();
delay(500);
}
void loop()
{
// 気圧,温度,湿度を取得してシリアルモニタに表示
logger.info(bth.read());
// 気圧を取得して変数に代入したい場合
// float pressure = bth.read().pressure; // [hPa]
// 温度を取得して変数に代入したい場合
// float temperature = bth.read().temperature; // [°C]
// 湿度を取得して変数に代入したい場合
// float humidity = bth.read().humidity; // [%]
// 1s 待つ
delay(1000);
}