PR

自動水やり装置をDIY制作 ┃WayinTop 自動水やり装置 DIYキットの改造 with Arduino & ラズパイ

自動水やり装置を自作 太陽光発電 運用実績
当サイトはアフィリエイトプログラムに参加しています。記事内容は公平・素直を心がけています。

ベランダの植物への水やりを自動化したい

集合住宅の一室の我が家はベランダで細やかな観葉植物や家庭菜園をしている。

ベランダという狭い範囲なのに、忙しくてついつい水やりをおろそかにしてしまう。
更には、仕事の関係で長期出張に出ることがあるので、その間の水やりが出来るようにもしたい。

沖縄の灼熱の日差しを受けて、いままで多くの植物を枯らしてしまった経緯がある。

そこで、以前からやってみたかった自動水やり装置。

もちろん市販の自動水やり機がそれなりの値段で販売されているのは知っているけど、それでは面白くない。

趣味も兼ねて、電子工作のDIYで自作することにチャレンジしてみよう。

準備と構想01:Arduinoを使ったDIY用の自動水やり装置キットの活用

諸先輩方の意見を参考に、制御のためのマイコンはArduino(アルディーノ)を使ってみることに。

今までArduinoは使った事がなかったけれど、ラズパイ(Raspberry Pi)よりは簡単らしい。

更に、Amazonにて『DIY用の自動水やり装置キット』なるものを見つけた。Arduino等のマイコンは別途購入することを前提に、マイコン以外のモーターや制御リレー、ホースなどがセットになって格安で販売されていた。

初めての試みなので、まずはこれを利用して作ってみることにする。

さらに、電源は普段使っているDIYの300Wベランダ太陽光発電で発電された電気を使うことで、乾電池や充電などの手間がない装置をつくりたい。

準備したもの

品名価格備考オススメ
自動水やりキット¥2,280Amazonにて。
WayinTop 自動水やり装置 DIYキット。
way in top
Arduino UNO(互換品)¥2,000本当は正規品が良いらしいが
コスパ重視で
arduino UNO
Raspberry Pi zeroW家に余っていたものraspberrypizero
Auduino UNO ケース¥380ケースに入れた方がかっこいいし、安全。arduinoケース
延長用ケーブル¥90024 AWG より線。
キット内の配線は短いので室外用の延長に必須
24awg
ケーブルチューブ¥800室外配線の耐候用耐候チューブ
USB DC-DC カー コンバータ12V To 5V¥90012Vバッテリー電源から
ラズパイへの電力供給に使用
散水ノズルセット¥2,000水やりキットのホースでは、
こちらで用意したモーターの径が
合わなかったのと、散水ノズルが欲しかったので。
散水ノズル
防雨ウォルボックス¥1,300室外防水ボックスウオルボックス
精密圧着ペンチ¥2,000あると便利。今後も使うことを想定して購入。精密圧着ペンチ
XHコネクタセット¥600オーディオや車の電装周りでも活躍できそう。XHコネクタ
QIコネクタセット¥700電子工作でいろんな形状のジャンパーケーブルを自作できるね。QIコネクタ
ポリタンク貯水用タンク。もらいもの。

作業ギャラリー

Arduinoのケース組立

市販の自動水やりDIYキットの活用・接続

最初は自動水やりキットで動作を確認。キットのみでは配線も短くモーターの威力も弱いため、実用には物足らず、何だか子供向けの実験セットみたいな感じ。。

そこで、このキットを改良していく方向に。

以前水耕栽培で使っていた12V用モーターに変更し、さらに電源を自宅のDIY太陽光パネルで使用している12Vのバッテリーを活用できるように接続変更。

実際に室外(我が家の場合はベランダですが)で使えるように配線を延長し、耐候性を高めるために各マイコン機器の保護ボックスや、配線をチューブで保護したりしていく。

接続
元々の水やりキットの接続図(現状はモーター1、土壌センサー1、本当は各4)
室内でバッテリに接続して動作テスト。土壌センサを乾かすとポンプが動く。

室外ベランダに設置を試み

準備と構想02:ラズベリーパイとの接続で、外出先でもスマホで確認

初めてArduinoを使ってみてわかったが、Arduinoは、時刻を正確に設定することはできない。
個人的には、植物は朝に水をやった方が良い、と聞いているので、朝の何時から何時の間に水分が乾いていたら水をやる、といった時間指定で水やりという機能を付けたい。

しかし、初めてArduinoを使ってみて気づいたのは、Arduinoは時刻を正確に設定することはできないみたい。

さらに、水位センサーを付けて水が減った時の状態を検出できるようになったので、そのお知らせをパソコンのターミナルではなく、外出先のスマートフォンに通知が来るようにしたい。

  • 時間指定で水やりが出来る機能が欲しい
  • 放水したタイミングでスマートフォンに通知が来るようにしたい
  • 水位センサーにより、水が少なくなった時にスマートフォンに通知が来るようにしたい

