import machine
import utime
# 定期的に実行されるタスク
def job():
print("I'm working...")
# 引数付きのタスク
def job_with_argument(name):
print(f"I am {name}")
# 10秒ごとにjob()を実行するタイマー
def timer_10_seconds(timer):
job()
# 10分ごとにjob()を実行するタイマー
def timer_10_minutes(timer):
job()
# 1時間ごとにjob()を実行するタイマー
def timer_1_hour(timer):
job()
# 毎日10:30にjob()を実行(手動で時間をチェック)
def check_time_and_run():
current_time = utime.localtime()
if current_time[3] == 10 and current_time[4] == 30: # 10:30のチェック
job()
# 5〜10分ごとにjob()を実行
def timer_5_to_10_minutes(timer):
job()
# 月曜日ごとにjob()を実行(曜日が月曜日かをチェック)
def check_day_and_run(timer):
current_time = utime.localtime()
if current_time[6] == 0: # 月曜日は0
job()
# 水曜日13:15にjob()を実行(時間と曜日をチェック)
def check_wednesday_13_15(timer):
current_time = utime.localtime()
if current_time[6] == 2 and current_time[3] == 13 and current_time[4] == 15: # 水曜日は2
job()
# 10秒ごとに実行
timer_10_seconds_timer = machine.Timer()
timer_10_seconds_timer.init(period=10000, mode=machine.Timer.PERIODIC, callback=timer_10_seconds)
# 10分ごとに実行
timer_10_minutes_timer = machine.Timer()
timer_10_minutes_timer.init(period=600000, mode=machine.Timer.PERIODIC, callback=timer_10_minutes)
# 1時間ごとに実行
timer_1_hour_timer = machine.Timer()
timer_1_hour_timer.init(period=3600000, mode=machine.Timer.PERIODIC, callback=timer_1_hour)
# 5〜10分ごとに実行
timer_5_to_10_minutes_timer = machine.Timer()
timer_5_to_10_minutes_timer.init(period=300000, mode=machine.Timer.PERIODIC, callback=timer_5_to_10_minutes)
# 月曜日ごとに実行
monday_timer = machine.Timer()
monday_timer.init(period=86400000, mode=machine.Timer.PERIODIC, callback=check_day_and_run)
# 水曜日13:15に実行
wednesday_timer = machine.Timer()
wednesday_timer.init(period=86400000, mode=machine.Timer.PERIODIC, callback=check_wednesday_13_15)
# 引数付きのタスクを10秒ごとに実行
def job_with_argument_timer(timer):
job_with_argument("Peter")
job_with_argument_timer_timer = machine.Timer()
job_with_argument_timer_timer.init(period=10000, mode=machine.Timer.PERIODIC, callback=job_with_argument_timer)
# 毎日10:30のチェックを行うタイマー
check_time_timer = machine.Timer()
check_time_timer.init(period=60000, mode=machine.Timer.PERIODIC, callback=check_time_and_run)
# 無限ループで実行し続ける
while True:
utime.sleep(1) # 1秒待機
コメント