台風が近づいてくると電子工作好きな人々は、保存食を用意したりコロッケを買ったりという一般的な台風対策と共に、「部品箱の中の気圧センサで測定をしなくてはいけない」という衝動を抑えられなくなります。
ということで、環境センサBME280で台風通過時の気圧データを測定したいと思います。BME280は、温度、湿度、気圧が測定できるセンサーです。温度に関しては、湿度データと気圧データの補正用なので、取得できるデータは参考値らしいです(実際は気温よりも少し高めの値が出ます)。
マイコンボードは、Seeed Wio 3Gを使用しました。理由としては...
- 停電が予想されていたのでEthernetやWi-Fiは使いたくなかった
- LiPoバッテリでも動作する
- Groveセンサーで簡単に色々繋げる
自宅にBME280のGroveセンサーがなかったので、結局breakoutボードとブレッドボードを使いました。接続はこんな感じです(測定データを書き込むためのマイクロSDカードはボードの裏側にあります)。BME280のSDA, SCL信号は5kΩ程度の抵抗でプルアップしています。
単に測定するだけだったらボタンLEDは不要なのですが、動作中の確認をしたかったのと、測定終了時に安全にファイルをクローズしたかったため使用しました。あと、光り物があるとカッコいいという点も。
データはcsv形式で出力し、ファイルには追記する仕様としています。RTCによる時刻も測定データと一緒に出力しているので、後でデータを利用するときにも便利だと思います。
データの例を以下に示します。日付と時刻、気温、湿度、気圧の順に出力しています。
2019/10/12 Sat 20:41:29, 27.55, 61.48, 952.11
2019/10/12 Sat 20:41:59, 27.55, 61.63, 952.05
2019/10/12 Sat 20:42:29, 27.55, 61.58, 951.84
2019/10/12 Sat 20:42:59, 27.54, 61.50, 951.53
コードのビルドと実行
ソースコードのリポジトリは、こちらです。
コードは、Mbed-CLIでビルドとターゲットボードへの書き込みが可能です。
$ mbed import https://github.com/toyowata/env-recorder
$ cd env-recorder
$ mbed compile -m wio_3g -t gcc_arm --flash
ターゲットボード上のリセットボタンを押すと、測定を開始します。
データの活用
マイクロSDカードに保存されたファイルは、エクセルなどでグラフ表示することが出来ます。気圧と湿度を表示した例を以下に示します。
気圧は、かなりきれいなカーブになりました。
湿度は途中から上下していますが、これは(部屋のジメジメに耐えられず)室内のエアコン付けたり、途中で窓開けたりしたのが原因だと思います。
測定期間は、2019年10月11日の12時から13日の14時頃まで(30秒ごと)です。