本記事の内容
Raspberry Pi Pico(とSeeeduino xiao RP2040)のMicroPythonで、時刻を表示させる方法を簡単にまとめました。
RTCモジュールなしのため、PCと接続していない時は0時からスタートすることだけ、ご了承ください。
時刻を取得する方法
MicroPythonのコードは以下の通りです。timeモジュールのlocaltime関数を引っ張ってくるだけなので、とにかくシンプルです。(Micropythonのドキュメント参照)
import time
now = time.localtime()
print(now)
出力は、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関数を使用することをお勧めします。
コメント