目次
Ambient とは
Ambient は、センサ値などのデータを蓄積し、グラフ化するクラウド・サービスです。アンビエントデーター株式会社が運営しています。
無料枠の範囲で、8チャンネル×8値のデータを1日あたり3000サンプル(約30秒に1回相当)まで蓄積することが出来ます。
これまでの製作
本ブログ内には、本稿の元となる製作例が2つあります。
はじめに、e-Paper搭載 M5 Core Ink の e-Paper にセンサ値をグラフ表示する記事を書きました。e-PaperはLCDに比べて手間がかかることが分かりました。
その後、画面全体が黒っぽくなってしまう現象が発覚し、対策を行いました。
センサ値送信プログラム
これまでに紹介したプログラムに、Ambient への送信機能が含まれています。まだ、前記を試していない方は、下記からダウンロードしてください。
折れ線グラフ&ディープスリープ対応版:https://github.com/bokunimowakaru/m5/tree/master/core_ink/ex05_hum_graph
bokunimo’s GitHub Pages / m5:
https://git.bokunimo.com/m5/
Ambient 設定
Ambientを使用するには、アカウント登録と、チャネルID、ライトキーの取得が必要です。また、Wi-Fi の設定も必要です。
以下に、アカウントの登録とIFとキーの取得、プログラムex05_hum_graph.inoAmbient の設定手順を示します。
- https://ambidata.io/ へアクセス
- 右上の[ユーザ登録(無料)]ボタンでメールアドレス、パスワードを設定して
- アカウント登録を行う
- [チャネルを作る]ボタンでチャネルIDを新規作成する
- 「チャネルID」をプログラム内のAmb_Idのダブルコート(“)の中に貼り付ける
- 同様に「ライトキー」をAmb_Keyに貼り付ける
Wi-Fi設定は、SSIDとPASSに設定してください。
また、SLEEP_Pは、28.8秒以上(28*1000000ul 以上)に設定してください。
ex05_hum_graph.ino
#define SSID "1234ABCD" // 無線LANアクセスポイントのSSID
#define PASS "password" // パスワード
~
#define SLEEP_P 60*1000000ul // スリープ時間 60秒
~
#define Amb_Id "00000" // AmbientのチャネルID
#define Amb_Key "0000000000000000" // Ambientのライトキー
ディープスリープで節電動作
マイコンが通信を行っていないときにディープ・スリープ・モードに設定することで、節電動作を行います。
e-Paperは、ディープスリープ中や電源OFF時に表示内容が消えないことが特徴です。
ディープ・スリープ時間とバッテリ持続時間
M5Stack Core Ink は、390mAh のリチウム・イオン電池を内蔵しています。このバッテリで、どのくらいの時間、動き続けるかを確認してみました。
筆者が作成したプログラム ex05_hum_graph.ino のデフォルト(初期値)では、60秒に1回、センサ値を送信します。この場合、約1.5日の持ち時間でした。また、10分に1回に変更すると、4日の動作が行えました。
バッテリ持続時間
送信間隔 | バッテリ持続時間 | SLEEP_P |
60秒に1回 | 約1.5日 | 60*1000000ul |
10分に1回 | 約4.0日 | 10*60*1000000ul |
60分に1回 | 約5.1日 | 60*60*1000000ul |
センサ値のダウンロード
センサ値のCSVデータは、チャネル一覧からダウンロードすることが出来、マイクロソフト Excel などの表計算ソフトで開くことが出来ます。
バッテリの電圧特性
バッテリ電圧は使用時間とともに下がってゆきます。充電直後は4.2V程度あります。3.9Vあたりまで下がると、電圧の低下速度が遅くなり、3.7Vあたりまではなだらかに低下します。そして3.6Vあたりから急速に低下します。
本プログラムでも下図のように同様の傾向があります。また、3.3Vで電源をOFFにするようにしています。
画面リフレッシュ機能
前述のバッテリ電圧特性グラフでは、1時間おきにパルス状の電圧上昇がみられます。これは、画面の再描画処理のためです。
画面の再描画処理は、前回のブログで説明した画面全体が黒っぽくなってしまう課題への対策です。この再描画によって、Wi-Fi起動後の経過時間が長くなり、Wi-Fiの消費電流が下がり、電池などの内部抵抗による電圧低下が緩和されたためだと思います。消費電流が下がるといっても、処理時間は長くなって電力量は増えると思うので、再描画しない方が省エネです(下図:再描画しないと画面全体が黒っぽくなってしまう様子)。
ご注意
送信間隔 SLEEP_P を28.8秒未満(28*1000000ul 未満)にすると、送信データの一部(1日3000サンプルの超過分)が蓄積されないだけでなく、クラウド・サービスの運営社に必要以上の負荷をかけてしまいます。
e-Paper の動作確認などで、SLEEP_P を小さく設定したいときは、Amb_Id を “00000” に設定してください(この場合、Ambientに送信されません)。
by bokunimo.net