ESP32とNTPサーバーを接続してLEDマトリクスにNTP時計を表示してみた。
ESP32とNTPサーバーを接続してLEDマトリクスにNTPの時刻を表示させてみました。
スマホの時刻もどこかのNTPサーバーに同期しているはずなので、分単位で同期すると思っていましたが、予想通りスマホの時刻更新と同時にESP32のLEDマトリクスの時刻も更新されました。
動画がその様子。
https://github.com/riraosan/RainfallNotifer/blob/master/src/main.cpp
簡単です。ESP32をWifiと接続します。
#include <WiFiClientSecure.h>
Setup()内で以下を記述
Serial.print('.');
delay(500);
}
Serial.println();
Serial.printf("Connected, IP address: ");
time.hをインクルードして、configtimeでNTPサーバから時刻を取得します。
時刻は以下のように取得
void PrintTime(String &str, int flag)
{
char tmp_str[10] = {0};
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);
if(flag == 0){
sprintf(tmp_str, "*|%02d:%02d|", tm->tm_hour, tm->tm_min);
}else{
sprintf(tmp_str, " |%02d %02d|", tm->tm_hour, tm->tm_min);
}
str = tmp_str;
}