今回はM5Stackで遊んでみました。
これも前にM5StickCと一緒に買って積みハードになっていました。
サンプルスケッチを簡単にまとめただけですが、自分用のメモも兼ねてシンプルなソースを書きました。
Wi-fi経由でNTPサーバから時間を取得して日時を表示するまでのサンプルです。
#include <time.h> #include <M5Stack.h> #include <WiFi.h> const char* ssid = "(Wi-fiアクセスポイントのSSID)"; const char* password = "(Wi-fiアクセスポイントのパスワード)"; // NTPサーバのURL const char* ntpServer = "ntp.jst.mfeed.ad.jp"; // GMT+9(日本時間) const long gmtOffset_sec = 9 * 3600; // サマータイム時差(無し) const int daylightOffset_sec = 0; void setup() { M5.begin(); M5.Lcd.clear(TFT_BLACK); M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5.Lcd.setTextSize(4); WiFi.begin(ssid, password); // 500ms*120回なので、1分でタイムアウト for (int i = 0; i < 120 && WiFi.status() != WL_CONNECTED; i++) { delay(500); } if (WiFi.status() != WL_CONNECTED) { // Wifi接続エラー } if (WiFi.status() == WL_CONNECTED) { configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); struct tm t; if (!getLocalTime(&t)) { // NTPサーバ接続エラー } } WiFi.disconnect(true); WiFi.mode(WIFI_OFF); } void loop() { struct tm t; if (getLocalTime(&t)) { M5.Lcd.setCursor(0, 0); M5.Lcd.printf("%04d/%02d/%02d", (1900 + t.tm_year), (t.tm_mon + 1), t.tm_mday); M5.Lcd.setCursor(0, 40); M5.Lcd.printf("%02d:%02d:%02d", t.tm_hour, t.tm_min, t.tm_sec); } delay(100); }