【RaspberryPi】自動水やり機を作ってみた

きっかけは年末。

帰省のタイミングで何日か家を空け、ベランダで育てている野菜たちへの水やりが滞った。

たっぷり水をやって家を出たものの、帰ってきたら土はカピカピに乾いていた。

同じことは今後もあるだろうし、よく考えてみると、そもそも今の時代に毎日手動で水やりをするなんてのがおかしい気もしてきた。

ということで、水やり機を作ってみました。

準備するもの

準備したモノは、ラズパイ・リレーモジュール・ポンプ・ホース・電池(9V)・配線ケーブル。

一通りそろったセットがamazonで売ってた。品質はともかく、とりあえず試してみる分にはお手頃。

土壌センサーとかも入ってたけど、今回は不要なので使わず。

ラズパイは、「RaspberryPi 4 ModelB」を使用します。

ちょっとだけ事前学習

説明書読んでみても、そもそも、リレーモジュール?GPIO?など知らない単語が多すぎる。

良い機会なので、少しだけ学んでみた。

リレーモジュールについては、オムロン社のHPがとても分かりやすかった。

リレー内部のコイルの電磁誘導で回路のON/OFFを制御しているとのことでした。

使ってみると、確かにスイッチON/OFFでカチカチ音がする。

リレーの定義、種類と分類、構造と原理、特長と動きについてわかりやすく解説。

GPIOピン(General Purpose Input/Output)については、下記HPが分かりやすかった。

ラズパイはただの小型パソコンではありません。「GPIO」と呼ばれるコネクタが搭載されおり、ほかのデバイスと簡単に信号をやりとりできるよう設計されています。 GPIOをマスターすれば、ラズパイから機械をコントロールすることも可能です。まずは簡単な入出力から始めましょう!

同じくラズパイで水やり機を作っていた下記ブログも参考になった。

我が家では妻が植物をいくつか育てていまして、 yatch 毎朝水やり大変そうだなあ。 ラズパイで楽にさせてあげられないかな? と思うようになりました。 ググったら、ラズパイで自動水やりシステムを作れるっぽいので、自分もやってみました。 部材

作ってみた

細かい不明点はまだまた沢山あるものの、とりあえず作ってみた。

年々、机上での学びが億劫になっている。手を動かしてた方が楽しい。

配線

配線図はこんな感じ。非常にシンプル。

ラズパイでGPIO4ピンの出力→リレー内部のスイッチON→ポンプ稼働という流れです。

スクリプト

GPIO4ピンの出力を制御するスクリプトを書いてみます。

test.pyというファイル名で下記のとおり作成。ON/OFFだけなので非常にシンプル。

3秒だけポンプが作動するようにしました。

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)

GPIO.output(4, False)
time.sleep(3)
GPIO.output(4, True)
GPIO.cleanup()

本当は、GPIO.output(4, True)でONになると思うのだけど、

リレーモジュールがLowlebelTriggerだからか、FalseでONになりました。

下記コマンドで実行してみて、ちゃんと動くか確認します。

python test.py

CRONの設定

定期的な動作はcronを使う。下記コマンドで編集。

crontab -e

1分ごとにスクリプト実行する設定にしてみます。

左から「分」「時」「日」「月」「曜日」を指定できます。「*/1」で1分毎という設定になる。

*/1 * * * * python /home/pi/test.py

実際に水やりしてみた

自動水やり機つくってみた

ホースがめっちゃ動いて、水やりは失敗!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. ネット初心者 より:

    質問いいですか?
    左から「分」「時」「日」「月」「曜日」を指定できます。「*/1」で1分毎という設定になる。
    */1 * * * * python /home/pi/test.py

    という部分がよくわかりません。
    例 */1 17 6 9 wednesday python /home/pi/test.py
    こんな感じですか?

    • hamaotoko より:

      いつ実行させたいかを指定しますね。
      *は「設定できる全ての値」という意味です。(曜日だったら、月~日までのすべて)

      例:毎月10日のAM 6:15 に実行
      15 6 10 * * python /home/pi/test.py

      下記記事などが参考になると思います。
      https://www.server-memo.net/tips/crontab.html