0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5StickC PLUS2の時計表示(忘備録)

Last updated at Posted at 2024-12-31

はじめに

先日、M5StackC PLUS2を購入しました。今回は練習のため、時刻と日付を表示する時計を作成してみました。

スケッチ

Arduino IDEのライブラリマネージャで「M5StickC PLUS2 by M5Stack」をインストールした後、以下のスケッチをM5StackC PLUS2に書き込み実行しました。

#include "M5StickCPlus2.h"
#include "time.h"
#include <WiFi.h>
#include <M5Unified.h>

// wifiの設定
const char* ssid = "********"; //自宅等のWiFiの情報を入力
const char* password = "********"; //自宅等のWiFiの情報を入力

void setup()
{
    // put your setup code here, to run once:
    M5.begin();
    M5.Lcd.setRotation(3);
    M5.Lcd.fillScreen(BLACK);
    
    // connect to WiFi
    Serial.printf("Connecting to %s ", ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(500);
        Serial.print(".");
    }
    Serial.println(" CONNECTED");
    // Set ntp time to local
    configTime(3600L * 9, 0, "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");

    // 起動ごとに時刻同期するために同期タイミングを一時的に変更
    auto default_interval = sntp_get_sync_interval(); // ミリ秒単位
    sntp_set_system_time(1, 0);                       // 1秒

    // Set RTC
    struct tm timeInfo;
    if (getLocalTime(&timeInfo))
    {
        M5.Rtc.setDateTime(timeInfo);
    }

    sntp_set_system_time(default_interval * 1000, 0); // 同期タイミングを戻す

    // disconnect WiFi
    WiFi.disconnect(true);
    WiFi.mode(WIFI_OFF);
}

void loop()
{
    M5.Lcd.setTextColor(GREEN, BLACK);
    M5.Lcd.setTextSize(1.5);
    M5.Lcd.setCursor(0, 10, 7);
    M5.Lcd.printf("%02d:%02d\n", M5.Rtc.getTime().hours, M5.Rtc.getTime().minutes);

    M5.Lcd.setTextFont(1);
    M5.Lcd.setCursor(210, 10, 1);
    M5.Lcd.printf("%02d\n", M5.Rtc.getTime().seconds);

    M5.Lcd.setTextColor(WHITE, BLACK);
    M5.Lcd.setCursor(25, 100, 1);
    M5.Lcd.printf("Date:%04d.%02d.%02d\n", M5.Rtc.getDate().year, M5.Rtc.getDate().month, M5.Rtc.getDate().date);

    M5.Lcd.setCursor(25, 120, 1);
    M5.Lcd.printf("Battery Level:%3d%%\n", M5.Power.getBatteryLevel());

    delay(500);
}

時計表示

時刻と秒は緑色、日付とバッテリ残量は白色で表示します。

20250102_140649.jpg

参考

スケッチ全般に関して

テキストフォントの種類、大きさなどの設定について

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?