自室環境モニタシステム (ひとまず完成)
自室の環境モニタシステムをひとまず完成させた。前回の記事 の続き。
システムの概要
- 各種センサを Raspberry Pi に繋ぎ、データを収集する
- データを蓄積する
- CSV でデータを保存。
- 収集したデータを可視化する
- Raspberry Pi を munin ノードにして、センサデータのグラフを確認できるように。
ハードウェア
- 気温・湿度・気圧センサ BME280 はブレッドボード上に用意して、I2C バスで Raspberry Pi と接続。
- コンセント電圧・電流センサは専用の Arduino シールドを用意し、ケース内にきちんとパッケージング。Raspberry Pi とは USB で接続。
ソフトウェア
- Arduino の制御プログラム は、1秒に1回、現在の電圧[V]・電流[A]・有効電力[W]・皮相電力[VA]・力率をテキスト形式で USB シリアルに出力。
- Raspberry Pi のセンササーバプログラム は、I2C バスおよび上記 USB シリアルポートからデータを取り込み、また munin プラグイン としてセンサデータを munin-server へ送る。
- この munin プラグインは マルチグラフプラグイン にしてみた。munin プラグインの実装に関する日本語ページはたくさんあるものの、マルチグラフプラグインに関する情報はあまり多くないようだった。munin 1.4.0 以上であればマルチグラフプラグインが使えて、実装も各グラフに関するデータの最初に
multigraph [グラフ名]
と出力するだけなので、とても簡単に使えてよい。
- この munin プラグインは マルチグラフプラグイン にしてみた。munin プラグインの実装に関する日本語ページはたくさんあるものの、マルチグラフプラグインに関する情報はあまり多くないようだった。munin 1.4.0 以上であればマルチグラフプラグインが使えて、実装も各グラフに関するデータの最初に
センサデータのグラフの例
↑ 1週間分の温度グラフ。晴れの日は日中と夜間の気温差があり、雨の日は温度差が小さくなるっぽい。
↑ 同じく1週間分の気圧グラフ。意外と上下している。
↑ 自宅サーバの消費電力グラフ。動画のエンコード中は140〜150Wくらい、それ以外のアイドル時は80〜100Wくらい消費している。11月26日に消費電力が20Wくらい増えているが、これは HDD を1台増設したため。
感想と今後の課題
- 今回はじめて I2C を使えたのはよかったが、BME280 の制御プロトコルがやや複雑で、データシート記載の制御プログラムまる写しになってしまったのはやや反省。次はもう少し単純な I2C デバイスにして、ライブラリとかは使わずに自分で制御してみようと思う。
- 当初は自室の環境モニタリングをするつもりだったが、サーバの消費電力も監視できるようにしたため、設置場所がサーバのある廊下になってしまった。Arduino シールドと BME280 側とを分離して、ちゃんと自室というか居住環境の状況をモニタできるようにすべきかもしれない。
- とくに温度と湿度を監視できれば体調管理に役立ちそうなので、これはぜひやりたい。
- 今回使ったセンサ以外にも、臭気センサや照度センサなどを購入してあるのだけど、時間の都合 + 前述の設置場所の都合で、今回は組み込んでいない。時間ができたらこのあたりもモニタできるようになると面白いかも。