RaspberryPiを使ってcronで水やりをした話
ベランダでナスとピーマンを育てています(いました)。そういうことをしていると長期連休中の水やりが問題になります。 長期連休まで時間がなかったため、ちょうどよく余らせていたRaspberryPiで贅沢に自動水やり機を作ってみた話。
ハード
WiFi接続が可能なRaspberryPi 3 Model Bを使用。RaspberryPiをベランダ外に出し、WiFiでLANに接続させておく。野菜への水やりは水をためたポリタンクにバスポンプを入れ、ポンプのON/OFFで行う。 利用したポンプはKOSHINのバスポンプKP-104。本来はコンセントに接続後、ボタンでON/OFFを切り替えるものだが、分解して調査してみるとONスイッチをショートさせた上で通電すればでONとなることが分かった。よって、ONスイッチをショートさせ、リレーでAC100VをON/OFFすることでポンプを作動させることにした。
このリレーをRaspberryPiのGPIOから制御する。リレーのドライブのために2SC1815でドライブ回路を作り、今回はGPIO4に接続しておく。
タッパーに入れて雨をしのぐ。
ポンプにホース、シャワーヘッドをつなぎ、シャワーヘッドはフレキシブルアームのスマホスタンドで固定しておくことにした。
あとついでに、せっかくRaspberryPiを使っているのだから、成長の様子が監視できるようにWebカメラを用意しUSB接続した。物干し竿の部分に設置し、ラップで防水した。
ソフト
RaspberryPiのgpioコマンド経由で制御する。 こんな感じのシェルスクリプトを書いて、実行、動作を確認しておく。確認ができたら/root/scripts/mizuyari.shあたりに置き、"crontab -e"コマンドでcrontabに
50 5 * * * root /root/scripts/mizuyari.sh
と書いておく。一日一度5時50分に水やりをする設定ができた。
カメラの制御はmotionを使う。 motionをインストール、その後/etc/motion/motion.confを編集してキャプチャサイズ、待ち受けポート等を決め、デーモンを起動する。
daemon on width 1280 height 720 framerate 2 stream_port 8081 # port8080で待ち受け
これでサーバーの8080ポートに接続すれば見られる。ちょうどトップの写真のように、元気な野菜の様子が得られるはず。