こんにちは,えいたです.今回は「5000円資材で自動水やり機を設計と自作」を紹介します.
今回は説明が少ないですが,結果的に達成できている現状を報告し,この水やり機の設計を考えている方に備忘録として記録します.
水やり機の外観

水やり機の外観は上記です.蓋にポンプの穴をあけて
そこからポンプの端子だけ中に入れれるようにしています.

先ほどの箱の中にはさらに小さいボックスがありまして
この中に回路があります.

ここで使用したハードウェア部品を表にまとめます.
使用部品名 | 型番や詳細名 | 値段 |
マイコン | WayinTop ESP32開発 | 900円 |
モータドライバ | TB6612FNG | 500円(予想) |
バッテリー | Amazonベーシック充電池 単三形 | 1500円 |
スマホバッテリー | 不明 | 1500円(予想) |
箱類 | daiso | 200円 |
伝送系や基板系 | 500円(予想) | |
アクリル土台 | 800円 |
そして回路構造なんですが
正直,以前に私が作ったゴミ箱機とほぼ似てます.モーターがポンプになってセンサーが消えたぐらいです.以下のURLからご確認ください.
自動開閉ゴミ箱を自作【タミヤ・esp32・電子工作】 | えいたブログ Eita blog (robo-diary.com)
機械と種子の様子

完成した機械は画像にはありません.モータドライバからつながっているポンプから供給されている水が右上のパイプから出ます.
種子の中にはすでに発芽したものもあり,毎日水やり機は忘れがちになると思ったので
今回は自動水やり機をつくることになりました.これはdelay関数で1日に1回だけ30秒間で水を供給するシステムにしています.
ポンプから供給される水は無事に種子に行くんですが,すべてに供給されるわけではなさそうです.
種子の上には穴が複数も空いているアクリル板があります.
そこに水を流すことで水やりをしています.

ちなみに植えているものは山桜です.

実は水を供給するとき,すべての種子には供給されてません.
アクリル板が元々歪んでいて,水の重みの影響もあって変形がすすんでいることが原因です.
ですので,購入するアクリル板は分厚いものを選ぶほうがよいです.私の場合は1mmほどのものを購入してしまいました.

貝が置いてあるのは,ポンプを抑えるために利用しました.
奥のほうに見える白い箱が今回に製作した機械です.水の供給元はとなりの大きな衣類箱に貯めてある水で.
参考にしたサイト
いろいろあってArduinoを再インストールすることになりました.
そしてdelay関数の機能を確認することになったので
そのURLを以下に添付します.
参考にしたい方はどうぞ.
ESP32-Arduino IDEを活用した開発環境の準備 | Spiceman, https://spiceman.jp/esp32-arduino-ide/
Software | Arduino, https://www.arduino.cc/en/software
esp32にビルドしたコード内容
今回はゴミ箱機のときと配線で使用した汎用ピンが異なるので
そこだけは注意して参考にしてください.
PWMBと記述しておきながら
ずっとHIGHにしたまま水をやるようにしてます.
あと今回のプログラミングで忘れていた点があって
delay関数は1000という記述で1秒だと言うことでした.
1で1秒ではありません.
int PWMB = 19;
int BIN2 = 18;
int BIN1 = 5;
int STBY = 17;
int AIN1 = 16;
int AIN2 = 4;
int PWMA = 0;
void setup() {
// put your setup code here, to run once:
pinMode(PWMB, OUTPUT);// G19
pinMode(BIN2, OUTPUT);// G18
pinMode(BIN1, OUTPUT);// G5
pinMode(STBY, OUTPUT);// G17
pinMode(AIN1, OUTPUT);// G16
pinMode(AIN2, OUTPUT);// G4
pinMode(PWMA, OUTPUT);// G0
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(STBY, HIGH);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
digitalWrite(PWMB, HIGH);
delay(30000);
digitalWrite(PWMB, LOW);
delay(86400000);
}
まとめ
ここまでご覧いただきありがとうございます.
コメントを残す