Wio Extension - RTC は、電源と Wio デバイスの間に割り込む形で使用します。Wio Extension - RTC の I2C コネクタは 2 か所ありますが、どちらを接続しても同様に動作します。
Wio Extension - RTC の USB 信号線はすべてつながっているため、この状態で Wio BG770A や Wio LTE JP Version などの DFU モードで動作させたり、Wio 3G SORACOM Edition のソフトウェア (スケッチ) を書き換えたりできます。
利用方法
Wio Extension - RTC の利用方法の概要を説明します。詳しい利用方法は Wio Extension RTC (Real Time Clock) を参照してください。
ライブラリをインストールする
スケッチで、Wio デバイスと Wio Extension - RTC を使えるようにするライブラリ「GroveDriverPack」をインストールします。
Arduino IDE を起動して、
→ の順にクリックします。ライブラリマネージャーが表示されます。
GroveDriverPack の をクリックします。
「GroveDriverPack」がインストールされます。
スケッチを作成する
どの Wio デバイスを利用する場合でも、GroveDriverPack をインストール して、スケッチを作成してください。
Wio Extension - RTC を接続する Wio デバイスによって、参考になるスケッチが異なります。
Wio LTE JP Version / Wio 3G SORACOM Edition / Wio LTE M1/NB1(BG96) と接続する場合
以下の手順で表示できる WioExtRTC のスケッチを参考にしてください。
→ → の順にクリックして、 をクリックします。
WioExtRTC のスケッチが表示されます。このスケッチを参考にしてください。
Wio LTE JP Version 用のサンプルコード (Wio-Extension-RTC Sample Code) を、別途 Resources でダウンロードできます。あわせて参照してください。
Wio BG770A と接続する場合
Wio BG770A 用サンプルスケッチ をダウンロードして、参考にしてください。サンプルスケッチでは、起動後に USER LED を 10 回点滅させてからシャットダウンし、60 秒後に再度起動するようになっています。
Wio BG770A のサンプルスケッチでは、EEPROM の操作がコメントアウトされています。これは、Wio BG770A のボードに書き込み回数の制限が少ない FeRAM が搭載されているためです。一時的にデータを記録する場合は、Wio Extension - RTC に搭載された EEPROM (後述の制限あり) ではなく、Wio BG770A 本体の FeRAM を使用することを推奨します。
スケッチの実装について
電力供給 ON/OFF
Wio Extension - RTC に対しては I2C で通信します。Grove コネクタへの電力供給 (Wio.PowerSupplyGrove(true);
など、Wio デバイスによって異なります) を行ってください。
電源 ON
Wio Extension - RTC の電源を ON にするには、「今から {boot_interval}
秒後に Wio Extension - RTC の電源を ON にする」という指示を実行します。具体的には、RTC.SetWakeupPeriod(int boot_interval);
を実行します。単位は秒です。
- 上記以外の方法はありません。
- Wio デバイスとしては、毎回 Wio Extension - RTC の電源を ON にするため、センサーや周辺機器における電源 OFF 前の終了処理や、次回起動時の初期化処理で矛盾が発生しないように配慮してください。
EEPROM (不揮発性メモリ)
Wio Extension – RTC は、状態 (変数) の記録に有効な 4 KB の EEPROM (不揮発性メモリ) を搭載しています。
EEPROM は Wio Extension - RTC の電源が OFF になってもデータを保持できます。電源を OFF にする前に現在の状態を EEPROM に書き込み、次回起動時に EEPROM から状態を読み出せます。
読み書き速度は低速、そして読み書き回数による寿命があります。一般的に 10 万~ 100 万回程度で使用できなくなります。
たとえば 1 秒に 1 回書込みを行うと、1 日で 86400 回に到達するため、そのような使いかたはしないでください。
待機時間が長いデバイスが、待機に入る前に EEPROM に状態を書き込み、復帰時に EEPROM から状態を読み込むなど、電力削減の手段として有効に使用できます。
データを消去する場合は、明示的に NULL を書き込みます。
EEPROM はセキュアではありません
EEPROM へのアクセスを保護する仕組みはありません。EEPROM に機密情報は書かないでください。
SW1 スイッチ
Wio Extension – RTC の SW1 は、A と B を切り替えられます。
- A: 常時給電されます。Wio Extension – RTC の電源を OFF にする
RTC.shutdown()
を呼び出しても無視されるモードです。これは、Wio デバイスのソフトウェア更新のときに便利です。 - B:
RTC.shutdown()
などの関数が機能するモードです。通常は B に設定してください。