水温を下げる
https://scrapbox.io/files/61224b72ad70f5001dd5a84e.png
Raspberry Piにて水槽用冷却ファンを制御し、設定した目標温度まで水温を下げる
前提条件
このページは以下がそれぞれ実現できていることを前提とする
システム構成図内「Water temp sensor」
システム構成図内「Smart plugs」
システム構成図
システム構成図.icon
要件
水温が一定の温度を越えた時、設定した温度まで自動冷却できる
仕様
仕様1:水温の定期計測時に許容上限温度を超えていれば、冷却ファンが作動する
仕様2:水温の定期計測時に冷却目標温度を下回っていれば、冷却ファンが停止する
使用したもの
あしゅりーアクアリウムの場合
table:使用したもの
ラズパイ Raspberry Pi 4 ModelB 4GB
冷却ファン AQUA COOL FAN コンパクト
スマートプラグ TP-Link HS105
冷却ファン:AQUA COOL FAN コンパクト
水槽用のやつ
静音性の高そうなやつにした(おすすめ)
https://scrapbox.io/files/622caaa426944d001d310a17.jpg
設計
流れは以下の通り
10分おきに水温計測
冷却ファンの自動On/Offの仕組みを作る
冷却実施判定にて冷却が必要な場合は冷却ファンを作動させる
冷却目標温度を下回った時に冷却ファンを停止させる
10分おきに水温計測
水温の自動計測にて定期的な計測(10分おき等)システムを構築していない場合は先にこちらを実現する 冷却ファンの自動On/Offの仕組みを作る
冷却ファンを水槽に設置し、冷却ファンの電源はスマートプラグに接続する
Raspberry Piから以下を実行し、冷却ファンのOn/Offが切り替わることを確認する
code:Terminal
$ python3 control_plug.py on
$ python3 control_plug.py off
冷却実施判定にて冷却が必要な場合は冷却ファンを作動させる
毎回の水温計測で実施するget_temperature.pyに冷却実施の要否を決定する処理を追加する
実装済みのget_temperature()に冷却実施判定を追加する
冷却ファンの作動処理は電源の自動On/Offにて実装したcontrol_plug.pyのplug_on()とplug_off()処理を利用する code:get_temperature.py
import control_plug
TEMP_LIMIT_HIGH = 28.0
### 冷却ファンを接続しているスマートプラグのIPに置き換えること ###
PLUG = '192.168.1.101'
def get_temperature():
### 水温を計測してログファイルに出力する処理(実装済み)###
if temp > TEMP_LIMIT_HIGH:
control_plug.plug_on(PLUG)
else:
pass
完了 ⇒仕様1:水温の定期計測時に許容上限温度を超えていれば、冷却ファンが作動する
冷却目標温度を下回った時に冷却ファンを停止させる
このままであれば冷却ファンが作動し続け、必要以上に水温が低下してしまう危険性があるため、停止処理を追加する
上記のget_temperature()に冷却停止判定を追加する
code:get_temperature.py
TEMP_LIMIT_LOW = 25.0
def get_temperature():
### 水温を計測してログファイルに出力する処理(実装済み)###
if temp > TEMP_LIMIT_HIGH:
control_plug.plug_on(PLUG)
elif temp < TEMP_LIMIT_LOW:
control_plug.plug_off(PLUG)
else:
pass
完了 ⇒仕様2:水温の定期計測時に冷却目標温度を下回っていれば、冷却ファンが停止する
運用結果
この自動冷却システムを実際に水槽に投入して運用した様子
許容上限温度:28.0
冷却目標温度:26.0
運用時期:夏のめっちゃ暑い時
https://scrapbox.io/files/622cdb1793aeb9001d802d73.jpg
俺が次のGAFAや
グラフの通り、冷却ファンが作動すると急激に水温が低下し始め、冷却目標温度に到達して冷却ファンが停止したところから室内温度によるに自然な温度上昇が見られる
システム構成図
「Cooling fan」が実現できたことになる
システム構成図.icon
活用