#include <M5StickCPlus.h> #include <WiFi.h> const char *ssid = "ics-ap"; // 802.11b/g (2.4GHz)only. 5GHz is not supported. const char *password = "jikkenics"; // const char *ntpserver = "192.168.11.11"; //実験室ローカルNTPサーバ const char *ntpserver = "ntp.nict.jp"; bool wifi_setup() { M5.Lcd.fillScreen(ORANGE); M5.Lcd.setCursor(10, 50, 4); WiFi.begin(ssid, password); // 接続開始 int count = 50; while (WiFi.status() != WL_CONNECTED) { // 接続中... M5.Beep.tone(2000); delay(200); M5.Beep.mute(); delay(300); M5.Lcd.print("."); count--; if (count < 1) break; } if (count > 0) { // 接続完了!! M5.Beep.tone(4000); M5.Lcd.fillScreen(GREEN); M5.Lcd.setCursor(0, 8, 4); M5.Lcd.setTextColor(BLACK, GREEN); M5.Lcd.print(" Wifi Connected!\n "); String gotip = WiFi.localIP().toString(); // m5デバイスのIPアドレス M5.Lcd.println(gotip); // MACアドレスを表示 uint8_t mac[6]; char macchar[100]; esp_read_mac(mac, ESP_MAC_WIFI_STA); sprintf(macchar, " %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); String macstr = macchar; M5.Lcd.println(macstr); delay(1500); M5.Beep.mute(); return true; } return false; } void wifi_down() { WiFi.disconnect(); WiFi.mode(WIFI_OFF); } struct tm localTime; void ntp_setup() { configTime(9 * 3600, 0, ntpserver); // NTPサーバからLocalTimeへの時刻同期 delay(1000); while (localTime.tm_year < 80) { getLocalTime(&localTime); M5.Beep.tone(1000); delay(200); M5.Beep.mute(); delay(300); M5.Lcd.print("."); } M5.Beep.tone(2000); setRTCfromLT(localTime); // LocalTimeからRTCへの時刻同期 } // LocalTimeからRTCへの時刻同期 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); M5.Lcd.print(" RTC updated!\n "); delay(1500); M5.Beep.mute(); }