본문 바로가기
Ji._.INFO

Arduino로 만든 스마트 식물 관리 시스템 튜토리얼

by 즨니 2024. 11. 21.
728x90
반응형
SMALL

오늘날 많은 사람들이 스마트 홈 기기를 사용하고 있습니다. 그 중에서도 식물을 기르는 데 스마트 기술을 접목시키는 것이 인기를 끌고 있습니다. 이번 포스트에서는 Arduino를 이용해 식물의 상태를 자동으로 감지하고, 물을 주는 시스템을 만드는 방법을 소개하려고 합니다. 이 시스템은 토양 습도 센서를 이용해 식물의 상태를 모니터링하고, 습도가 낮을 경우 자동으로 물을 공급하는 방식으로 작동합니다.

필요한 부품

  • Arduino UNO 보드: 프로젝트의 중심이 되는 컨트롤러입니다.
  • 토양 습도 센서: 토양의 습도를 측정하여 물을 줄지 말지를 결정합니다.
  • 서보 모터: 물을 공급할 때 사용되는 장치입니다. 서보 모터를 이용해 물을 담고 있는 용기에서 물을 퍼낼 수 있습니다.
  • 수중 펌프: 물을 공급하는 데 필요한 펌프입니다.
  • 릴레이 모듈: 수중 펌프에 전원을 공급할 수 있도록 하는 장치입니다.
  • 브레드보드와 점퍼 와이어: 부품들을 서로 연결하기 위한 재료입니다.

회로 연결

  1. 토양 습도 센서 연결: 토양 습도 센서는 아날로그 핀에 연결하여 습도를 측정합니다. 센서의 VCC는 5V에 연결하고, GND는 GND에 연결합니다. 아날로그 출력 핀은 Arduino의 아날로그 핀(A0)에 연결합니다.
  2. 서보 모터 연결: 서보 모터는 Arduino의 디지털 핀에 연결합니다. VCC는 5V, GND는 GND에 연결합니다.
  3. 수중 펌프 연결: 수중 펌프는 릴레이 모듈을 통해 제어됩니다. 릴레이의 IN 핀을 Arduino의 디지털 핀에 연결하고, VCC와 GND는 각각 5V와 GND에 연결합니다. 펌프는 릴레이의 NO(Normally Open) 핀에 연결합니다.

코드 설명

이제 Arduino 코드 예시를 소개합니다. 이 코드는 토양 습도 센서를 읽고, 습도가 낮으면 수중 펌프를 작동시켜 물을 주는 시스템을 만듭니다.

int moisturePin = A0;  // 토양 습도 센서 연결 핀
int pumpPin = 7;       // 수중 펌프 제어 핀
int moistureLevel = 0; // 토양 습도 값

void setup() {
  pinMode(pumpPin, OUTPUT);  // 펌프 제어 핀을 출력으로 설정
  Serial.begin(9600);        // 시리얼 통신 시작
}

void loop() {
  moistureLevel = analogRead(moisturePin);  // 토양 습도 값 읽기
  Serial.print("Moisture Level: ");
  Serial.println(moistureLevel);             // 습도 값 출력

  if (moistureLevel < 300) {  // 습도가 낮으면 (건조하면)
    digitalWrite(pumpPin, HIGH);  // 수중 펌프 작동
    Serial.println("Watering the plant...");
  } else {
    digitalWrite(pumpPin, LOW);   // 습도가 충분하면 펌프를 멈춤
    Serial.println("Soil is wet enough.");
  }
  delay(2000);  // 2초 대기
}

프로젝트 설명

  • 토양 습도 센서는 식물의 토양 상태를 모니터링합니다. 센서가 아날로그 값을 읽어 습도를 측정하고, 그 값에 따라 물을 줄지 말지를 결정합니다.
  • 서보 모터는 물을 담고 있는 용기를 움직여 물을 식물에게 공급하는 역할을 합니다.
  • 수중 펌프는 실제로 물을 이동시키는 역할을 하며, 릴레이 모듈을 통해 Arduino에서 제어합니다.
  • Arduino는 이 모든 장치의 제어 센터로, 센서 값을 읽고 조건에 맞춰 펌프를 작동시키며 식물의 상태를 관리합니다.
728x90
반응형
LIST