정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 블루투스를 이용한 가습기제어
도동쿤 | 2018-11-28

#include
#include  
#define relay 9             //relay와 연결된 9번 핀
#define dht11Pin 6          //dht11과 연결된 6번 핀

LiquidCrystal lcd(12,11,5,4,3,2);   //RS 핀, E핀, 데이터 핀 4개
String lcdString = "";

DHT11 dht11(dht11Pin);      //dht11 라이브러리 사용을 위한 객체 선언
 
void setup()
{
  pinMode(relay, OUTPUT);
  
  lcd.begin(16,3);           //LCD 크기 지정, 2줄 16칸
  lcd.clear();               //화면 지우기  
  
  Serial.begin(9600);
}

void loop()
{
  int err;     //에러구분 변수
  float humi;  //습도 저장 변수
  float tem;   //온도 저장 변수, 필요한 분은 사용하세요.

  if((err=dht11.read(humi, tem))==0)   //습도값을 에러없이 읽어 왔다면
  {
    onOff(humi);           //가습기 on/off 함수 호출
    lcdHumidity(humi);  
    lcdtemperature(tem);
    
  }
  else
  {
    //읽어오는 도중 문제가 발생할 경우 에러번호와 에러 시리얼 모니터에 출력
    Serial.println();
    Serial.print("Error No :");
    Serial.print(err);
    Serial.println();    
  }
  delay(DHT11_RETRY_DELAY); //다시 읽어올때 까지 멈춤
}

//가습기 on/off 함수 호출
void onOff(float h) {

 if (h < 60 ) { //습도가 50%보다 작으면 
   digitalWrite(relay, HIGH); //가습기 ON 
 }else { 
   digitalWrite(relay,LOW); 
 }

//현재 습도 LCD 출력 함수 
void lcdHumidity(float hu) { 
 lcd.setCursor(0,0); //커서 0,0에 배치 
 lcd.print("humidity"); //""안에 글자 출력 
 char buffer[10]; //float를 string으로 변환하기 위한 임시 char 배열 선언 
 dtostrf(hu, 4, 1, buffer); //float -> char로 변환 
 String humidity = " : "; //두번째 줄에 출력할 구문 만들기 ( : 습도 %) 
 humidity += (String)buffer; //char -> string 
 humidity += "%"; 
 Serial.print(humidity); 
 lcd.print(humidity); //현재 습도 출력
}
void lcdtemperature(float te) { 
 lcd.setCursor(0,1); //커서 0,0에 배치 
 lcd.print("temper"); //""안에 글자 출력 
 char buffer[10]; //float를 string으로 변환하기 위한 임시 char 배열 선언 
 dtostrf(te, 4, 1, buffer); //float -> char로 변환 
 String temperature = " : "; //두번째 줄에 출력할 구문 만들기 ( : 습도 %) 
 temperature += (String)buffer; //char -> string 
 temperature += "%"; 
 Serial.print(temperature); 
 lcd.print(temperature); //현재 습도 출력
}

 

 

위코딩은 kocoafab 홈페이지에서 받아서 사용한 온습도센서를 이용해 가습기를 작동시키는 코딩입니다.

저는 위 코딩을 블루투스 모듈을 이용해 안드로이드 어플에서 버튼을 눌렀을때 가습기가 작동하게도 하고 싶은데 어떤식으로 해야할까요..ㅜㅜ(만일 안드로이드 어플에서 제가 버튼을 눌렀을때 아두이노로 1이라는 값을보내게 되어 제가 아두이노에서 case 1: 식으로해서 가습기가 켜지게 위코딩이랑 합치고 싶네요..ㅜ 좀더 편한 다른 방식이 있으셔도 알려주세요..) 부탁드립니다..ㅜ

이전글   |    오렌지보드 나노 사용중입니다. 업로딩이 되지 않습니다.... 2018-11-27
다음글   |    라즈베리파이 초음파센서 여러개사용 2018-11-28