중급⏱ 예상 시간: 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단계회로 연결하기
- 토양 수분 센서의 아날로그 출력을 A0에 연결합니다.
- 릴레이 모듈의 IN 핀을 D7에 연결합니다.
- 초록 LED를 D8에, 빨강 LED를 D9에 220Ω 저항과 함께 연결합니다.
- LCD의 SDA를 A4, SCL을 A5에 연결합니다.
- 릴레이 출력에 펌프를 연결합니다 (또는 테스트용 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단계업로드 및 테스트
- 코드를 업로드합니다.
- 센서를 마른 흙에 꽂으면 릴레이가 작동(빨간 LED)합니다.
- 물을 뿌린 흙에 꽂으면 초록 LED가 켜집니다.
- LCD에서 수분 퍼센트를 실시간으로 확인할 수 있습니다.
💡 팁: 실제 화분에 설치하면 자동 물주기 시스템이 완성됩니다!