家庭菜園の為に、M5StickCで気温を記録する(UI-Flow)

2020-05-19

家庭菜園の記録として、まずは気温をとるようにしたいと思います。その後、クラウドに保存。屋外に設置、最終的には地温、土壌水分、日照、降水、CO2、土壌酸性度なども取れればいいなと。

使うもの

M5StickC + ENV Hat

プログラムはUI Flow でつくります。

Ambient

マイコンなどから送られるセンサーデーターを受信し、蓄積し、可視化(グラフ化)してくれるサービス、Ambient のアカウント。端末8台以下、データ保存1年未満なら、無料で利用できるようです。

M5stickC と ENV HAT で気温を取得

とりあえず、1秒毎に気温湿度気圧を表示するプログラムを作成。

下記の参考にさせてもらったサイトでは、タイマーのコールバックを使ってました。コールバックの方が電力消費的に有利なんかな?あとで調べます。ひとまずは、普通のループで。

データを取得できました。が…

取得した値があやしい。

今は、5月中旬の22時で外は雨。が、画面の表示は、気温29℃、 湿度41%、気圧1008mhp。PCの近くで計測しているにしても、気温高すぎ、湿度低すぎでは?

気象庁の市内のデータは、17℃・94%・1015mhp(計測は屋外だろうけど)、エアコンの体感温度は25度。

結構な誤差、というか誤差の範囲を超えている気が…。とりあえず、何回か測って補正値を出すことにします。

Ambient に データを送る

「data」の中にリストがあって、マップがある。リストを省けないか?と思って調べてみると、少し古いけど公式サイトに情報がありました。

Kenta IDAさんのツイッターでは、apiのアドレスの最後がdataarrayだけど、公式ではdataになっています。

http://ambidata.io/api/v2/channels/チャネルID/data

twitterのプログラムを参考に、data の部分を少し変更して実行してみました。が、10回ぐらいデータを送ってもグラフが表示されません。チャンネル画面の「最新データー登録: -」に日時が入っているので、データが送られているようですが。

とりあえず、ツイッターのサンプルを参考にして、dataarrayで作成するとグラフが表示されました。

今時点のコードはこんな感じです。

上から2つめのブロック「wifi connect」を忘れると、UIFlowでテストしている間は大丈夫だけど、プログラムをM5stickCにダウンロードして実行するとWifiに繋がらなくなるので要注意です。

まとめ

次は、屋外で計測できるように、防水と電源をなんとかしていきます。

課題やスルーした事

タイマーのコールバックを使うのがいいのか?ループがいいのか?

ENV Hat の取得データがあやしい。 補正値を割り出すか? ENV ii unit が出ているので買ってみるか?

ambient のAPI http://ambidata.io/api~/dataarray でなく /dataでグラフが出来なかった原因調査