Seeed Studio XIAO ESP32C3はESP32互換でWifiが利用できるMCU(マイクロコントローラ)である。外形はSeeed Studio XIAOと同じ大きさ、超小型である。
NTPから時刻と日付を参照し、XIAOのRTC(リアルタイムクロック)に設定する時計を製作した。
時刻関係のライブラリ(Timelib.h)はこちら。表示は定番のSSD1306のOLED、ライブラリはライブラリ管理から検索可能(Adafruit版)。
Wifiは、2つのWifiステーションのうち、電波の強い方を自動で選択できるように、WiFiMulti.hライブリを利用した(一つしかない場合は一方を適当に指定すればよい)。ssidとpasswordをアクセスするWifiステーションのものに変更する。
I2Cの接続はデフォールト(SDA:4、SCK:5)でよい。
XIAO ESP32C3にはSleep機能があるので、時刻の更新時以外はスリープさせると、使用電力(十数mA)を節約できる。ただし、スリープさせるとArudionoIDEからスケッチの書き込みができなくなるので要注意である。スリープを有効にするのは、最後の書き込み時のみにする必要がある。
なお、スリープを有効にしてしまった後は以下の手順で復旧できる。これは、スケッチの誤りで、XIAO ESP32C3がリセットを繰り返すような場合にも利用できるので覚えておく価値があると思う。
- USBを抜く
- BOOTボタンを押したままUSBを挿す、押したまま
- IDEからスケッチを書き込む
- 書き込みが完了したら、BOOTボタンを離す
- RESETボタンを押す
帆のように見えるのはWifiのアンテナである。XIAOとはI-PEXコネクタで接続する。右側の基板はアンテナの台として利用、XIAOには未接続である。