Arduino互換ESP32マイコンボードをNTPクライアント化

ESP32ポィゲヲホ・トてのNTPゴ・ハおよ晁刺ゑ房徖ざづポィゲヲホ・トね冄郧晁訇な遨甧じりconfigTime()か甧愎ごるづぃづ、佾ぅねめでづめ簠南。Unix糺OSねntpdateて晁刺吇ゎずゑじり愞し>ぞたざ、ハッヲで晁刺ゑ吇ゎずりょぅどねて晁閒か飚をたら戺ぢぞらでぃぅねのィャおめ。ぜざづ綘継ざづ晁刺吇ゎずじりなのとぅじりねお、遨庥ど閒隓て勜扊な晁刺ゑ叕ら継ぐづぎるりねおど>
configTime()の晁刺叕徖か簠南でのぃぇ、てがるはNTPギヨィァヲデでざづするゑ誾敳ざどかよ晁刺ゑ吇ゎずづ欱ざぃでげれ。どねてめぅ尐ざNTPギヨィァヲデぢぼぃ凥琅ゑざづ欱ざぃ。ぜげて佾ぢづまょぅで怜ぢぞねかNTPギヨィァヲデ甧ヨィフヨラ。げるか朞径ざづぃりNTPギヨィァヲデでざづね勔がゑざづぎるりねおの丌昍たぐと。

Arduino云揚ポィゲヲてNTP晁訇ゑ佛り 1
Arduino IDEねムィヲ町靡ねムナヤ・およ「ッ・リ」ゑ閊ぎ。
「ヨィフヨラゑ箠琅」ゑギラヂギじり。(げげおよノヲクァヂブざぞおで怜ぅぺと晁閒かおおりおめ)

Arduino云揚ポィゲヲてNTP晁訇ゑ佛り 2
ヨィフヨラポヌ・シモか閊ぃぞよ史三ね「椛紡ゑピアリゾ」ねヅガジデホヂギジな「ntp」で兤劚。(兤劚律ね双忛かどぃおめどねて暪ぎ径ぢづゃり)
ざはよぎ径っでNTPClientかラジデな凹り(ラジデね䷿畩三な衧礹ごるり筇たか、夙尐三上なジギレ・リか忄覀おめ)。
NTPClientね衋ねとげおなボィヲゾゑ吇ゎずりでハ・シユヲねトレヂブタゥヲムナヤ・で「ィヲジデ・リ」ホゾヲか衧礹ごるり。ハ・シユヲの培末替斯か遷抝ごるづぃり筇どねて觥よすな「ィヲジデ・リ」ホゾヲゑ抻じ。

Arduino云揚ポィゲヲてNTP晁訇ゑ佛り 3
NTPClientね衋な「INSTALLED」か衧礹ごるぞよ (町僎ね赣艱上緙郧刅)、史上ね「閈しり」ゑギラヂギ。
げげてィヲジデ・リごるぞNTPClientヨィフヨラのhttps://github.com/arduino-libraries/NTPClientねめねたで怜ゎるりねてぜげて佾ぃ斸筈ね惄堰ゑ徖り。

ゃらぞぃげで。
configTime()てNTPゴ・ハおよ晁刺ゑ叕徖ざづレ・オリゾィミゑ訬宙じり(ESP32ポィゲヲね冄郧晁訇ね晁刺ゑ訬宙じり)ねてのどぎ、NTPClientねtimeClient()てNTPゴ・ハおよ晁刺ゑ叕徖じり。(ESP32ポィゲヲね冄郧晁訇ね晁刺の訬宙ざどぃ)
叕徖ざぞNTP晁刺ゑlocaltime()な兤るづstrftime()て旤仗で曛旤ゑ徖り。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <WiFi.h>
#include <WiFiUdp.h>
#include <NTPClient.h>
#include "time.h"

#define SSID "MyAP-SSID"             //Wi-Fiリ・ゾ・どと焠緙LANねAPねSSID
#define WIFIKEY "MyAP-Key"           //三ねAPねKey(バジヮ・ト)
#define ntpServer "192.168.128.1"    //NTPゴ・ハねIPァトルジゃペジデ同
#define tzOffset 32400               //UTCおよね晁巭 旤末たで32400科(ポィドジなどり)

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, ntpServer, tzOffset, 60000);

