14_NTP_Server
インターネットから現在時刻を取得する
NTPサーバーから現在時刻を取得し、シリアルモニターに表示します。
準備する
CherryIoTをPCに接続する
CherryIoTをPCのUSB-A挿入口に接続します。
Wi-Fiの情報を確認する
CherryIoTを接続する2.4GHz Wi-FiのSSID(ネットワーク名)とパスワードを確認します。Wi-Fiルーター本体のラベルや設定画面に記載されています。分からない場合は、ネットワークの管理者に確認してください。
サンプルコード
GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。
GitHubからコードを読み込んでいます...プログラムを書き込む
上のサンプルコードをコピーし、Arduino IDEに貼りつけます。
設定情報を書き換える
コード内の以下の箇所を、「1 準備する」で確認・取得した情報に 書き換えます。
| コード内の項目 | 入力する情報 |
|---|---|
ssid | 接続するWi-FiのSSID |
password | Wi-Fiのパスワード |
const char* ssid = "ここにSSIDを入力";const char* password = "ここにパスワードを入力";コードの左側にある項目名や記号は残し、例を参考に値の部分だけを 書き換えます。値を囲む"、行末の;、 証明書の開始・終了行などは削除しません。書き換えたあと、xxxxxなどの仮の文字が残っていないことを確認してください。
Wi-Fiのパスワード、APIキー、トークン、証明書などを入力したコードは、 Webサイト、SNS、GitHubなどへ公開しないでください。
ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。
初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。
動作確認
Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

シリアルモニターに現在の日付と時刻が表示されるなら成功です。
コードの解説
Wi-Fiへ接続後、NTPサーバーと時刻設定を指定して現在時刻を取得します。
GitHubからコードを読み込んでいます...Serial.begin(115200);シリアルモニターへ文字や測定値を表示するため、通信速度を115200bpsに設定します。
const char *ntpServer1 = "pool.ntp.org";現在時刻を取得するNTPサーバーを指定します。予備のサーバーも設定しています。
const long gmtOffset_sec = 9 * 3600;協定世界時から日本標準時へ合わせるため、9時間分の秒数を設定します。
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer1, ntpServer2);時差とNTPサーバーを指定して時刻同期を開始します。
printLocalTime();現在時刻を取得して表示する関数を呼び出します。
delay(3000);3秒待ちます。
WiFi.begin(ssid, password);設定したSSIDとパスワードでWi-Fiへ接続します。
struct tm timeinfo;取得した日時を年・月・日・時・分・秒に分けて保存する領域を用意します。
if (!getLocalTime(&timeinfo)) {現在時刻を取得できたかを確認し、失敗した場合は処理を戻します。
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");取得した日時を書式に合わせてシリアルモニターへ表示します。