14_NTP_Server

インターネットから現在時刻を取得する

NTPサーバーから現在時刻を取得し、シリアルモニターに表示します。

Wi-Fi通信
1

準備する

CherryIoTをPCに接続する

CherryIoTをPCのUSB-A挿入口に接続します。

Wi-Fiの情報を確認する

CherryIoTを接続する2.4GHz Wi-FiのSSID(ネットワーク名)とパスワードを確認します。Wi-Fiルーター本体のラベルや設定画面に記載されています。分からない場合は、ネットワークの管理者に確認してください。

2

サンプルコード

GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。

14_NTP_Server.ino
GitHubで開く
GitHubからコードを読み込んでいます...
3

プログラムを書き込む

上のサンプルコードをコピーし、Arduino IDEに貼りつけます。

設定情報を書き換える

コード内の以下の箇所を、「1 準備する」で確認・取得した情報に 書き換えます。

コード内の項目入力する情報
ssid接続するWi-FiのSSID
passwordWi-Fiのパスワード
const char* ssid = "ここにSSIDを入力";const char* password = "ここにパスワードを入力";

コードの左側にある項目名や記号は残し、例を参考に値の部分だけを 書き換えます。値を囲む"、行末の;、 証明書の開始・終了行などは削除しません。書き換えたあと、xxxxxなどの仮の文字が残っていないことを確認してください。

Wi-Fiのパスワード、APIキー、トークン、証明書などを入力したコードは、 Webサイト、SNS、GitHubなどへ公開しないでください。

ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。

初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。

4

動作確認

Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

Arduino IDEでシリアルモニターを表示する場所

シリアルモニターに現在の日付と時刻が表示されるなら成功です。

5

コードの解説

Wi-Fiへ接続後、NTPサーバーと時刻設定を指定して現在時刻を取得します。

14_NTP_Server.ino
GitHubで開く
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");取得した日時を書式に合わせてシリアルモニターへ表示します。