測定結果をビジュアルに①BME680の準備
センサの値をグラフにラズパイのディスプレイに表示する連載です。GUIのグラフはplotlyライブラリを使います。利用するデバイスはボッシュのBME680で、BMP/BMEシリーズのMEMSセンサです。
BMP280 | BME280 | BME680 | |
---|---|---|---|
気圧 300~1100 hPa |
〇 | 〇 | 〇 |
温度 -40~85℃ |
〇 | 〇 | 〇 |
湿度 0~100% |
〇 | 〇 | |
大気の汚れ |
〇 |
●環境
- ラズパイ4 5.10.63
- Python 3.9.2
- plotly 5.4.0
●接続
ebayで入手したBME680ブレークアウト・ボードを利用します。
CS端子をVccにつなぐと、I2Cインターフェースになります。SDO端子をVccにつなぐとスレーブ・アドレスは0x77で、GNDに落とすと0x76になります。
接続したら、i2cdetectで確認します。
0x77に存在しました。
●デバイス・ドライバを入れる
ターミナルで、
sudo nano /boot/config.txt
最後の行に移動して、
dtoverlay=i2c-sensor,bme680,param=0x77
を追加し、Ctrl-Oで上書き保存、Ctrl-Xで終了します。
有効にするために、リブートします。
有効になりませんでした。画面の右上に、失敗した主旨のメッセージが短時間出ていました。
(注)デバイス・ドライバの組み込みのメッセージを知るには、/boot/config.txtの最後の行にdtdebug=1を追加してリブートします。メッセージは、 sudo vcdbg log msgで読み出せます。
SDO端子をGNDに落として0x76に変更します。
ターミナルで、
sudo nano /boot/config.txt
最後の行に移動して、
dtoverlay=i2c-sensor,bme680
を追加し、Ctrl-Oで上書き保存、Ctrl-Xで終了します。リブートします。
i2cdetectで確認します。0x76の場所がUUに変わっています。デバイス・ドライバが正常にインストールされました。
●測定結果
/sys/bus/i2c/devices/1-0076/iio:device0
の中にテキスト・ファイルで置かれています。随時、値は更新されます。
温度は1000で割ります。湿度はそのままの値です。気圧もそのままの値です。大気の汚れは抵抗値と思われます。