LoginSignup
5
0

More than 3 years have passed since last update.

ラズパイで熱帯夜を乗り切ろう!2020

Last updated at Posted at 2020-08-27

昨年からQiitaを初めて、その初投稿がこいつでした!
ラズパイで熱帯夜を乗り切ろう!

自宅が細長く高断熱の一軒家という仕様。
昨年、ラズパイリモコンを2台製作したのですが、もう1台つくって全館一定温度にします!

現状:両端の部屋をリモコンで温度コントロール。
完成:真ん中の部屋を新たにコントロールする。-> ドアも全部開け放して家のどこにいても快適にしよう!

前提として家が超高断熱でないと割にあわないかもしれません。
うちは窓をとってもペアガラス+2重サッシという鬼仕様!!
逆にあったまると局所的に外より暑いという悩みがありました。

昨年はBME280で温度によってエアコンをオンオフしていたのですが、仕様を変更。

時間帯によって20分間運転。10分間運転。6分間運転。
単純に間欠運転するようにしました!

間欠運転の理由はエアコンを時々切ったほうがクーラー病なりにくいからです笑
クーラー病とかならない人は着けっぱなしでいいでしょう!いいのか!?

/aircon/auto_pirot.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import time, datetime
import sys
import os

#リモコンファイル
on_files = ['daikin_27.txt']
off_files = ['daikin_off.txt']

#リモコンアドバンスへ送信
def ir_cmd(code_files):
    for code_file in code_files:
        _cmd = "bto_advanced_USBIR_cmd -d $(cat " + code_file + ")"
        while not 0 == os.system(_cmd):
                time.sleep(1)
        print(_cmd + ' -> ' + 'done')
        time.sleep(1)

ir_cmd(off_files)

while True:
    now_time = datetime.datetime.now().time()

    #時間帯によりモード切り替え
    is_morning_time = datetime.time(3, 00) <= now_time and now_time < datetime.time(9, 00)
    is_day_time = datetime.time(9, 00) <= now_time and now_time < datetime.time(17, 00)
    is_night_time = datetime.time(17, 00) <= now_time and now_time < datetime.time(3, 00)

    now_minite = int('{0:%M}'.format(now_time))
    #詳細設定:時刻の分をトリガーに
  if is_morning_time:
        if (0 == now_minite):
            ir_cmd(on_files)
        elif (6 == now_minite):
            ir_cmd(off_files)
    elif is_day_time:
        if (0 == now_minite or 30 == now_minite):
            ir_cmd(on_files)
        elif (20 == now_minite or 50 == now_minite):
            ir_cmd(off_files)
    elif is_night_time:
        if (0 == now_minite or 30 == now_minite):
            ir_cmd(on_files)
        elif (10 == now_minite or 40 == now_minite):
            ir_cmd(off_files)
    else:
        if (0 == now_minite or 30 == now_minite):
            ir_cmd(on_files)
        elif (10 == now_minite or 40 == now_minite):
            ir_cmd(off_files)

    now = datetime.datetime.fromtimestamp(time.time())

    time.sleep(60)

めちゃくちゃ単純で、下記を切り替えているだけ。
午前モード:n時00分にon、n時06分にoff。
午後モード:n時00分にon、n時20分にoff & n時30分にon、n時50分にoff
夜間モード:n時00分にon、n時10分にoff & n時30分にon、n時40分にoff

たまに寒かったら手動で消すし、暑かったらつけます笑

今回苦労したのはリモコンアドバンスでダイキンのリモコン信号を全然記憶してくれなかったこと!!

ものすごく参考になった記事
RaspberryPiでスマートホーム 〜赤外線リモコンでエアコン操作 その2〜

ダイキンのリモコン信号をリモコンアドバンス用に合成してくれるプログラムを公開してくれています!!
うちの全然記憶できなかったリモコン信号が一発で起動できました!!!
大大大だい感謝!!です!!

来年もまた進化したいと思います!!!

追記
久しぶりに起動したら無線でのSSH操作ができないぐらい重い
調べたらパワーマネジメントを無効にする記事を見つけたんで試したら良くなった気がします!
Raspberry PiでSSHの反応が悪いときに実施すること

LGTMお願いします!
モチベーションが上がります!!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0