Playground

ESP32で現在時刻を取得する

Playground
この記事は約4分で読めます。
スポンサーリンク

この方法よりも新しくまとめた方が断然楽ですのでこちらを参照してください ここ

センサーからデータを取得するときにタイムスタンプがある便利になると思い色々と調べてみました

とりあえずは現在時刻を取得することができたで備忘録としてまとめます

 

 

使用したマイコンはESP32です

初期設定等はここでみてください

 

“Arduino ntp”と調べると色々とやり方や方法がでてきます

例えば:

 

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
---

 

このライブラリにおいて曜日と時刻を取得することができました

しかし日付が取得できません

うーむ・・・

 

 

参考文献

コメント

タイトルとURLをコピーしました