DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

RaspberryPiと炊飯器で低温調理器を自作してみた⑧ 「タイマーデーモン」

設定温度に達したらタイマーをスタート、カウントアップさせてディスプレイに表示させる。

f:id:DreamerDream:20190918164155p:plain

タイマーが設定時間を超えたらスタートファイルを削除する。

スタートファイルが削除されるので、ヒーターデーモンはヒーターの過熱を停止する。

 

<timerd.py>

 

#!/usr/bin/python
#coding:utf-8

import file_mng as file
import datetime
import time

tim_start = False

start_time = None

set_temp = 0.0
now_temp = 0.0

 

#桁「00」表示に揃える

def keta( num ):
  res = '0' + num
  return res[-2:]

#秒を「00:00:00」時間表示に変換

def get_view_time( sec ):
  sec = int( sec )
  hour = keta( str( sec / 3600 ) )
  min = keta( str( ( sec % 3600 ) / 60 ) )
  sec = keta( str( sec % 60 ) )
  return hour + ':' + min + ':' + sec

 

def main():
  global tim_start, start_time, set_temp, now_temp

  #スタートファイルがある場合
  if file.is_start():

    if tim_start:
      if start_time == None:
        str_time = file.load_start_time()
        start_time = datetime.datetime.strptime(str_time, "%Y/%m/%d %H:%M:%S")

       #現時刻とスタート時の時刻の差分を取得
        now = datetime.datetime.now()
        delta = now - start_time
        sec = delta.total_seconds()
        file.save_time( get_view_time( sec ) )
        set_time = float( file.get_time_set() )

        #設定時間をタイマーが超えたらスタートファイルを削除して終了
        if set_time <= sec/60 :
          file.save_row_0('Complete')
          file.stop()

    else:
      r_now_temp = file.load_temp()
      r_set_temp = file.get_temp_set()
      try:
        r_now_temp = float( r_now_temp )
        r_set_temp = float( r_set_temp )
        now_temp = r_now_temp
        set_temp = r_set_temp
      except:
        pass

      #設定温度に達したらスターとファイルを現日時に置き換えてタイマースタート
      if set_temp <= now_temp:
        tim_start = True
        now = datetime.datetime.now()
        now_str = now.strftime("%Y/%m/%d %H:%M:%S")
        file.start( now_str )
        file.save_row_0(now_str)

 

  #スタートファイルが無い場合
  else:
    tim_start = False
    start_time = None


if __name__=='__main__':
  while True:
    main()
    time.sleep(0.5)

<全プログラム内部構造一覧>

dreamerdream.hateblo.jp

 

kampa.me