중급⏱ 예상 시간: 50분📝 4단계

자동 화분 물주기 시스템

토양 수분 센서로 흙의 습도를 측정하고, 건조하면 릴레이로 펌프를 작동시키는 자동 물주기 장치입니다.

🧩 필요한 모듈

Arduino Uno
브레드보드
점퍼 와이어
LCD 디스플레이 (I2C 16x2)
LED
릴레이 모듈
저항 (220Ω / 10kΩ)
토양 수분 센서

📖 단계별 설명서

📝

1단계준비물 확인

다음 부품들을 준비해주세요:

  • Arduino Uno 1개
  • 브레드보드 1개
  • 점퍼 와이어 10개
  • 토양 수분 센서 1개
  • 릴레이 모듈 1개
  • I2C LCD (16x2) 1개
  • LED 2개 (초록, 빨강)
  • 220Ω 저항 2개
  • 소형 워터 펌프 (선택사항)

💡 팁: 워터 펌프가 없으면 LED로 펌프 동작을 시뮬레이션할 수 있습니다.

📝

2단계회로 연결하기

  1. 토양 수분 센서의 아날로그 출력을 A0에 연결합니다.
  2. 릴레이 모듈의 IN 핀을 D7에 연결합니다.
  3. 초록 LED를 D8에, 빨강 LED를 D9에 220Ω 저항과 함께 연결합니다.
  4. LCD의 SDA를 A4, SCL을 A5에 연결합니다.
  5. 릴레이 출력에 펌프를 연결합니다 (또는 테스트용 LED).

📐 회로도

회로도 이미지

/images/projects/auto-plant-watering-circuit.png

💡 팁: 릴레이는 HIGH/LOW 레벨 트리거를 확인하고 코드에 맞춰주세요.

📝

3단계코드 작성하기

토양 수분 센서의 값을 읽어 기준값 이하이면 릴레이를 통해 펌프를 작동시킵니다.

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

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int SOIL_PIN = A0;
const int RELAY_PIN = 7;
const int GREEN_LED = 8;
const int RED_LED = 9;
const int DRY_THRESHOLD = 600; // 건조 기준

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // 릴레이 OFF (active low)
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  lcd.print("Plant Monitor");
  delay(2000);
}

void loop() {
  int moisture = analogRead(SOIL_PIN);
  int percent = map(moisture, 1023, 0, 0, 100);
  
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Moisture: ");
  lcd.print(percent);
  lcd.print("%");
  
  lcd.setCursor(0, 1);
  
  if (moisture > DRY_THRESHOLD) {
    // 건조함 - 물주기
    lcd.print("Watering...     ");
    digitalWrite(RELAY_PIN, LOW); // 펌프 ON
    digitalWrite(RED_LED, HIGH);
    digitalWrite(GREEN_LED, LOW);
    Serial.println("건조함! 물주는 중...");
    delay(3000); // 3초 물주기
    digitalWrite(RELAY_PIN, HIGH); // 펌프 OFF
  } else {
    lcd.print("OK - Moist      ");
    digitalWrite(GREEN_LED, HIGH);
    digitalWrite(RED_LED, LOW);
    Serial.println("수분 충분");
  }
  
  delay(5000); // 5초마다 확인
}
+35 줄 더 보기

💡 팁: DRY_THRESHOLD 값을 토양에 맞게 조정하세요. 시리얼 모니터로 센서 값을 먼저 확인하면 좋습니다.

📝

4단계업로드 및 테스트

  1. 코드를 업로드합니다.
  2. 센서를 마른 흙에 꽂으면 릴레이가 작동(빨간 LED)합니다.
  3. 물을 뿌린 흙에 꽂으면 초록 LED가 켜집니다.
  4. LCD에서 수분 퍼센트를 실시간으로 확인할 수 있습니다.

💡 팁: 실제 화분에 설치하면 자동 물주기 시스템이 완성됩니다!

🎉

축하합니다!

"자동 화분 물주기 시스템" 프로젝트를 완성했습니다!