Wifi経由でNTPサーバにアクセスし、現在時刻を取得し表示するサンプル。出力はEPDではなくシリアルポート。
#include <M5EPD.h>
#include <WiFi.h>
#include "time.h"
// Wi-Fi SSID & Password
char *ssid = "WIFI-SSID";
char *password = "WIFI-PASSWORD";
//RTC
#define JST 3600*9
rtc_time_t time_struct;
rtc_date_t date_struct;
void Sync_Time();
void setup()
{
M5.begin();
M5.EPD.Clear(true);
M5.RTC.begin();
Sync_Time();
}
void loop(){
char buf[20];
//Time
rtc_time_t time_struct;
rtc_date_t date_struct;
M5.RTC.getTime(&time_struct);
M5.RTC.getDate(&date_struct);
sprintf(buf, "%02d:%02d:%02d", time_struct.hour, time_struct.min, time_struct.sec);
Serial.println(buf);
delay(500);
}
void Sync_Time(){ //Fix
Serial.println("Connecting to ");
Serial.print(ssid);
WiFi.disconnect( true, true ); //WiFi OFF, eraseAP=true
delay(500);
//WiFi-Start
WiFi.begin(ssid, password);
//Waiting...
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
//WiFi-Success
Serial.println("WiFi Connected.");
// Show IP
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
configTzTime("JST-9", "NTP-SERVER1" , "NTP-SERVER2");
WiFi.disconnect(true);
WiFi.mode(WIFI_OFF);
char buf[20];
//Time
rtc_time_t time_struct;
rtc_date_t date_struct;
M5.RTC.getTime(&time_struct);
M5.RTC.getDate(&date_struct);
sprintf(buf, "%2d:%02d", time_struct.hour, time_struct.min);
Serial.println(buf);
}