0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TC001 のバッテリー残量が一定値以下になったら警告表示を行う

Posted at

リチウムイオンバッテリーを積んでいるので…

Ulanzi TC001 はリチウムイオンバッテリーを搭載している。常時電源を繋ぎっぱなしにするとバッテリーの劣化を招きかねない。そのため定期的に電源を外して放電しつつ運用するつもりだが、放っておくと電池切れを起こしてしまう。
電池残量の表示もできるが、1画面分を使ってしまうのはもったいないため、一定値以下になったら警告表示を行うことで代替したい。

癖のある残量データ

電池残量については、 Awtrix が10秒毎に MQTT で配信する statsbat に整数値(%)で記される。
残量表示がまともであれば、20%や10%で警告表示を行えばよいだろうか、 TC001 の残量表示は癖があり、自分の場合は36%くらいで電源が落ちた。

Awtrix でも同様の指摘がなされているようだ。 55~60% で電源が落ちたと報告している人もいる。
充放電時バッテリー生データ値(bat_raw)の最大値・最小値を dev.json に記録してその値をもとにバッテリー残量を求めるみたいな話が出ているが、実装されているかは確認できていない。

とりあえず、自分の環境では bat の値が40%を下回ったら警告表示をすることにする。

Node-RED で実装

フローと各ノードは下記の通り。
tc001_battlow1.png
tc001_battlow2.png
tc001_battlow3.png
tc001_battlow4.png
tc001_battlow5.png
mqtt in ノードで stats の情報を入力し、 switch ノードでバッテリー残量40%未満を分岐。 function でメッセージを作り、 mqtt out で notify トピックに送り込む。
notify は TC001 がそれを受け取った時点で1回のみ表示。 "hold": true と指定すれば、本体ボタンが押されるまで表示し続けることが可能。
今回は hold 指定をしていない。この場合、 stats が10秒毎に送られてくるので、 BATT LOW を5秒表示(各アプリの表示時間設定と同じ)→元の表示に戻って5秒→バッテリー残量40%未満なら再び BATT LOW を5秒表示と交互に表示され続ける。
一度電源に繋いでしまえば一気にバッテリー残量が上がるので、程なくして BATT LOW メッセージは消える。
一刻も早く消したければ Node-RED 側で該当フローを無効にすればよい。
tc001_battlow6.png

MQTT で配信される情報なら同様にメッセージを出せる

Awtrix 表示用に Node-REDから MQTT 配信される情報も同様に mqtt in から拾い上げることができる。
以下のようなフローにすれば、YouTube チャンネル登録者数が○万人に達した時に TC001 へメッセージを表示させることも可能だ。
tc001_battlow7.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?