3.RTC(Real Time Clock)がない
単純なうっかりで、ハードウェア的に時刻を保持する仕組みを作っていませんでした。こういう場合にはRTCモジュールを使って、コイン電池でバックアップすると完璧らしいです。
しかしながら、WiFiを介してインターネットにつながるんだから、NTPで時刻取得しちゃえばいいじゃない、ということで以下のリンクを参考にNTPで取得した時刻を文字列にする関数をこさえました。
Arduinoで遊ぶページ -SimpleTime
数時間使用したときにどれくらいズレがあるのか、ということについては未確認です。基本的に時計的に常時使う感じではなくて、気が向いたときに起動する、外出するときは電源切る、という運用ですので、起動時にNTPから時刻が取得できれば気になるズレは生じません。スクロール表示する以上は必然的に表示時に秒レベルでずれてしまいます(^^;;
time.hをインクルードするとNTP周りの実装が使えるようになるのですが、先に挙げたリンクを読んだ限りでは、getLocalTime()の度にgetConfig()で指定したNTPサーバーにリクエストが飛ぶのか、といったあたりがよくわかりません。
Arduino にしても Arduino Core for ESP32 にしても何かやろうとしていることが明確なら、まず使えそうな標準ライブラリなり外部ライブラリを探すことから始めると効率が良いですね。ライブラリ自体に豊富なサンプルがついてきますし、多分作例もググれば誰か作って公開してくれているとおもいます(笑)
1.データどこから取得する?
2.データの取得と解析はどうする?
3.RTCないけどどうする <--- 今ここ
0 件のコメント:
コメントを投稿