정보나눔

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

블루투스를 통한 자동온습도 조절을 하고싶습니다...
oooi | 2019-02-26
 

1. 프로젝트 사용한 보드 종류

 아두이노 MAGA UNO보드

 

 

2. 사용한 개발 프로그램명

아두이노

 

 

3. 사용한 센서 모델명

Si7021 

 

4. 연결한 회로 설명 (또는 이미지) 


 

5. 소스코드 (주석 필수)

 

while (Serial1.available()) {

    char ch = Serial1.read();
    value += String(ch);
    int first = value.indexOf(","); // 첫번째 콤마위치
    int second = value.indexOf(",", first + 1); // 두번째 콤마 위치
    String str1 = value.substring(0, first); // 첫번째 토큰
    String str2 = value.substring(first + 1, second); // 두번째 토큰


    if (str2 == "t") {         //온도값을 보낼시

      if (str1.toInt() < sensor.readTemperature()) {   //지정한 온도값이 센서 온도값보다 높을때
        digitalWrite(relay1, HIGH);           //열선패드 가동

      } else if (str1.toInt() > sensor.readTemperature()) { //지정한 온도값이 센서 온도값보다 낮을때
        digitalWrite(cooler, HIGH);            //팬 가동
      }
      if (str1.toInt() < sensor.readTemperature() - 1 && str1.toInt() > sensor.readTemperature() + 1)) {   오차범위
        digitalWrite(relay1, LOW);
        digitalWrite(cooler, LOW);
      }
      value = "";
    }

    if (str2 == "s") {       //습도값을 보낼시

      if (str1.toInt() > sensor.readHumidity()) {   //지정한 습도값이랑 센서 습도값이랑 높을때
        digitalWrite(relay2, HIGH);       //호스 가동

      } else if (str1.toInt() < sensor.readHumidity()) { //지정한 습도값이랑 센서 습도값보다 낮을떼
        digitalWrite(cooler, HIGH);       //팬 가동

      }
      if (str1.toInt() < sensor.readHumidity() - 1 && str1.toInt() > sensor.readHumidity() + 1) { 오차범위
        digitalWrite(relay2, LOW);
        digitalWrite(cooler, LOW);

      }
      value = "";
    }

 

 

6. 문제점 및 에러 내용

 

제가 블루투스를 통한 자동 온습도 제어를 하고싶은데 현재 블루투스를 통한 통신 및 온습도를 설정해 해당 릴레이를 제어하는것까지는 성공했으나 정해진 온도랑 온습도 센서에서 측정하는 온도가 같아졌을 때 릴레이가 종료되는것을 하고싶은데 이 부분이 해결이 되질않아 질문글 남깁니다... 온습도 센서는 Si702를 사용하고있습니다(==을 사용하는 방식으로는 작동이 되질않아 오차범위를 설정함)

 

 

 

이전글   |    근접센서와 솔레노이드를 이용하여 물건이 떨어지는 장치를 만들고 싶습니다. ... 2019-02-25
다음글   |    아두이노에 연결된 센서 값 정보 전달 2019-02-27