Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@inachi

M5Stack MicroPython API調査記録 RTC編

More than 3 years have passed since last update.

※ 2018年3月2日現在

本家MicroPythonのESP32版ではまだESP8266版にあるようなmachine.RTCクラスが実装されていませんが、M5Stack版では実装されています。

M5Stack版はPycom版のAPI仕様がベースになっているようで、NTPによる時刻同期ができます。また、ピン入力でディープスリープから起こす設定のAPIが拡張されています。

クラス machine.RTC

リアルタイムクロックのためのクラス。

from machine import RTC

rtc = RTC()
rtc.init((2018, 1, 7, 23, 13, 0, 0, 0))
print(rtc.now())

コンストラクタ

class machine.RTC()

RTCオブジェクトを作成する。

from machine import RTC

rtc = RTC()

メソッド

rtc.init(datetime)

RTCを指定した日時 datetime で初期化する。

datetime - RTCに設定する現在日時。次の形式のタプルで指定する: (year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])

tzinfo は指定しても無視される。したがって日時は標準時で与えること。

rtc.now()

現在日時をローカルタイムで返す。返す形式は次の形式のタプル: (year, month, day, hour, minute, second, microsecond)

ローカルタイムは現状、常に UTC+8 になってしまう。

rtc.ntp_sync(server, update_period=3600, tz=CST-8)

NTP (SNTP)を使って時刻同期を行う。

server - NTP サーバ

update_period - 更新間隔(秒)。最小間隔は60秒

tz - タイムゾーン。日本時間の場合は 'JST-9' を指定しておけばよい。

rtc.ntp_sync('ntp.nict.jp', tz='JST-9')

※時刻同期できていなくても時刻を更新してしまうのはいまいち。

rtc.synced()

直前の ntp_sync() による時刻同期が完了していれば True を返す。

rtc.ntp_sync('ntp.nict.jp')
for _ in range(100):
    if rtc.synced():
       break

rtc.wake_on_ext0(pin=None, level=False)

ピンからのデジタル入力でディープスリープから起こす設定を行う。

pin - デジタル入力に設定した machine.Pin オブジェクト

level - デジタル入力の False/True どちらに反応するかを指定

# ボタンCを押したらディープスリープから起きるようにする
rtc.wake_on_ext0(machine.Pin(37, machine.Pin.IN), False)

# 60秒間のディープスループに入る
machine.deepsleep(60000)

rtc.wake_on_ext1(pins=None, level=False)

複数ピンからのデジタル入力でディープスリープから起こす設定を行う。

pins - デジタル入力に設定した machine.Pin オブジェクトのリスト

level - デジタル入力の False/True どちらに反応するかを指定

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
inachi

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?