マスタリングWireライブラリ その5 温度/湿度/気圧センサBME280 ライブラリの利用

 WireのライブラリでデバイスのIDが読み出せました。温度、湿度、気圧のデータも同様に読み出せますが、ライブラリがあるので、利用します。メイン・メニューのスケッチからライブラリのインクルード->ライブラリマネージャを立ち上げます。検索のところにBME280を入れると、複数のBME280用ライブラリが見つかります。ほとんどがボードを出しているメーカ製です。

BME280 BY Tyler Glennライブラリを使う

 どこのライブラリを使うかは何も選択基準がないので、ボード・メーカの名の入っていないBME280 BY Tyler Glennを使うことに決めました。

 ライブラリを入れて、スケッチからサンプルのBME_280_I2C_Testを読み込みます。

 実行します。

データ転送時の波形を観測

 ctrl_humレジスタ(0xF2)、ctrl_measレジスタ(0xF4)、configレジスタ(0xF5)を設定し、三つのデータを読み取っています。

 このあと、データを読み取るところからスケッチを書こうと思いましたが、補正の作業が複雑なので延期します。

BME280のデータ読み出しの流れ

  •  データの読み出し間隔、フィルタの有無などの初期設定データをconfigレジスタに書き込む
  •  デバイス固有のキャリブレーション・データが0x88~0xa1と0xe1~0xf0に入っているので読み出す
  •  データを読み出し、キャリブレーション・データを使ってデータを補正(compensate)する

データの形式

 温度は32ビット・データ、気圧は整数部が24ビット、小数部が8ビットの32ビット・データ、湿度は、整数部が22ビット、小数部が10ビットの32ビット・データです。

読み出すデータのレジスタ

  • 圧力 0xf7;上位バイト、0xf8;下位バイト 、0xf9;上位4ビット、その下の4ビットは0
  • 温度 0xfa;上位バイト、0xfb;下位バイト 、0xfc;上位4ビット、その下の4ビットは0
  • 湿度 0xfd;上位バイト、0xfe;下位バイト

キャリブレーション・データ

  • 温度;16ビットが二つ
  • 気圧;16ビットが三つ
  • 湿度;16ビットが六つ

(※1)ボッシュのドライバ

前へ

マスタリングWireライブラリ その4 温度/湿度/気圧センサBME280 接続

次へ

マスタリングWireライブラリ その6 温度センサLM75B リピーテッド・スタート・コンディション