注目キーワード

【Arduino】切手サイズのコンピュータ「M5Stamp Pico」NTPサーバと時刻同期

すけろく
WiFi接続は前回行ったが、次は時刻同期だな。
げんろく
そうだな。IoTに正確な時刻は大切だ。
NTPサーバと時刻同期してみよう。

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

M5Stamp Picoはディスプレイを持っていないため、主に処理時間やセンサーなどからデータを取得した時刻などを保存するために使用することが考えられます。

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

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

詳細は記事を参照してくださいね!

この記事の前提となるM5Stamp Picoのはじめかたについては、次の記事で紹介しています。

関連記事

すけろく 切手サイズのコンピュータに書き込むことはできな。 げんろく 次は、WiFi接続まわりを試してみよう。 基本はM5Stick Cと同じはずだ。 この記事では、M5Stamp Pi[…]

関連記事

すけろく 切手サイズのコンピューター。 なかなかいい響きだの~。 げんろく 何だそれは? すけろく 「M5Stamp Pico」だ。 ESP32系のマイコンを搭載した切手サイ[…]

今回使用したマイコンはこちら!

M5Stamp Pico DIY Kit
切手サイズのマイコン本体とダウンローダーがセットになったキットです。
通信(WiFi/Bluetooth)機能も搭載され、Aruduino で開発できます。
初めて購入する場合はこちらがおススメです!

<付属品>

  • M5Stamp Pico本体
  • ダウンローダー
  • ピンヘッダ、コネクタ、Groveコネクタ、ケース取付用レンチ、シール

Amazonで確認

時刻同期とは?

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

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

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

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

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

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

 

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

それでは早速、時刻同期のプログラムを記述していきます。

M5Stamp PicoをWi-Fiアクセスポイントに接続させたあと、「MFEED」の公開NTPサーバーとの時刻同期を行います。時刻同期後にWiFi接続を切断し、10秒ごとに時刻をシリアルモニタに出力します。

時刻同期プログラム

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

 

 Arduino IDE スケッチ例

今回は、時刻同期処理とローカル時刻表示処理を「関数」と呼ばれる書き方で記述しました。関数で記述するとSetup()やloop()関数の中の記述を簡略化でき、見やすくなります。また、繰り返し呼び出す場合も関数を呼び出すだけで処理が実行できるため便利です。

 

 M5Stack/M5StickCへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、M5Stamp Picoであるか確認します。
    この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  3. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。
  4. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

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

Connecting to your-ssid
...............
WiFi connected
IP address: 
192.xxx.xxx.xxx
NTP : ntp.jst.mfeed.ad.jp
Friday, March 04 
2022 10:44:29
Disconnect from WiFi
.
WiFi disconnected
Friday, March 04 
2022 10:44:34
Friday, March 04 
2022 10:44:44
Friday, March 04 
・・・

 

さて、これでWi-Fiアクセスポイントに接続して、時刻同期を行うことができました。

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

今後、別記事でプログラムの実行例などをご紹介していきます。

ご期待ください。

今回使用したマイコンはこちら!

M5Stamp Pico DIY Kit
切手サイズのマイコン本体とダウンローダーがセットになったキットです。
通信(WiFi/Bluetooth)機能も搭載され、Aruduino で開発できます。
初めて購入する場合はこちらがおススメです!

<付属品>

  • M5Stamp Pico本体
  • ダウンローダー
  • ピンヘッダ、コネクタ、Groveコネクタ、ケース取付用レンチ、シール

Amazonで確認

 

つぎから購入する場合は、次のものを購入してもよいですね。


M5Stamp Pico Mate
切手サイズのマイコン本体とピンヘッダなどのコネクタ類がついているキットです。通信(WiFi/Bluetooth)機能も搭載され、Aruduino で開発できます。
ダウンローダーが必要ない場合はこちらをどうぞ!

<付属品>

  • M5Stamp Pico本体
  • ピンヘッダ、コネクタ、Groveコネクタ、ケース取付用レンチ、シール

Amazonで確認

複数個を一度に購入する場合は、次のものをどうぞ!



M5Stamp Pico(5個入り)
切手サイズのマイコンです。とても小さく、組み込みに有効なサイズ感ですね。通信(WiFi/Bluetooth)も搭載されています。
開発環境(Aruduino IDE/MicroPython/UIFlow)も豊富でおススメです!
たくさん購入したい場合はこちらをどうぞ!

<付属品>

  • M5Stamp Pico本体
  • シール

Amazonで確認