Raspberry Pi Zero を買って放置したまま1年経ち、
夏を前にサーバーの冷却を考えていたのでタイトル通り、
Raspberry Pi と 温度センサー&赤外線センサーを使って夏を乗り切ろうっていう記事です。
ちなみに結局温度センサーは接続したものの
今回はCPUの温度やSSDの温度をトリガーとして赤外線センサーを使うので
使いませんでした?
ちなみに僕は電子工作に関して全く知識がありません。
抵抗値の計算すらできません。それでもできたのでネットは偉大ですね。
買ったもの
・1/2W 100Ω
・1/2W 1kΩ
・ADT7410 温度センサー
・OSRB38C9AA 赤外線リモコン受信モジュール
・OSI5LA5113A 赤外線LED
・OSI5FU5111C-40 赤外線LED 何となく2種類買った
・EIC-801 ブレッドボード
・ブレッドボード・ジャンパーコード
接続
基本的に赤外線LEDは1つが良い(波形が安定する?)らしいのですが
赤外線LED自体の有効照射範囲(?)が15°とかなので3つぐらい設置してみました。
ちなみに抵抗の接続の仕方などは計算ツールみたいのを使った結果を
何となく配置しただけです。
ジャンパーコードは オス – オス を買い忘れたので
抵抗の足を使いました?
WiringPiで制御する
ここがとても参考になりました。
http://www.feijoa.jp/laboratory/raspberrypi/infrared2/
LIRCがも何のか分かってないけど
ネットで引っかかるLIRCを使った記事ではうまくいきませんでした。
シェルスクリプトでエアコンを操作する
#!/bin/bash readonly SLACK_URL="https://hooks.slack.com/services/" readonly SUBJECT=$1 readonly CHANNEL=$2 # Send IR case ${SUBJECT%%:*} in "OK" ) `sshpass -p '' ssh -o StrictHostKeyChecking=no raspi.local -l pi "/home/pi/sendir air_off.data 3 5"` payload="payload={ \"icon_url\": \".png\", \"channel\": \"${CHANNEL}\", \"text\": \"Eacon is turned OFF !\", }" ;; "PROBLEM" ) `sshpass -p '' ssh -o StrictHostKeyChecking=no raspi.local -l pi "/home/pi/sendir air_on.data 3 5"` payload="payload={ \"icon_url\": \"http://.png\", \"channel\": \"${CHANNEL}\", \"text\": \"Eacon is turned ON !\", }" ;; *) payload="payload={ \"icon_url\": \"http://.png\", \"channel\": \"${CHANNEL}\", \"text\": \"not compatible\", }" ;; esac # Posting message to slack curl -m 5 --data-urlencode "${payload}" "${SLACK_URL}"
Zabbixのメディアタイプに登録する
Zabbixのメディアタイプに登録します。
手順は面倒なので割愛です。
トリガーを作成する
今回はサーバー、ルーター、スイッチのCPU温度のいずれかが
60℃を超えたらエアコンがONになるって感じ。
アクションを作成する
トリガー名にEacon
を含めておけば、アクションもこんな感じで設定できます。
動作確認
動画を撮って載せるのは面倒くさいのでしないんですけど
エアコンを切って家をでるとSlackから通知がきます。
数分後に温度を確認すると60℃を下回っていい感じ。
素晴らしい~~~
ただ、このまま運用すると
60℃超える → エアコンON → 59℃辺りになる → エアコンOFF(ループ)
となるので閾値だったり、トリガー条件をもうちょっと考えないとダメですね。