#include <M5StickCPlus.h> #include <WiFi.h> // #include "time.h" #define USE_NTP 1 // NTPからRTCに時刻設定するなら1 void setRTCfromLT(struct tm lt) { RTC_DateTypeDef DateStruct; DateStruct.Year = lt.tm_year + 1900; DateStruct.Month = lt.tm_mon + 1; DateStruct.Date = lt.tm_mday; DateStruct.WeekDay = lt.tm_wday; M5.Rtc.SetDate(&DateStruct); RTC_TimeTypeDef TimeStruct; TimeStruct.Hours = lt.tm_hour; TimeStruct.Minutes = lt.tm_min; TimeStruct.Seconds = lt.tm_sec+1; M5.Rtc.SetTime(&TimeStruct); } void getRTC(char* buf) { RTC_DateTypeDef DateStruct; RTC_TimeTypeDef TimeStruct; M5.Rtc.GetDate(&DateStruct); M5.Rtc.GetTime(&TimeStruct); sprintf(buf, "%04d/%02d/%02d %02d:%02d:%02d", DateStruct.Year, DateStruct.Month, DateStruct.Date, TimeStruct.Hours, TimeStruct.Minutes, TimeStruct.Seconds ); } void setup() { M5.begin(115200); M5.Lcd.setRotation(3); if (USE_NTP) { const char* ssid = "ics-ap"; const char* password = "jikkenics"; const char* ntpserver = "ntp.nict.jp"; // or 10.64.7.184 for CIT-ap1x WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { // 接続中... Serial.print("."); delay(250); } configTime(9 * 3600, 0, ntpserver); struct tm localTime; while (localTime.tm_year < 80) { getLocalTime(&localTime); delay(50); } setRTCfromLT(localTime); } } void loop() { char buf[30]; getRTC(buf); // bufに、日時文字列を書き込む Serial.println(buf); M5.Lcd.fillScreen(BLUE); M5.Lcd.setCursor(0, 50, 4); M5.Lcd.println(buf); delay(1000); }