스마트팜부화기.
Makerist
스마트&tech
0
687
2024.04.04 16:36
37.7~38.2도 습도는 50~60을 유지
#include <DHT.h> #define DHT_PIN_1 3 #define DHT_PIN_2 4 #define RELAY_HEATER 5 #define RELAY_FAN 6 #define RELAY_DC_FAN 7 #define SET_TEMPERATURE_LOW 37.7 #define SET_TEMPERATURE_HIGH 38.2 #define MAINTAIN_TIME 1800000 #define FAN_OPERATION_TIME 600000 DHT dht1(DHT_PIN_1, DHT22); DHT dht2(DHT_PIN_2, DHT22); unsigned long startTime = 0; void setup() { pinMode(RELAY_HEATER, OUTPUT); pinMode(RELAY_FAN, OUTPUT); pinMode(RELAY_DC_FAN, OUTPUT); digitalWrite(RELAY_HEATER, HIGH); digitalWrite(RELAY_FAN, LOW); digitalWrite(RELAY_DC_FAN, LOW); startTime = millis(); // 전원이 인가된 시간 저장 } void loop() { // 경과한 시간 계산 unsigned long elapsedTime = millis() - startTime; // 여기에서 elapsedTime을 기반으로 날짜 및 시간을 계산할 수 있음 // (예: elapsedTime을 시간, 분, 초로 변환하거나 특정 시점에 따라 날짜를 계산) float temperature1 = dht1.readTemperature(); float humidity1 = dht1.readHumidity(); float temperature2 = dht2.readTemperature(); float humidity2 = dht2.readHumidity(); float averageTemperature = (temperature1 + temperature2) / 2; float averageHumidity = (humidity1 + humidity2) / 2; if (elapsedTime < MAINTAIN_TIME) { // 적정 온도와 습도를 유지하는 동안의 동작 digitalWrite(RELAY_HEATER, HIGH); digitalWrite(RELAY_FAN, LOW); digitalWrite(RELAY_DC_FAN, LOW); } else if (elapsedTime < (MAINTAIN_TIME + FAN_OPERATION_TIME)) { // 팬을 동작시키는 동안의 동작 digitalWrite(RELAY_HEATER, LOW); digitalWrite(RELAY_FAN, HIGH); digitalWrite(RELAY_DC_FAN, LOW); } else { // DC 팬을 동작시키는 동안의 동작 digitalWrite(RELAY_HEATER, LOW); digitalWrite(RELAY_FAN, LOW); digitalWrite(RELAY_DC_FAN, HIGH); } }