RaspberryPiを使ってcronで水やりをした話

ベランダでナスとピーマンを育てています(いました)。そういうことをしていると長期連休中の水やりが問題になります。 長期連休まで時間がなかったため、ちょうどよく余らせていたRaspberryPiで贅沢に自動水やり機を作ってみた話。

f:id:soiyadakara:20191024063000j:plain
元気なベランダ野菜(監視中)

f:id:soiyadakara:20191117124526p:plain

ハード

WiFi接続が可能なRaspberryPi 3 Model Bを使用。RaspberryPiをベランダ外に出し、WiFiでLANに接続させておく。野菜への水やりは水をためたポリタンクにバスポンプを入れ、ポンプのON/OFFで行う。 利用したポンプはKOSHINのバスポンプKP-104。本来はコンセントに接続後、ボタンでON/OFFを切り替えるものだが、分解して調査してみるとONスイッチをショートさせた上で通電すればでONとなることが分かった。よって、ONスイッチをショートさせ、リレーでAC100VをON/OFFすることでポンプを作動させることにした。

f:id:soiyadakara:20191117120231j:plain
バスポンプのコントローラとリレー

このリレーをRaspberryPiのGPIOから制御する。リレーのドライブのために2SC1815でドライブ回路を作り、今回はGPIO4に接続しておく。 f:id:soiyadakara:20191117120100j:plain

タッパーに入れて雨をしのぐ。

f:id:soiyadakara:20191117114820j:plain
シャワーヘッド

ポンプにホース、シャワーヘッドをつなぎ、シャワーヘッドはフレキシブルアームのスマホスタンドで固定しておくことにした。

あとついでに、せっかくRaspberryPiを使っているのだから、成長の様子が監視できるようにWebカメラを用意しUSB接続した。物干し竿の部分に設置し、ラップで防水した。 f:id:soiyadakara:20191117114705j:plain

ソフト

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ポートに接続すれば見られる。ちょうどトップの写真のように、元気な野菜の様子が得られるはず。