#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
int waterPin = A0;
int led1 = 2;
int led2 = 3;
int r = 13;
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
Serial.begin(9600);
lcd.begin();
dht.begin();
// put your setup code here, to run once:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(r, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int value = analogRead(waterPin);
if(value<0){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
else if(value<= 600){
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
}
else{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
}
delay(100);
//온도와 습도 값을 측정하고 변수에 저장하기
float humi, temp;
temp = dht.readTemperature();
humi = dht.readHumidity();
//센서가 측정하지 못 할 경우 측정 종료
if(isnan(humi) || isnan(temp)){
Serial.println("Failed to read from DHT sensor!!");
return;
}
//측정된 온도와 습도 출력하기
lcd.clear (); //LCD 출력내용 지우기
lcd.setCursor (0, 0);
lcd.print("Temp: ");
lcd.print (temp);
lcd.setCursor (0, 1);
lcd.print("Humi: ");
lcd.print (humi);
delay(300);
//습도로 가습기모듈제어하기
if(humi<25){
digitalWrite(r, LOW);
}
else if(humi>= 25){
digitalWrite(r, HIGH);
}
else if(humi<30) {
digitalWrite(r, LOW);
}
다른부분은 정상작동하는데 가습기모듈코딩이 저게 맞을까요? r이 가습기모듈관련함수입니다.
댓글목록
작성자 아두이노짱
작성일 2021-09-13
평점
가습기 모듈 부분은 문제 없어보이고 마지막에 } 추가하면 되겠네요