SORACOMエンジニアブログ

ソラコムの最新技術情報をお届けします

電力の ON/OFF を RTC で制御できる Wio Extension - RTC を出荷開始

電源とネットワークさえあれば、どこでも仕事ができる ソラコム “Max” 松下です。

IoT の活用シーンがどんどんと広がっている中、例えば屋外といった場所でも「IoT でデジタル化したい」というお話をうかがいます。ネットワークは SORACOM でご提案できるのですが、課題は「電源の確保」です。

今回ご紹介する「Wio Extension - RTC」は、 電力の ON/OFF を RTC で制御できる 電力制御ボードで、 SORACOM ユーザコンソールからお求めいただけるようになりました!

Wio Extension - RTC board

RTC とは?

Wio Extension - RTC の製品名についている RTC は Real Time Clock の略称で、時刻をカウントし続けることに特化している、いわゆる「時計」です。 非常に低消費電力で動作し、また、特定の時刻に連動してスイッチを操作することができる、簡易マイコン的な動作も可能です。

Wio Extension - RTC は、名前の通り RTC を搭載しており、連動するスイッチは「電源の ON/OFF」という設計になっているボードです。 よって「特定の時間が経過したら電源を ON にする」もしくは、Wio Extension - RTC に対して「電源 OFF」というコマンドを出すことができるため、時間に連動した電源の ON/OFF が可能となります。

消費電力と RTC の関係性

デバイスの消費電力の削減の基本的な戦略の一つに「動作していない時は寝かせておく」というものがあります。 「寝かせる」とは、すなわち電力の供給を断つ、もしくは、待機中の電力を限りなくゼロに近い状態にしておくという意味で使われることが多いです。

例えば「1時間に1度、周辺温度を計測してクラウドに送信」という要件の場合、その動作時間のほとんどが待機ということになりますが、通常は待機中といえども、結構な電力を消費しています。

昨今は、マイコン単体でも省電力モードへをサポートしており、単体でも低消費電力化が可能なのですが、マイコンに合わせてレジスタにビットを立てたり、時刻の計算を2進数で行ったりと、高度なスキルが要求される事が多くあります。

RTC とそれに連動する電源があれば、簡単に “寝かせる” ことができるので、待機電力の無駄を手軽に削減できます。 Wio Extension - RTC は、それに特化した拡張ボードなのです。

Wio Extension- RTC / 待機電力の無駄を手軽に削減

電源が OFF になるとメモリの中身はどうなるのか?

マイコンの電源が OFF になると、基本的にマイコン内のメモリの中身はすべて消えます。 こうなると、例えば「カウンタ」のような、マイコンの動作中の変数を記憶しておく手段が必要となります。

Wio Extension - RTC は、 4KB の EEPROM (不揮発性メモリ) を搭載しています。 EEPROM は電源が切れても中にデータを保持できるので、消えてしまっては困る変数の中身をここに書き込んでおき、次回の起動時に EEPROM から読み出すことで復元することができます。(まるで冒険の書、、、セーブデータですね)

Wio Extension - RTC セット

ソラコムから提供します Wio Extension - RTC の「セット」ですが、Wio Extension - RTC 本体に加えて Grove ケーブル、 microUSB ケーブルが標準添付された形 になります。 これで、すでにお持ちの Wio シリーズとの接続についても、このセット1つで完結します。

Wio Extension - RTC セットは SORACOM ユーザコンソール からご購入いただくことができます!

実際の利用方法

Wio Extension - RTC は、電源と Wio の間に割り込む形で設置します。 Wio Extension - RTC の I2C はどちらでも OK です。

Wio Extension - RTC / 構成図

Wio Extension - RTC 上の USB 信号線はすべてつながっているため、この状態でも Wio LTE JP Version における DFU モードや、Wio 3G SORACOM Edition のソフトウェア書き換えが可能です。

ライブラリ

Wio LTE JP Version 用のライブラリが提供されています。GitHub の Seeed-Studio/Wio_Extension_RTC からダウンロードしてください。

インストールガイド、そしてサンプルコード(スケッチ)も同梱されているので、取り組みやすくなっています。

注意点としては、Wio Extension - RTC に対しては I2C で通信するため Wio.PowerSupplyGrove(true); を実行するようにしましょう。

指定できる時刻の形式

指定可能なのは「今から~後に ON にして」を RTC.SetWakeupPeriod(int boot_interval); という関数で実行します。単位は秒で指定です。

実装のポイント

マイコン側から見ると「毎度、電源 ON」ということになるため、センサーや周辺機器における電源 OFF 前の終了処理や、次回起動時の初期化処理で矛盾が発生しないようする配慮が必要となります。

状態の記録には後述する EEPROM が有効ですので活用しましょう。

Wio Extension - RTC 自体の消費電力

Wio Extension - RTC 自体も、RTC という部品に電力供給する必要があるため電力消費が発生しますが、計測したところ「ほぼゼロ」という結果でした。カタログスペックを見ても確かに “1μA 以下” と、非常に小さい電力で動いていることがわかります。

これだけ消費電力が小さいと、モバイルバッテリーなどは自動 OFF 機能が働いてしまい、 Wio Extension - RTC からの電力回復をしようとしても電力供給されないという事態になります。 これを回避するためには、「微弱な電流でも給電できる」モバイルバッテリーや、「乾電池を束ねて利用するタイプ」のモバイルバッテリーを検討してみてください。

EEPROM の運用

Wio Extension - RTC 上の EEPROM のサイズは 4KB です。 読み書き速度は低速、そして読み書き回数による寿命が 10万~100万回と言われています。

10万回というとかなりの回数があるように思えますが、たとえば1秒に1回書込みを行うと、1日で86400回に到達します。 こういうことからも、頻繁に動作するものではなく、待機が長いデバイスに対する電力削減の手段としてお使いください。

また、 EEPROM の中身は Wio Extension - RTC 自体の電源が切れてしまっても保管されます。 逆に言えば自分で消去(NULL で埋める)する必要がありますし、アクセスの保護をする仕組みもないため、EEPROM に機密情報は書かない方が良いでしょう。 (そのために SORACOM BeamSORACOM Funnel があります!)

ボード上の “SW1” スイッチ

SW1 は A は常時給電されます。ボードの電源を OFF にする RTC.shutdown() は、実行はできますが無視されます。これは Wio LTE JP Version や Wio 3G SORACOM Edition のソフトウェア更新の時に便利です。

SW1 が B で RTC.shutdown() などの関数が機能するようになるため、普段は B にしておきましょう。

SW1 は B で運用

あとがき

IoT において「電力が問題なんだよね」という課題を持たれた方は、個人的には「IoT のトップランナー」だと感じています。 電源の問題というのは現場で、しかも実際にやってみないとわからないということもあり、実際に手を動かした方が感じる課題です。

Wio Extension - RTC は、 IoT のトップランナーの方きっと役に立ちますので、是非ともトライしてみてください。

あとは、仕事の無駄を削減する拡張ボードが欲しいですね!


ソラコム “Max” 松下