こんにちは、川崎です。去年の12月に投稿しましたストームグラスを光らせてみた。~ハードウェア編~の続編として、今回はソフトウェア編を投稿します。
前回紹介しそびれてしまいましたが、使用したストームグラスはTempo Drop miniという商品です。気温が低い日はたくさん結晶が出てきれいです。
では、まずはこの動画を見てください。
NeoPixel Ringのサンプルプログラムを16連用に変更して実行してみました。NeoPixel Ring用のライブラリとサンプルプログラムはこちらです。
これだけで観賞用としては満足できる感じがありますね。
せっかくBME280も内蔵したので使ってみましょう。BME280の使用に関してのサンプルプログラムはこちらです。このプログラムを実行しシリアルモニターで妥当な値が表示されるかを確認してください。もし問題がある場合は、配線周りの確認をしてください。
下の動画は気温の変化に応じてグラスの発光色が変化するようにしてみたものです。スケッチはこちらです。(StormGlass_Temp.ino)
ヒートガンを使って温度を変化させました。
温度の変化が滑らかではないのは、BME280のレジスタ設定のスタンバイ時間の設定が1000msの設定になっている(1秒間隔で温度が更新されている)からです。詳しくはこちらを参考にしてください。
他にもいくつかプログラムを製作してみました。気になった方はこちらのサンプルスケッチ(GitHub)を見てみてください。
プログラムの名前と動きについて
- StormGlass_Fullcolor:フルカラーLEDの赤を気温、緑を気圧、青を湿度に当てはめ、混ぜて1つの色で天候を表現
- StormGlass_Temp:気温に依存してグラスの光り方が変化(上の動画のプログラム)
- StormGlass_colorSwipe:フルカラーLEDの赤を気温、緑を気圧、青を湿度に当てはめ、順番に表示
そもそも天候や室内の状況は急速に変化するものではないために、LEDの変化をダイナミックにすることは難しかったです。皆様もいろいろな表現方法を探ってみてください。