温度気圧計を作ってみよう (4) ソフトウェア

前回はこちらです。配線まで終わったので、ソフトウェアを作って完成させましょう。

Arduinoのスケッチはこの記事の一番下に貼っておきますが、相当長くてコピーするのも大変だと思いますので、Githubに公開リポジトリを作っておきました。

せっかく10個もLEDがあるので、1時間周期でLEDが順番に変わっていくようにしました。10時間前からの変化がわかると夕立や台風の時の温度変化もわかるかなと思ったのです。

Arduinoで時間を計るといえばまず思いつくのがdelayを使う方法ですが、これだと待っている間何もできないのが困ったところです。数秒待つならともかく、1時間待つのにはあまり適した方法ではないと言えるでしょう。
Arduinoには、起動してからの時間をミリ秒単位で返してくるmillis()という関数があります。50日程度で1周するのでその時に動作がおかしくなることが予想されますが、そこまで長く動作させることもないでしょうからこれでよしとしました。気になる方は直してみてください。

LEDの色変化はtempColor_R, _G, _BとbaroColor_R, _G, _Bで定義しています。アドレス設定の回でも書きましたがこのLED、全力だと暖かくなるほど光ってしまうので、半分程度の明るさで抑えるように設定しました。温度はサーモグラフィー的な感じ、気圧は天気図の低気圧〜高気圧をイメージして色を設定しました。いかがでしょうか。

温度の変化範囲はtempTableとbaroTableで定義しています。温度が℃で気圧がヘクトパスカルです。東京で通年で使うなら温度は-5〜35℃くらいにしたほうがいいと思いますが、あまり変化がないと面白みがないのでそこらへんは適当に変えてみてください。

LEDそのままでもよいのですが、直接LEDを見るとまぶしいのとイマイチ風情がないのでコピー用紙をちょいと切って行灯(あんどん)のようにしてみました。数cm離した位置に紙を立てるとぼんやりとしてちょっとだけインテリアっぽくなりました。
gw_led5

配線をちゃんとしてケースか何かに入れると、ひと夏くらいは使える物になるのかなあ、とも思いました。
光センサを付けて暗くなったらLEDも暗くするとか、LEDスティックをもう一本つないで湿度も分かるようにするとか、いろいろ工夫の余地はありそうです。
今回の工作で使ったBME280モジュールを使って工作して発表してくださったみなさんにはプレゼントの企画もありますし、ぜひチャレンジしてみてください。

Pocket