検索:
自動水あげ機を作ってみた

室内で観葉植物に自動で水をあげる装置を作ってみました。

構想は以下のようになっています

水分センサが鉢の水分量を検知して、一定の値以下になったらポンプが作動して水をあげてくれます。

ポンプはAmazonでこちらを購入
https://www.amazon.co.jp/dp/B07VKSTF78?ref=ppx_yo2ov_dt_b_fed_asin_title
自動水やり装置 DIYキット 静電容量式土壌水分センサー + 小型ポンプ

ポンプ・センサを配線する

まずはポンプとセンサを配線します。

ポンプは少し大きな電力が必要なため、リレーを介してON/OFします。

制御プログラムを作る

// アナログ入力ピン
const int analogPin = A0;

// デジタル出力ピン
const int digitalPin = 2;

// しきい値(ADCの半分)
const int threshold = 450;
int cnt = 0;

void setup() {
  pinMode(digitalPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // A0の値取得(0~1023)
  int sensorValue = analogRead(analogPin);

  // 出力判定
  bool outputState = false;
  if (sensorValue < threshold) {
    digitalWrite(digitalPin, HIGH);
    outputState = true;
    cnt = 0;
 
  } else {
    digitalWrite(digitalPin, LOW);
    outputState = false;
    cnt++;
  }

  // シリアル表示
  Serial.print(" , A0 = ");
  Serial.print(sensorValue);
  Serial.print(" , D2 = ");
  Serial.println(outputState ? "HIGH" : "LOW");
  Serial.print("cnt = ");
  Serial.print(cnt);

  delay(150);
}

上記のプログラムを転送します。

450の値をしきい値にポンプがON/OFFするようになります。

環境センサの値はArduinoの「シリアルモニタ」から確認できます。

ブザーを追加する

つぎに水をあげているときに音楽をならせるよう、ブザーを追加します。

配線は以下です。

完成した作品

ペットにタイマーで餌をあげるフィーダーを自作してみた

日帰り旅行で帰りが遅くなる時など「ペットの餌やりをどうしよう?」ってなりますよね。

そんな時に役に立つ、タイマーでペットに自動で餌をあげる「餌自動フィーダー」を自作してみました。夏休みの自由研究などにもおススメです。

完成イメージ図

用意するもの

制御基板Arduino UNO
モータドライバSU-1201(株式会社イーケイジャパン)
モータMG-12V-1:380(Olimex LTD)

シャッタ制御部をつくる

まずは一番重要なシャッタをタイマーで開閉する制御部分を作ります

モータドライバ(SU-1201)
制御基板(Arduino UNO)

モータ

https://www.digikey.jp/ja/products/detail/olimex-ltd/MG-12V-1-380/21662184

まずはじめに制御基板とモータドライバをドッキングします。

・ArduinoのDIGITAL 0番ピンとモータドライバ基板のJ2-0 番ピンの位置
・ArduinoのANALOG A5番ピンとモータドライバ基板のJ4-A5 番ピンの位置
が合うようにして、しっかりと奥まで差し込みます。

プログラミングをするための、Arduinoの開発環境「Arduino SDK」をインストールします。
参考サイト:https://www.kkaneko.jp/tools/win/arduinoide.html

COMポートの指定

Arduino SDKを立ち上げて、COMポートを指定します。
ArduinoとPCをUSBケーブルで接続すると、該当するCOMポート番号に(Arduino UNO)が表示されるので、それを選択します。

Arduinoタイプの指定

ArduinoのタイプをTools -> Boad: > ●Arduino AVR Boards > から、「Arduino UNO」を選択してください

サンプルプログラムの実行

以下のサンプルコードを実行し、開発環境が構築できていることを確認します

void setup() {
  // put your setup code here, to run once:
  pinMode(8, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop() 
{
  // put your main code here, to run repeatedly:
  digitalWrite(8, HIGH);
  digitalWrite(12, LOW);
  delay(1000);
  digitalWrite(8, LOW);
  digitalWrite(12, HIGH);
  delay(1000);
}

Upload(右矢印マーク)ボタンを押して、プログラムを転送・実行します。

モータドライバ基板の2つのLEDが赤く1秒ずつ交互に点灯したらOKです。

実際にモータを動かしてみる

下記のコードを入力すると、モータが正転(1秒)⇒停止(1秒)⇒逆転(1秒)⇒停止(1秒)と動作します。

void setup() {
  // put your setup code here, to run once:
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop() 
{
  // put your main code here, to run repeatedly:
  analogWrite(9, 160); //回転スピードの設定
  digitalWrite(4, LOW); //回転方向の設定
  digitalWrite(5, HIGH);
  delay(1000);

  analogWrite(9, 0); //回転スピードの設定
  delay(1000);

  analogWrite(9, 160); //回転スピードの設定
  digitalWrite(4, HIGH); //回転方向の設定
  digitalWrite(5, LOW);
  delay(1000);

  analogWrite(9, 0); //回転スピードの設定
  delay(1000);
}

次にタイマーを入れます

  analogWrite(9, 0); //回転スピードの設定
  delay(3600000); //設定したいタイマー値 [ms]

このコードを14行目の前に入れれば、タイマーが作動します。delayの()に入る数字がミリ秒単位のタイマー値なので、目的に合わせて数値を入れてください。

1時間なら、60×60×1,000で3,600,000となります。

装置を作る

百均で以下の材料を購入

段ボールなどで各パーツを作り、組み立て

・土台(フレーム)は、百均で購入した木を木工用ボンドで接着

・餌を入れるホッパは、トイレットペーパーの芯がぴったりだったので、それを段ボールにはめて使用

・滑り台の部分はプラダンを折り曲げて固定して使用

完成した装置の外観