【RTCモジュールなし!】Raspberry Pi Picoで簡易的に時刻を表示させる

localtime-top Raspberry Pi

本記事の内容

Raspberry Pi Pico(とSeeeduino xiao RP2040)のMicroPythonで、時刻を表示させる方法を簡単にまとめました。

RTCモジュールなしのため、PCと接続していない時は0時からスタートすることだけ、ご了承ください。

created by Rinker
Raspberry Pi
¥1,000 (2024/10/06 08:23:10時点 Amazon調べ-詳細)

時刻を取得する方法

MicroPythonのコードは以下の通りです。timeモジュールのlocaltime関数を引っ張ってくるだけなので、とにかくシンプルです。(Micropythonのドキュメント参照

import time
now = time.localtime()
print(now)
localtime-result

出力は、now配列に年~通算日数が格納されている形です。そのため、now[5]とすれば、秒数だけ取得することもできます。

year西暦の年2022など
month月を表す1-12
day日を表す1-31
hour時間を表す0-23
minute分を表す0-59
second秒を表す0-59
weekday曜日の数字を表す0-6
yearday年内の通算日数を表す1-366

OLED液晶に表示させる場合のコードも掲載します。PCと常時接続している状態であれば、これだけで簡易的な時計の完成です。

from ssd1306 import SSD1306_I2C
from machine import Pin,I2C
import time

i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=200000) 
oled = SSD1306_I2C(128, 64, i2c)

now = time.localtime()

oled.fill(0)
oled.text(str(now[0])+"/"+str(now[1])+"/"+str(now[2]),12,12)
oled.text(str(now[3])+":"+str(now[4])+":"+str(now[5]),36,36)
oled.show()

PCに接続させていない場合

余談ですが、Raspberry Pi PicoをPCに接続させていない状態(main.pyで記載して、電源だけ供給して起動した場合)だと、時計は1/1の00時00分00秒からの開始となります。

これはRaspberry Pi Picoに記載したファームウェアのバージョン次第(上記のファームウェアはv1.18 on 2022-01-17)でしょう。

まとめ

以上、Raspberry Pi PicoでRTCモジュールを使用せずに、簡易的に時刻を表示させる方法でした。PCと接続して使用する場合は、localtime関数を使用することをお勧めします。

コメント