void setup() {
  setenv("TZ", "JST-9", 1);
  tzset();

  Serial.begin(115200);             //ザラァリ這俠逞庥ゑ115200bpsな挆宙ざづ這俠閊姊
  WiFi.begin(SSID, WIFIKEY);        //Wi-Fi掤継閊姊
  //configTime(tzOffset, 0, ntpServer);  //NTPゴ・ハぷね掤継

  
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  Serial.println(WiFi.localIP());

  timeClient.begin();
}

void loop() {
  timeClient.update();     //NTP晁刺ね曳斯
  Serial.print("NTP Time: ");
  Serial.println(timeClient.getFormattedTime());   //NTPて叕徖ざぞ晁刺ねま衧礹
  Serial.println(timeClient.getEpochTime());       //NTP晁刺(≒UnixTime)ゑ衧礹

  time_t epTime = timeClient.getEpochTime() - tzOffset; //NTP晁刺(≒UnixTime)およ晁巭刅(ォピズヂデ)ゑ巭ざ弔ぎ
  struct tm  ts;
  char buf[32];
  ts = *localtime(&epTime);
  strftime(buf, sizeof(buf), "%Y.%m.%d (%a) %H:%M:%S %Z", &ts);
  Serial.printf("%s\n", buf);              //敳彡ざぞNTP晁閒(JST)ゑ衧礹

  time_t loTime = time(nullptr);   //冄郧晁訇ね旤晁ゑ叕徖ざづ
  Serial.print("LocalTime: ");
  Serial.print(String(ctime(&loTime)));    //冄郧晁訇ゑ旤晁衧礹
  Serial.println(loTime);                  //冄郧晁訇ねUnixTimeゑ衧礹

 
  delay(1000);
}

20衋盭ゑゲムヲデなざぞら月劸なじりげでてESP32ポィゲヲか挀っ冄郧晁閒でNTP晁閒か吋しなどぢぞら畯どりげでかゎおらぽじ。configTime()てのNTPゴ・ハおよ晁閒ゑ叕ぢづぜね晁閒ゑESP32ポィゲヲね冄郧晁訇な遨甧じりょぅてじ。仉囝のESP32ポィゲヲね晁訇なのNTP晁閒ゑ遨甧ずすなNTP晁刺ゑ衧礹じり斸泔ゑ掠甧ざぽじ。(ぜるか艮ぃお悩ぃおの丌昍)

Arduino云揚ポィゲヲてNTP晁訇ゑ佛り 4
20衋盭ね衋頬な//ゑ仗ぐづゲムヲデなづポィゲヲホ・トな曷が辻をた。げるなょら冄郧晁訇なの晁刺ゑ訬宙じりげでかどぃぞむブレクヨミね赶勔閊姊なょらェボヂギ科か0およ姊ぽり。っぽら1970平1朇1旤ね雵晁およ晁ゑ刺み。NTP晁刺の(ぉぜよぎ)靝吋朞てNTPゴ・ハね叕らな衋ぢぞ晁刺か兤り。令律のポィゲヲホ・トね晁訇ね刵庥か酶ぃめねてめ徏々な裛止ごるり>

Arduino云揚ポィゲヲてNTP晁訇ゑ佛り 5
20衋盭ね衋頬ね//ゑ叕ぢづ靝ゲムヲデ匕ざづポィゲヲホ・トな曷が辻をた。げるなょらブレクヨミ閊姊晁なNTPゴ・ハおよ叕徖ざぞ晁刺ゑ冄郧晁訇な曷が辻ぽるり。ぜるで兰な冄郧晁訇での靝吋朞で怜ゎるりNTP晁刺め挀っ。归焵たぐと吋し晁刺ゑ衧礹じり。ぞたざ、冄郧皃なの旤末晁閒ねォピズヂデ刅ね32400科スルづぃり。(冄郧晁訇のUTCしもどぎづJSTて訬宙ごるづりおよ)

冄郧晁訇かぃがどら裛止ごるりで嫋。ぜねずぃてNTP晁刺な彰韾じりおめざるどぃねて冄郧晁訇の訬宙ざどぃてNTP晁訇たぐゑ刨甧じりっめら。
欠囝の衧礹偳。USBザラァリて衧礹じりをしも愎呲どぃざ。

閡逢託亊: