工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで作る自動植物水やりシステム

部品と用品

Arduino UNO 1
土壌湿度センサー 1
リレーモジュール(5V駆動) 1
小型水中ポンプ(5V/12V) 1
チューブ・配管パーツ 1式
防水ケース 1
ジャンパーワイヤー 適量

必要な工具

このプロジェクトについて

観葉植物の水やりを忘れがちな方、旅行中も植物を枯らしたくない方のための、Arduinoベースの自動水やりシステムです。土壌湿度センサーで土の乾燥を検知し、設定閾値を下回ったときだけポンプを駆動して給水します。

システムの仕組み

  1. 土壌湿度センサーが常時土の水分量をモニタリング
  2. 閾値(デフォルト:40%)を下回るとリレー経由でポンプを起動
  3. 設定時間(デフォルト:5秒)給水後、ポンプを停止
  4. 再度センサー値を確認し、まだ乾燥していれば繰り返し
  5. LCDディスプレイで現在の湿度、ポンプ状態、最終給水時刻を表示

回路構成

土壌湿度センサーのVCCを5V、GNDをGND、信号ピンをA0に接続。リレーモジュールの制御ピンをD7、ポンプの電源線をリレーのNO(常開)接点に接続します。ポンプ電源は別途5Vまたは12Vアダプターを用意してください。

Arduinoで作る自動植物水やりシステム

コード


#include <LiquidCrystal_I2C.h>
#include <Wire.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int MOISTURE_PIN = A0;
const int RELAY_PIN = 7;
const int DRY_THRESHOLD = 600;  // アナログ値(環境に合わせて調整)
const int WATER_TIME = 5000;    // 給水時間(ms)
const int CHECK_INTERVAL = 3600000; // チェック間隔(1時間)

unsigned long lastCheck = 0;
unsigned long lastWatering = 0;
bool pumpActive = false;

void setup() {
  Serial.begin(9600);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // リレーOFF(アクティブロー)
  
  lcd.init();
  lcd.backlight();
  lcd.print("Auto Watering");
  lcd.setCursor(0, 1);
  lcd.print("System Ready");
  delay(2000);
}

void loop() {
  int moisture = analogRead(MOISTURE_PIN);
  unsigned long now = millis();
  
  // LCD表示更新
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Moisture: ");
  lcd.print(map(moisture, 0, 1023, 100, 0));
  lcd.print("%");
  
  lcd.setCursor(0, 1);
  if (pumpActive) {
    lcd.print("Watering...");
  } else {
    lcd.print("Pump: OFF");
  }
  
  // 定期チェック
  if (now - lastCheck >= CHECK_INTERVAL) {
    lastCheck = now;
    
    if (moisture > DRY_THRESHOLD && !pumpActive) {
      // 乾燥検知 → 給水開始
      pumpActive = true;
      digitalWrite(RELAY_PIN, LOW); // リレーON
      lastWatering = now;
      Serial.println("Watering started");
    }
  }
  
  // 給水時間経過で停止
  if (pumpActive && now - lastWatering >= WATER_TIME) {
    digitalWrite(RELAY_PIN, HIGH); // リレーOFF
    pumpActive = false;
    Serial.println("Watering stopped");
  }
  
  delay(1000);
}

キャリブレーション

土壌湿度センサーの値は土の種類、センサーの埋め込み深さ、温度によって変わります。シリアルモニターで乾燥時と湿潤時の値を確認し、DRY_THRESHOLD を調整してください。一般的に値が大きいほど乾燥、小さいほど湿潤を示します。

設置のコツ

拡張アイデア

製造プロセス

  1. CNC試作ガイド:精度、速度、コスト効率の良い生産
  2. 家庭用テーブル選びの完全ガイド:種類、歴史、素材、製造
  3. ビリヤード台(プールテーブル):設計、歴史、建設標準
  4. CNC工作機械:歴史、設計、未来のトレンド
  5. Arduino用バイポーラステッピングモーターライブラリ – 産業グレードの制御機能
  6. CNC旋削加工解説:高品質部品のための精密加工
  7. 動力付きロータリーテーブル:精度、効率、高度な位置決め
  8. CNC用ステッピングモーターとサーボモーター:プロジェクトに最適なのはどちら?
  9. 4×8 CNCプラズマウォーターテーブル:精密板金切断
  10. 1325 4軸ATC CNCルーター PTPテーブル搭載——デュアルスピンドル、旋盤ユニット、ダブル作業台で高効率木工を実現
  11. ワークショップに最適なCNCプラズマテーブルの選び方