以前にESP8266で現在時刻を取得する記事をあげました ここ
”ESP32でもできるんじゃね?”という考察をしましたが、やってみたらできました
少しプログラムが異なるため、まとめておきます
以前のプログラムの変更点はインクルードするライブラリが異なる点だけです
ESP8266では” ESP8266WiFi.h”を使用しました
ESP32では”WiFi.h”を使用します
また、“#define JST 3600*9”の書き換えも必要です
# define JST 3600\* -9
と変更してください!
2017年9月30日のアップデートにて#define JSTはESP32とESP8266は同じになりました
下記ソース
#include <WiFi.h>
#include <time.h>
#define JST 3600* 9
const char* ssid = "your-ssid";
const char* password = "your-password";
void setup() {
Serial.begin(115200);
delay(100);
Serial.print("\n\nStart\n");
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(500);
}
Serial.println();
Serial.printf("Connected, IP address: ");
Serial.println(WiFi.localIP());
configTime( JST, 0, "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
}
void loop() {
time_t t;
struct tm *tm;
static const char *wd[7] = {"Sun","Mon","Tue","Wed","Thr","Fri","Sat"};
t = time(NULL);
tm = localtime(&t);
Serial.printf(" %04d/%02d/%02d(%s) %02d:%02d:%02d\n",
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
wd[tm->tm_wday],
tm->tm_hour, tm->tm_min, tm->tm_sec);
delay(1000);
}
実行結果
Connected, IP address: 192.168.11.11
1969/12/31(Wed) 15:00:01
2017/06/08(Thr) 15:46:55
2017/06/08(Thr) 15:46:56
2017/06/08(Thr) 15:46:57
2017/06/08(Thr) 15:46:58
2017/06/08(Thr) 15:46:59
2017/06/08(Thr) 15:47:00
2017/06/08(Thr) 15:47:01
2017/06/08(Thr) 15:47:02
2017/06/08(Thr) 15:47:03
2017/06/08(Thr) 15:47:04
2017/06/08(Thr) 15:47:05
2017/06/08(Thr) 15:47:06
2017/06/08(Thr) 15:47:07
2017/06/08(Thr) 15:47:08
2017/06/08(Thr) 15:47:09
2017/06/08(Thr) 15:47:10
2017/06/08(Thr) 15:47:11
2017/06/08(Thr) 15:47:12
2017/06/08(Thr) 15:47:13
2017/06/08(Thr) 15:47:14
2017/06/08(Thr) 15:47:15
2017/06/08(Thr) 15:47:16
2017/06/08(Thr) 15:47:17
2017/06/08(Thr) 15:47:18
2017/06/08(Thr) 15:47:19
2017/06/08(Thr) 15:47:20
以前にもESP32で現在時刻を取得する記事を書きましたが、こっちのほうが断然楽です