산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 메가 2560과 센서를 이용한 스마트 수경재배 시스템

부품 및 소모품

부품 수량
아두이노 메가 2560 (Arduino Mega 2560) 1
DHT22 온도 센서 / DHT11 습도 센서 1
릴레이 (일반) 1
RobotGeek 광 센서 (LDR 기반) 1
온도 센서 (LM35) 1

앱 및 온라인 서비스

프로젝트 개요

토양 없는 수경재배 방식을 아두이노로 자동 제어하는 시스템입니다. 상추 재배를 기준으로 온도(25~30°C), 습도(50~80%), 광량(250 μmol/m²/s)을 최적 범위로 유지합니다. 코코넛 파우더를 배지로 사용하여 수분과 영양분 공급을 정밀 제어합니다.

세부 제어 시스템

광량 제어

적색 LED 8개, 청색 LED 8개 총 16개를 4개씩 직렬로 연결하고 병렬로 구성하여 12V 전원으로 구동합니다. 옵토커플러(4N35)를 통해 아두이노에서 제어하며, LDR 광센서로 현재 광량을 측정하여 목표치(250 photons/sec) 미만 시 LED를 켜고 초과 시 끕니다.

온도 제어

LM35 센서로 온도를 감지하여 설정 범위(25~30°C) 이탈 시 대응합니다:

히터는 별도 박스에 설치하여 광센서에 영향을 주지 않게 하고, 팬으로 뜨거운 공기를 내부로 유입시킵니다. 모터 드라이버로 팬을, 릴레이로 히터를 제어합니다.

습도 제어

DHT11 센서로 배지 습도를 모니터링합니다. 설정 범위(50~80%) 미만 시 물펌프를 가동하여 점적 관수 방식으로 수분을 공급하고, 과습 시 냉각 팬으로 습도를 낮춥니다.

주의사항

소스 코드

#include <SimpleDHT.h>
int pinDHT11 = 41;
int coolingFan = 50;
int heatingFan = 48;
int heater = 3;
int LEDrow1 = 25;
int LEDrow2 = 27;
int LEDrow3 = 29;
int LEDrow4 = 31;
int pump = 31;
SimpleDHT11 dht11;

void setup() {
  Serial.begin(115200);
  pinMode(coolingFan, OUTPUT);
  pinMode(heatingFan, OUTPUT);
  pinMode(heater, OUTPUT);
  pinMode(LEDrow1, OUTPUT);
  pinMode(LEDrow2, OUTPUT);
  pinMode(LEDrow3, OUTPUT);
  pinMode(LEDrow4, OUTPUT);
  pinMode(pump, OUTPUT);
}

void loop() {
  temperature();
  light();
  humidity();
}

void temperature() {
  int value = analogRead(A10);
  float volts = (value / 1024.0) * 5.0;
  float temp = volts * 100.0;
  Serial.print("temp=");
  Serial.println(temp);
  delay(1000);
  
  if (temp < 25) {
    digitalWrite(heater, LOW);
    digitalWrite(heatingFan, HIGH);
  } else {
    digitalWrite(heater, HIGH);
    digitalWrite(heatingFan, LOW);
  }
  if (temp > 30) {
    digitalWrite(coolingFan, HIGH);
  } else {
    digitalWrite(coolingFan, LOW);
  }
}

void light() {
  float ldrdata = analogRead(A8);
  float resistorVolt = (1024 - ldrdata) / 1024.0 * 5.0;
  float ldrVolt = 5.0 - resistorVolt;
  float ldrResistance = ldrVolt / resistorVolt * 5000.0;
  float lux = (12518931) * (pow(ldrResistance, -1.405));
  float photons = lux * 0.019;
  delay(1000);
  
  if (photons < 50) {
    digitalWrite(LEDrow1, HIGH);
    digitalWrite(LEDrow2, HIGH);
    digitalWrite(LEDrow3, HIGH);
    digitalWrite(LEDrow4, HIGH);
  }
  if (photons > 100) {
    digitalWrite(LEDrow1, LOW);
    digitalWrite(LEDrow2, LOW);
    digitalWrite(LEDrow3, LOW);
    digitalWrite(LEDrow4, LOW);
  }
}

void humidity() {
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.println(err);
    delay(1000);
    return;
  }
  int humid = (int)humidity;
  Serial.println(" H");
  delay(2000);
  
  if (humid < 85) {
    digitalWrite(pump, HIGH);
    digitalWrite(coolingFan, LOW);
  }
  if (humid > 94) {
    digitalWrite(coolingFan, HIGH);
    digitalWrite(pump, LOW);
  }
}

제조공정

  1. 비료: 과학, 생산, 지속가능한 미래
  2. 토양 수분 센서: 작동 원리와 실용적 응용
  3. 산소(O2) 센서 이해하기: 역할, 위치, 고장 징후
  4. 라즈베리 파이에서 PIR 모션 센서로 LED 제어하기
  5. 스마트 관수용 저가 라즈베리 파이 토양 수분 센서 만들기
  6. 라즈베리 파이에서 DS18B20 온도 센서 테스트하기
  7. MCP9808, InfluxDB, Grafana로 라즈베리 파이 홈 온도 모니터 구축하기
  8. 센서 텔레메트리 2.0.1: Azure IoT Hub를 활용한 고급 온도 모니터링
  9. 감정 센서 & EEG: 실시간 감정 감지를 위한 저비용 하드웨어
  10. 홀 이펙트 센서 완벽 가이드: 원리·응용·설계 핵심