(某共有サイトに投稿していた元記事を移動してきた記事です。)
はじめに
電子工作をやってると、特定の時間や一定時間ごとに動かしたいという動作が出てくる。
そういう時にNTPサーバから時刻を取得したら便利かなと思ったので、このやり方で正しいのかわからないけど書き記しておきます。
準備
ArduinoIDEのスケッチ>ライブラリをインクルード>ライブラリを管理から「ライブラリマネージャ」を開き「NTPClient」をインストールする。
とりあえず時刻を表示してみる
exapmleファイルから引用
exampleから引用
#include <NTPClient.h>
// change next line to use with another board/shield
#include <ESP8266WiFi.h>
//#include <WiFi.h> // for WiFi shield
//#include <WiFi101.h> // for WiFi 101 shield or MKR1000
#include <WiFiUdp.h>
const char *ssid = "WiFiのSSID";
const char *password = "WiFiのパスワード";
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);
void setup(){
Serial.begin(115200);
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
Serial.print ( "." );
}
timeClient.begin();
}
void loop() {
timeClient.update();
Serial.println(timeClient.getFormattedTime());
delay(1000);
}
UTC時刻だけど表示出来た。
日本標準時にするには、
//NTPClient timeClient(ntpUDP);を以下に書き換える
NTPClient timeClient(ntpUDP,32400);
時/分/秒(HOUR, MINUTE, SECOND)を別々に表示する
時/分/秒を別々に取得出来たほうがより便利かなと思ったので一応…
timeClient.getMinutes()で分を取得できる。時や秒も同様に
Serial.println(timeClient.getHours());
Serial.println(timeClient.getMinutes());
Serial.println(timeClient.getSeconds());
1
1
投稿者の人気記事
-
mono
さんが
2020/06/15
に
編集
をしました。
(メッセージ: 初版)
-
mono
さんが
2020/06/15
に
編集
をしました。
ログインしてコメントを投稿する