M5Stack と ESP32 で、ガス・気圧・温度湿度センサ BME680 を使ってみた

M5Stack

BME680モジュール組み立て

BME680搭載 空気品質、温湿度、気圧センサモジュールを購入すると、下図の様に、5ピンのピンヘッダと、L字型ピンソケットが同梱されています。
これは有難いですね。

BME680ボードだけの表面の外観はこんな感じです。
SCL と SDA には、4.7kΩのI2Cプルアップ抵抗があることが見て取れます。
BME680は、SPIとI2C対応ですが、このボードはSPIインターフェースが使えず、I2C専用であることが分かります。

裏面は以下の様な感じで、I2Cアドレス設定用パッドがあります。
何もしないデフォルト設定では、I2Cアドレスは 0x76 ということです。
このパッドをハンダブリッジすると、アドレスが 0x77 になります。
5VもOKみたいですね。

では、これにピンヘッダおよびソケットをハンダ付けします。
私の場合は、M5Stack と共に使う場合を考えると、L字型ピンソケットを使った方が汎用性は高いと思いました。
こんな感じになります。

M5Stack および ESP32 開発ボードと接続する

次に、M5Stack に接続する場合、φ0.65mm の単線(ブレッドボードに挿せる)ジャンパーワイヤを下図の様な長さにカットし、被覆を剥いておきます。
長さは、発熱する M5Stack からできるだけ遠ざけ、尚且つ I2C 通信トラブルが起きない長さにすると良いと思います。

では、次に、M5Stack と接続します。
下図の様に接続しますが、注意点があります

図のように、M5Stack 側のGPIO #21, #22 には、予め 3.2kΩ程のプルアップ抵抗が接続されています
そして、先ほども述べたように、BME680モジュールの方にも 4.7kΩのプルアップ抵抗が接続されています

すると、合成プルアップ抵抗値は、1.9kΩになってしまいます。

I2Cバス仕様からみると、これはちょっと小さすぎる気がします。
プルアップ抵抗値が低すぎると、LOWレベルが GNDまで落ち切らないことがあるそうです。
プルアップ抵抗が予めハンダ付けされてあるモジュールを使うと、このようなことが起こります。
便利なようで、不便ですね。

でも、とりあえず問題無く動作しているので、とりあえずこのまま使います。

接続した写真はこんな感じです。

M5Stack は発熱し、センサが近くにあると正しい測定が出来ないので、できるだけ離します
そして、熱は上方に行くので、M5Stack の上方位置は避けて設置します。
固い単線ジャンパーワイヤだと、自由に位置設定できて、抜き差しも簡単で、とても重宝しています。

また、ESP32-DevKitC ( ESP-WROOM-32 開発ボード )の場合、GPIO #21, #22 にはプルアップ抵抗は接続されていないので、BME680モジュールの 4.7kΩプルアップ抵抗をそのまま使えば良いと思います。
下図の様になります。

Arduino – ESP32 最新版のインストール

先にも述べたように、2018/07/10以降の最新版 Arduino – ESP32 をインストールしておいてください
そうしないと、正しい測定ができません。
インストールする場合は、古い Arduino – ESP32 をフォルダごと削除してから再インストールしてください。
インストール方法は以下の記事を参照してください。

Arduino core for the ESP32 のインストール方法

BOSCH 純正 BME680 ドライバライブラリをインストールしておく

BME680 センサの計算式はとても複雑なので、BOSCH Sensortec社が GitHub で公開しているライブラリをそのまま使った方が確実です。
ライセンスは、
The 3-Clause BSD License
のようです。

GitHub の以下のページにあります。
つい最近更新されているので、最新版を使って下さい。

https://github.com/BoschSensortec/BME680_driver

このページのZIPファイルをダウンロードして、Arduino IDE にインストールしておいてください。
ZIPファイルからのインストール方法は以下の記事を参照してください。

GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )

Ambientの登録、およびライブラリのインストール

Ambient はセンサデータをクラウドサーバーへ保存し、インターネットのつながる環境ならば世界のどこでもブラウザでグラフ表示できるクラウドサービスです。

Ambient についての詳細は前回の記事を参照してください。

GitHub のページは以下のリンクにあるので、Arduino IDE にインストールしておいてください。

https://github.com/AmbientDataInc/Ambient_ESP8266_lib

そして、Ambient に登録し、新しいチャンネルを作成し、チャンネル ID と Writeキーを発行しておいてください。

では、次は Arduino IDE にプログラミングしていきます。

コメント

タイトルとURLをコピーしました