このような機能はArduinoだけだと難しいようだ。

ところが、諸先輩には、ArduinoとRaspberry Piを接続して上記を実現している人がいる(その人はカメラで状態まで見えるようにしているな。。すごい)

確かに、Raspberry PiだとWi-Fiも使えるし、メールも飛ばせるし、LINEに通知することもできるようだ。家に余っていたRaspberry Piを使って、上記の機能の実現に取り組んでみることにする。

ラズベリーパイとの接続

ラズパイとアルディーノの接続の仕方は色々あるらしい。
とりあえず、一番簡単なUSB接続で繋げる。

ラズパイ側で、コマンドを打ち込むと確認できた。
「ttyAMA0」というのが、arduinoが繋がってる証拠らしい。

pythonでのプログラミング → 生成AIが大活躍

私のプログラミングスキルは、多少馴染みはあるものの、ハッキリ言ってほぼ初心者レベルです。

アルディーノ上でのプログラムは、購入した水やりキットのサンプルプログラムを少々いじる程度で動かすことが出来たけど、今回のラズパイからアルディーノに送受信をする上でのプログラミングはゼロからやらなければならない。

そこで、役立ったのが、今話題の生成AI。

Chat-GPTが有名ですね。私は最新情報も活用したかったので、MicrosoftのCopilotを使ってます。
ま、今回の作業ではどっちでも構わないでしょうが。

例えば・・・

USBを使ったシリアル通信でarduinoとraspberry piを接続している。if文を使って、arduino側から特定条件時にraspberry piを使ってメールを送るようなプログラムを書きたい。サンプルプログラムを書いて欲しい。

といった形でAIに依頼すると、

みたいな感じで、サンプルプログラムを書いてくれる。

エラーが出ても、

このプログラム実行させたら、こんなエラーが出たよ。原因と対処法は?

なんて、チャットを続けるとほぼ適切な回答をくれる。

おかげでプログラムづくりは、かなりラクに進めることができた。
でも、AI任せだと、勉強がおろそかになるので良くない面もあるけどね・・

ラズパイを使って、指定のタイミングでメールを送る

pythonでgmailを送信するプログラムを生成AIに書いてもらって、編集。
ここでえらい苦労したのが、gmailのセキュリティ問題。

pythonでgmailを使う場合、SMTPの設定を今まで通りやると、通常のアカウントパスワードだとGoogleアカウントがセキュリティ対策ではじいてしまう。

そこで、近年では、Googleアカウントで『アプリパスワード』という16桁のパスワードを生成してそれをプログラムに設定するらしいのだが・・・

この『アプリパスワード』に苦労した・・・。

無事アプリパスワードを取得して、メールの送信に成功。

テストを繰り返し、とりあえず、放水時と水位が中、下になった時にメールを送信するように設定してみた。

第一段階として設置完了

当初、モーター(12V)とリレーの間に昇降圧コンバーター(12V-5V)をかましていたのだが、これが原因でモーターの挙動がおかしかった。
よく見たら、リレーの出力部分なので5Vにする必要はないため、昇降圧コンバーターを間にかます必要はないことに気付く。
昇降圧コンバーターを外したら、モーターの挙動が安定し、太陽光で貯めた12Vバッテリーの電源から問題なくモーターを動かすことができた。

設置してみての感想

空いた休日にちょっと進める感じだったので、何だかんだ、構想から2ヶ月くらい掛かってるような。
でも、ある程度完成したのはうれしい限り。
もちろん、課題はまだまだありますがね。

  • 時間指定(朝と夕方だけ)で水分が少ない時に水やりが出来る機能ができた。
  • 放水したタイミングでメール通知が届く
  • 水位センサで、水位が「中」「下」の時にメールが届く

 今後の課題

  • モーターが弱く、全ての鉢(約10鉢)の半分しか対応できていない。
    →モーター&土壌センサ―をもう1 or 2セット追加する
  • 水の吐き出し口が小さいので放水範囲が狭すぎる
    →棒 or 円状のチューブ等に穴を複数空けて、植物にまんべんなく水が掛かるようにする
  • 外出先でもリアルタイムでセンサーの情報を見れるようにしたい
  • 雨水を自動的にポリタンクに取り込んで、水位がキープできるようにしたい

課題の解消は、今後の楽しみにとっておきます。

良かったこと:

・長期出張時の植物水やり問題を多少解消できた

・電子工作の楽しさが分かってきた

・Arduinoの仕組みが分かった

・センサーの基本的な使い方が分かった

・Arduinoとラズパイの連携活用ができた

・話題の生成AIを大いに活用できた

arduinoとraspberry pi(python)のプログラムコードは以下に↓

コメント

タイトルとURLをコピーしました