muninで部屋の温湿度がロギングできるようになりましたが、GPIOからSSR(ソリッドステートリレー)をON/OFFしてまずは除湿器をON/OFFできるようにしてみました。
ソリッドステートリレーは、秋月電子のソリッド・ステート・リレー(SSR)キット 25A(20A)タイプを使用します。このSSRにラズベリーパイのGPIOポートを直接接続することで、ラズベリーパイからSSRをON/OFFすることが可能です。
GPIOの詳しい話はraspberrypi/Raspberry PiでIO制御この辺を見て頂ければと思いますが、非常に簡単に制御できます。
なので、ある湿度以上になったら除湿器ON、OFFと言うのは、非常に簡単に出来てしまいます。
先回の記事のスクリプトを少し改造して、絶対湿度が13gを超えたら除湿器ON、それ以下ならOFFという風にしてみます。
#!/bin/zsh USBRH="/usr/local/bin/usbrh" #USBRHコマンドから温度と相対湿度を取得 values=(`$USBRH`) #温度取得 t=$values[1] #相対湿度取得 rh=$values[2] #飽和水蒸気圧eを計算、Tetensの式 e=$((6.11*10**(7.5*$t/($t+237.3)))) #水蒸気量(g/m^3)を計算 ah=$((217*$e/($t+273.15)*$rh/100)) #不快指数 DIを計算 DI=$((0.81*$t+0.01*$rh*(0.99*$t-14.3)+46.3)) echo "絶対湿度 "$ah #GPIOの設定 #17番ピンは除湿器 /usr/local/bin/gpio -g mode 17 out #目標絶対湿度を計算 X=`echo "$ah > 13" | bc` if [ $X -eq 1 ]; then $(/usr/local/bin/gpio -g write 17 1) else $(/usr/local/bin/gpio -g write 17 0) fi
後は、スクリプトが単体で動くことを確認し、CRONに登録します。私の場合、とりあえず10分に一度スクリプトが起動するようにしていますが、いい感じですね。
次は、こういった設定をWebから設定できるようにPHPでスクリプト書いてみよう…