Back to tech

ESP-WROOM-02で現在時刻を取得する

2 min read
Table of Contents

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で現在時刻を取得する記事を上げました ここ

予想ではありますが、この方法でもうまくいくと思います(動作未検証)

参考文献