注目キーワード

【Arduino】「M5Stack」時刻同期しよう!(RTC非搭載)

すけろく
前回は、Wi-Fiアクセスポイントに
接続することができた。
次は時刻同期かな。
げんろく
うむ。
時刻同期は、全ての基本だからな。
実装してみるか。

この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法について紹介します。

M5Stackは、内蔵タイマであるRTCが搭載されているモデル(例:M5Stack Core 2など)と搭載されていないものがあります。

今回はRTC非搭載のM5Stackを使った場合の時刻同期を記述しています。

IoTなどで複数マイコンを使ってデータ取得を行う場合、機体間の時刻同期をしっかり行うことが重要です。

時刻同期することで、取得データの時系列をほかのマイコンから取得したデータのものと合わせて使用ることができます。

※ただし、RTC非搭載なので、電源が切れるとリセットされます。

 

Wi-Fiアクセスポイントへの接続方法は、次の記事で紹介しています。

関連記事

すけろく M5Stackは、Wi-Fi機能がついているのか。 げんろく ESP32のおかげだな、2.4GhzのWi-Fi接続に 対応している。 すけろく では、早速Wi-Fi接[…]

 

これからはじめる方にお勧めの参考図書はこちら!

時刻同期とは?

Webサイトを構成するサーバやパソコン、スマートフォンなどでも内部に時刻を持っていますよね。インターネットに接続する各機器で内部に持っている時刻がずれていたら、正確な処理や履歴が残せないといったことが起こります。

そこでインターネットには、標準時刻の提供サービスを行う場所があります。それがNTPサーバです。スマートフォンやパソコンでもNTPサーバを使って時刻同期することができます。

また、一度時刻同期を行っても機器内部の時刻をカウントしているクロックの微細なずれが積み重なって時刻がずれていきますので定期的な時刻同期が必要です。

日本国内の環境にて時刻同期をする際に使用できるNTPサーバは以下のものがあります。

  • 独立行政法人情報通信研究機構(NICT)
    NTPサーバー:ntp.nict.jp
  • MFEED時刻情報提供サービス
    NTPサーバ:ntp.jst.mfeed.ad.jp

今回は、「MFEED」の公開NTPサーバーを使用したいと思います。

 

M5Stackの時刻を同期させよう!

それでは早速、時刻同期のプログラムを記述していきます。
Wi-Fiアクセスポイントへの接続後、「MFEED」の公開NTPサーバーとの時刻同期を行います。

その後、同期した内容をもとに時計を、M5Stackのディスプレイに表示させます。

時刻同期プログラム

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 

 M5Stackへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
    ボード:「M5Stack Arduino」-「M5Stack-Core-ESP32」または、「M5Stack-Core2」または「M5Stack-Tough」
    「Partition Scheme」で「Not OTA(Large App)」を選択します。
  3. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「115200」です)
  4. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

シリアルモニタ上に以下の通り表示されれば成功です。

M5Stack initializing...
microSD card initialized.
SSID.txt exists.
/SSID.txt Content:
Can read from JSON Data!
ID: xxxx-xxxxx-xxxxxxx
PW: xxxxxxxx
Conecting Wi-Fi ..WiFi connected
IP address: xxx.xxx.xxx.xxx
NTP : ntp.jst.mfeed.ad.jp
2022-09-27 15:38:49
Disconnect from WiFi
WiFi disconnected

M5Stackのディスプレイ上に次のように時計が表示されます。

 

 

編集後記

いかがだったでしょうか。

さて、これでWi-Fiアクセスポイントに接続して、時刻同期を行うことができました。今回の記事は以上になります。

今後、他の機能を使ったプログラムの実行例などをご紹介していきます。

ご期待ください。

 

今回の記事は以上になります。

最後までご覧いただきありがとうございました。

 

これからはじめる方にお勧めの参考図書はこちら!