1. 스마트팜에서 팬의 역할
스마트팜에서 팬은 공기 순환과 온도 조절을 위한 역할을 합니다. 팬은 스마트팜 내부의 공기를 움직여서 이산화탄소와 습도 등의 이상 기체를 제거하고, 식물의 교배와 수분증발을 위한 공기순환이 이루어지도록 돕습니다.
또한, 팬은 스마트팜 내부의 온도와 습도를 조절하여, 식물이 최적의 생장환경에서 성장할 수 있도록 합니다. 특히 여름철 더위로 인해 스마트팜 내부 온도가 높아지는 경우, 팬을 이용하여 냉각기기의 부담을 줄이고 스마트팜 내부의 온도를 낮추는 역할을 하기도 합니다.
따라서, 팬은 스마트팜에서 필수적인 장비 중 하나이며, 식물의 생장환경을 안정적으로 유지하기 위해 중요한 역할을 합니다.

2. 12V 쿨링팬 위치는 프로젝트에 따라 선택하여 자리 잡기
팬의 역할과 갯수에 따라 구상하고 설계하도록 한다. 쿨링팬의 회전 방향과 바람방향 확인하기.
3. 12V 쿨링팬 SMPS에 바로 연결하기
12V 쿨링팬 빨강선( + ) , 검정선( - ) 을 SMPS로 바로 연결하면 상시 작동하는 팬으로 사용 가능.
위와 같이 연결을 하면 전원공급을 받으면 바로 작동되는 형태
=====================================================================================
4. 쿨링팬 릴레이로 제어하기
위에서 12V 쿨링팬 빨강선( + ) , 검정선( - ) 을 SMPS에 연결했었다면 쿨링팬 빨강색선(+) 두가닥을
릴레이 2채널 NC 포트로 옴기고
SMPS V+ 포트와 릴레이 2채널 COM 포트에 선 하나를 연결 (밑에 사진에서 초록색 선이 예시이다.)
릴레이로 제어하기 위해서는 이제 아두이노 우노보드와 릴레이 2채널 IN2 포트와 연결을 해야한다.
아래 코드는 디지털 12번 핀으로 제어하는 예시이다.
5. 아두이노 코드추가
- 릴레이 2채널을 제어할 변수를 선언한다.
- 디지털 12번 핀을 출력모드로 선언한다.
- loop()함수에서 ditialWrite() 함수를 사용하면 HIGH, LOW 값으로 켜고 끄는 제어가 가능함.
- 조건문을 만들어 스마트팜 설계에 맞게 팬을 자유롭게 제어해 보자.
- 예를 들어 적정온도보다 높은 25도 이상일 경우 켜고 그 밖에는 팬을 꺼두는 작업을 해보자.
■ 아래 아두이노 코드는 전 수업까지 해온 온습도 값을 lcd 출력과 조도센서로 led 제어,
릴레이 2채널에서 팬을 켜 놓은 코드 이다.
프로젝트 활동시 참고할 것.
===================================================================
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
#define DHTTYPE DHT11
#define RELAY_CH1 13 // 디지털 13번핀으로 릴레이 1채널 식물성장 led
#define RELAY_CH2 12 // 디지털 12번핀으로 릴레이 2채널 12v 팬
const int cdsPin = A0; // 조도 센서 모듈의 아날로그 핀 번호
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// 만약 LCD 화면이 나오지 않으면 0x3F 대신 0x27를 넣어주세요.
void setup() {
Serial.begin(9600);
pinMode(RELAY_CH1, OUTPUT); // 릴레이 1채널 출력모드
pinMode(RELAY_CH2, OUTPUT); // 릴레이 2채널 출력모드
dht.begin();
lcd.init();
lcd.backlight();
}
void loop() {
digitalWrite(RELAY_CH2, HIGH); // Turn on Relay channel 2
int cdsValue = analogRead(cdsPin); // 아날로그 핀에서 조도센서 값 읽기
Serial.print("cds Value: "); // 시리얼 모니터에 출력할 문자열
Serial.println(cdsValue); // 시리얼 모니터에 센서 값 출력
if(cdsValue>=650){
digitalWrite(RELAY_CH1, HIGH); // Turn on Relay channel 1
}
else{
digitalWrite(RELAY_CH1, LOW); // Turn off Relay channel 1
}
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature) ) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" %");
String humi = "Humi : ";
humi += (String)humidity;
humi += "%";
String temp = "temp : ";
temp += (String)temperature;
temp += "C";
lcd.setCursor(0, 0);
lcd.print(humi);
lcd.setCursor(0, 1);
lcd.print(temp);
}
===================================================================
'스마트팜 with 아두이노' 카테고리의 다른 글
수위센서를 활용하여 액체펌프 제어하기. (0) | 2023.05.09 |
---|---|
액체펌프 제어하기 (0) | 2023.05.08 |
온습도 센서 lcd 에 문자 띄우기 (0) | 2023.04.03 |
조도센서로 식물성장 led 제어하기 (3) | 2023.03.29 |
아두이노 식물성장 led 릴레이 제어 (0) | 2023.03.27 |