ESP-WROOM-02で現在時刻を取得したいなーと思い、色々と調べていました
現在地時刻を取得することができれば、センサーの値に現在時刻を付与でき、オリジナルの値にすることができるなどなどができます
調査した中でこれが一番ラクだなーというものがあったのでまとめておきます
参考にしたのQiitaの記事です(ぶっちゃけるとここからほとんど引用です・・・)
詳しく見たい方はここを参照してください
以下ソースコード
#include <ESP8266WiFi.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.0.9
1970/01/01(Thr) 00:00:00
2017/06/07(Wed) 22:45:54
2017/06/07(Wed) 22:45:55
2017/06/07(Wed) 22:45:56
2017/06/07(Wed) 22:45:57
2017/06/07(Wed) 22:45:58
2017/06/07(Wed) 22:45:59
2017/06/07(Wed) 22:46:00
2017/06/07(Wed) 22:46:01
2017/06/07(Wed) 22:46:02
2017/06/07(Wed) 22:46:03
2017/06/07(Wed) 22:46:04
2017/06/07(Wed) 22:46:05
2017/06/07(Wed) 22:46:06
2017/06/07(Wed) 22:46:07
以前にESP32で現在時刻を取得する記事を上げました ここ
予想ではありますが、この方法でもうまくいくと思います(動作未検証)