室温を10分毎に計測記録し、過去24時間のトレンドグラフをhtmlで出力する室温監視システムをRaspberry Piで作った。
まずは、有線接続で計測を実現してみる。i2c接続でラズパイに繋ぐことでデータ(温度、湿度、気圧)計測値の読み込みができる。

Google chartのグラフ描画APIを使ってプログラミングして↓のような表示ができた。(比較のための外気温計測値はOpenWeatherMapのサービスを使って得ている)
image

次にセンサーをワイヤレスにしてみる。


■部品調達
千石電商で全て揃った。(通販ではなく実店舗での調達は久しぶり)
TweliteDIP を2個。

image


■回路図

センサー+Twelite DIP(子機)回路図
image

Twelite DIP (親機)+Raspberry Pi 回路図
image


■実装(ハード)

センサー+Twelite DIP(子機)
image


Twelite DIP (親機)+Raspberry Pi 
image


■実装(ソフト)

Tweliteは無線通信マイコンモジュール。マイコンで動作させるプログラムはアプリとしてあらかじめ用意されているので目的に応じたアプリを書き込む。書き込みソフトはWindows版(TWELITE STAGE)が用意されていて、Twelite-Rを使ってTwelite DIPとPCをUSB接続する。
i2cセンサーからデータを読んで通信してくれるアプリは 無線タグアプリ である。

親機になるTwelite DIPにはApp_Tag_Parent を選んで ビルド&書換 を実行する。
image


同じように子機には App_Tag_EndDevice_Input_BLUE を書き込む。(最新版のアプリを別途ダウンロードしたものを使ったほうが良い)


子機はbme280モードで動作するように設定が必要。詳細は↓


■無線動作テスト

親機をラズパイで相手させる前に、Twelite-Rを使って再びPCとUSB接続してターミナル画面で受信テストする。
子機から5秒毎に送られてくるデーターを受信できている。

image

■親機(ラズパイの設定とプログラム)

親機TweliteDIP をラズパイに載せる。シリアル通信ができるようにラズパイのUART通信ポートの設定を変更する。→参考

ラズパイのシリアル通信プログラムはpython のpySerial モジュールを使ってポートからのデータを読み込む。→参考

出来た!  この調子でこの無線通信モジュールは他にも応用が効きそうだ。

子機のデータ送信周期はデフォルトの5秒にしているがもっと遅くすればバッテリーの消費は少なくなるはず。


2020. Sep.