自動水やり装置を作ろう!Nefry BTとGroveモジュールでズボラのための電子工作
こんにちは、ちゃんとくです!日中は温かくなって、すっかり春めいてきました。
春といえば花。
花といえばそう、自動水やり装置ですね。
この季節にぴったりの装置を、お手軽開発ボードNefry BTを使って自作してみましょう!
まずは簡単に、土が乾いたら水をやる機構を作っていきましょう。
なお今回のレシピはNefry BT開発者のわみさんにご提供いただきました!
開発の前に
環境構築
初めてNefry BTを使う方は、ドキュメントを参考にNefry BTのWi-FiとArduino IDEのセットアップを済ませておきましょう。
⇒ 参考: Nefry BTのWi-Fiセットアップ
⇒ 参考: Nefry BT向けのArduino IDEセットアップ方法
使うもの
いろいろな実装方法がありますが、今回は簡単に電気をON/OFFできる「リレー(継電器)」というモジュールを使います。
- 水をやりたい植物
- Nefry BT + 専用ディスプレイ(ディスプレイはなくてもOK)
- Grove 水分センサ(SEEED-101020008)
- Grove リレーモジュール(SEEED-103020005)
- DCウォーターポンプ(こういうの。型番忘れてしまいましたが千石さんで購入。)
- ポンプ用シリコンチューブ(こういうの。熱帯魚屋さんなどに売ってます。)
- ジャンパワイヤ(オス-オス) 1本
- 水を貯めておく容器(コップなど)
- はんだごて + はんだ
配線
さっそく配線をしていきます!全体はこんな感じ。
ポンプへの給電はNefry BTからされるように、ポンプの線をリレーモジュールのGND部分にはんだづけします。モーターの回転方向は関係ないので今回はどちらの線でも大丈夫です。(一般的には赤がプラス、白または黒がマイナスです。)
リレーにはこのように、ジャンパワイヤを挟んで止めることができます。小さいマイナスドライバなどで上部のネジを緩めて挟み、抜けないよう締めます。
ジャンパワイヤとポンプの線をそれぞれ挟みます。
挟む部分が足りない場合は、ニッパーやワイヤストリッパーでちょんちょんと切れ目を入れ被覆を剥きましょう。
Groveコネクタを使ってリレーモジュールはD2に、水分センサはA2(Nefry BT R2の場合はA1)に繋ぎます。(Nefry BT R2はA1の表記がA0になっているミスがあります。注意してください。)
ジャンパはGPIOの5Vに刺します。
プログラム
Arduino IDEに下記のプログラムを貼り付け、書き込みます。Nefry BT R2の場合はINの指定をA1にしてください。
#include <Nefry.h>
#include <NefryDisplay.h>
#define IN A2 // 土壌センサ(R2の場合はA1)
#define OUT D2 // リレー->モータ
#define AVE 5 // センサ値を平均化するための取得回数
int readRaw;
int aveRate;
int waterTimer;
void setup() {
pinMode(OUT, OUTPUT);
digitalWrite(OUT, LOW);
delay(10000);
NefryDisplay.print("wait...");
}
void loop() {
readRaw = 0;
for(int i=0;i<AVE;i++){
readRaw = analogRead(IN);
delay(500);
}
aveRate = readRaw/AVE;
NefryDisplay.print((String)"readAve : "+aveRate/10/4+" %");
NefryDisplay.print((String)"aveRate : "+aveRate);
if(aveRate<250){
digitalWrite(OUT,HIGH);
NefryDisplay.print("Motor ON");
delay(3000);
digitalWrite(OUT,LOW);
}else{
digitalWrite(OUT,LOW);
NefryDisplay.print("Motor OFF");
}
delay(60000);
}
動かしてみよう
さっそく試してみます!デモ用に下記の動きになっています。
- 乾いていない時(水分センサが水に浸っている時)= ポンプから水は出ない
- 乾いている時(水分センサが水から出た時)= ポンプから水が出る
ポンプが動きました!少し見づらいですが、ディスプレイの表示もOFF->ONと切り替わっています。
まとめ
ポンプを使った電子工作は一見難しいですが、Groveのリレーモジュールを使ってわりと簡単に作ることができました!
ただこのままでは給水用の水がなくなっても気づかなかったり、コップの水をこぼしそうになったり、少し使いづらいですよね……。
次回は外装制作とWeb通知の連携をしてより放置しやすい自動水やり装置にブラッシュアップしてみます!