M5StickCで気温を記録する-2。ループとコールバックの消費電力差。

家庭菜園の記録として、まずは気温をとるようにしたいと思います。その後、クラウドに保存。屋外に設置、最終的には地温、土壌水分、日照、降水、CO2、土壌酸性度なども取れればいいなと。
前回、コードをループでイベントを発生するよに組んだけど、参考にさせてもらったサイトでは、タイマーのコールバックを使ってました。何故?温度を測るだけならマルチスレッドっぽくする必要も無さそうだし。消費電力の差?
そのあたりのツメは、全体が完成してからで良いんだけど、気になったのでちょっと試してみました。
調査方法
1秒ごとにループ(コールバック)を発生させ、1分ごとにバッテリーの電圧を取得(axp.getBatVoltage())し、ambientへ送る。グラフが途切れる(電源が落ちる)までの時間を測る。
ループのコード

ループの中でカウントアップしつつ1秒待って、カウント60毎に電圧を取得してアンビエントへアップ。
タイマーのコールバックのコード

1秒ごとにコールバックを発生させ、その中でカウントアップ、カウント60毎に電圧を取得してアンビエントへアップ。
結果
ループは1時間21分、
コールバックは58分、
で電源が落ちました。と、思ったけど…
コールバックの方のグラフがガタガタ(グラフの表示方法はどちらもスムーズしゃない普通の「折れ線グラフ」)
データをダウンロードして確認。ループの方はだいだい1分15秒間隔でデータ送信されているけど、コールバックの方は約5秒間隔。
コールバックの方、何か間違っている模様。
追って調査します(汗)
ディスカッション
コメント一覧
まだ、コメントがありません