GitHub - arduino-libraries/NTPClient: Connect to a NTP server
github.com
センサーからデータを取得するときにタイムスタンプがある便利になると思い色々と調べてみました
とりあえずは現在時刻を取得することができたで備忘録としてまとめます
使用したマイコンはESP32です
初期設定等はここでみてください
“Arduino ntp”と調べると色々とやり方や方法がでてきます
例えば:
- http://qiita.com/exabugs/items/b1b7430d185b268a1abf
- http://arms22.blog91.fc2.com/blog-entry-445.html
Qiitaに記載されていた方法(例で上げたもの)でもよいと思ったのですが、コメントを見ると取得できないという書き込みがあったため見送りました
簡単にできるものがないかなぁと思い、githubをあさっていたら見つけました
NTPClient:http://github.com/arduino-libraries/NTPClient
サンプルコードを読むとESP8266用なのかなぁと思いましたが、ものは試しでやってみました
いつもの通りGitHubからライブラリをダウンロードし、Arduinoへインポート
ESP32のサンプルコードとNTPClientのサンプルプログラムを読みながら作っていきます
こんな感じ↓
#include <NTPClient.h>
#include <WiFi.h>
#include <WiFiUdp.h>
char ssid[] = "ssid"; //ssid
char pass[] = "password"; //password
WiFiUDP ntpUDP;
//udp, ntp, 時差(日本はutc時刻から-9時間), インターバル
NTPClient timeClient(ntpUDP, "ntp.nict.jp", 32400, 60000);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
WiFi.begin(ssid, pass);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
Serial.print ( "." );
}
timeClient.begin();
}
void loop() {
// put your main code here, to run repeatedly:
timeClient.update();
Serial.print(timeClient.getDay());//曜日 日曜日は0となりそこから番号が割り振られる
Serial.print('-');
Serial.println(timeClient.getFormattedTime());
delay(1000);
}
実行結果
......5-09:09:54
5-09:09:55
5-09:09:56
5-09:09:57
5-09:09:58
5-09:09:59
5-09:10:00
5-09:10:01
5-09:10:02
5-09:10:03
5-09:10:04
5-09:10:05
5-09:10:06
---
このライブラリにおいて曜日と時刻を取得することができました
しかし日付が取得できません
うーむ・・・