目的
ほぼ全ての園芸植物は定期的な灌水(水やり)が必要だが、それが面倒臭くて続かない人が一定数いて、ガーデニングを十分楽しめていない。IoTの力でこの問題を解決したいのだが、適切な頻度と量での灌水を完全に自動化するのは容易ではないので、今回はスマホからワンボタンで灌水するシステムをArduino Cloudで作る。
準備物
直流調速器はなくても成り立つが、あると灌水量を調節することができる。水道部分については植物の数に合わせて必要な量だけ準備する。今回は9鉢に40cm程度の間隔で設置した。分岐は鉢の数だけ必要になる。
電気部分
- ESPr® Developer
- リレースイッチ(3.3V用)
- 直流調速器
- ポンプ(DC12V 5A)
- ACアダプター(DC12V)
- ブレッドボード
- ジャンパー線
水道部分
Arduino Cloudの設定
前回と同様にESPr® Developerの準備をしたら、Arduino Cloudの設定を行う。Deviceからボードを登録したら、Thingsで次の設定を行う。
Setup
灌水をするかしないかの状態を表す変数の設定、ボードの紐付け、WifiのSSIDとパスワードの入力を行う。
Sketch
ESPr® DeveloperをUSBでPCに接続してFlashボタンを押しながら書き込む。
#include "thingProperties.h"
#define RELAY 5
void setup() {
pinMode(RELAY, OUTPUT);
Serial.begin(119200);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
}
void onIrrigationChange() {
if(irrigation){
digitalWrite(RELAY, HIGH);
} else {
digitalWrite(RELAY, LOW);
}
}
Dashboard
Linked VariableにSetupで設定した変数を紐づける。
配線
配線をする前にLチカで動作確認をすると良い。
完成
外に置く場合はコンセントボックスを利用すると良い。
参考