BASIC4MCU | 질문게시판 | 아두이노 앱인벤터 습도값을 측정하여 팬모터를 구동중입니다!
페이지 정보
작성자 푸링이 작성일2019-05-29 00:04 조회3,558회 댓글0건본문
#include <SoftwareSerial.h>
SoftwareSerial btSerial(2, 3); // 소프트웨어 시리얼 객체이름을 btSerial로 지정
#include <DHT.h>
#define DHTPIN 4 // DHT센서를 4번 핀에 연결
#define DHTTYPE DHT11
DHT dht(DHTPIN,DHTTYPE);
//
int fan = 8;
boolean states=false;
char val;
//
void setup(){
Serial.begin(9600);
btSerial.begin(9600);
pinMode(fan,OUTPUT);
Serial.println("DHTxx test!");
dht.begin();
}
//
void loop(){
delay(2000);
float h=dht.readHumidity(); // 온도를 섭씨로 읽습니다
float t=dht.readTemperature(); // 온도를 화씨로 읽습니다
float f=dht.readTemperature(true); // 화씨 온도를 측정합니다.
// 온습도 센서값 읽기에 실패하였을 경우 메시지를 표시합니다
if(isnan(h)||isnan(t)||isnan(f)){
Serial.println("Failed to read from DHT sensor!");
return;
}
float hic=dht.computeHeatIndex(t,h,false);
float hif=dht.computeHeatIndex(f,h);
// 온도를 아래와 같이 표기합니다
Serial.print("습도: "); Serial.print(h); Serial.print(" % ");
Serial.print("온도: "); Serial.print(t); Serial.print(" 도 ");
Serial.print("\r\n");
if(h>=50){ // 습도가 50이상일 경우, 실행
states=false;
}
else if(h<50) { // 50미만일 경우, 실행
states=true;
}
digitalWrite(8, states);
delay(1000);
if(btSerial.available()){
val = btSerial.read();
if (val == 'a')
{
states = false;
}
if (val == 'b')
{
states = true;
}
}
}
[ states = false; 부분에, digitalWrite(fan, HIGH); 넣어도 돌아가지 않더라구요,..]현재 습도가 50이상 올라갈경우, 팬모터가 돌아가고 50 미만이면 안돌아가게까지는 동작을 하는데,이제 제가 앱인벤터와 연동하기 위해 'a'를 앱인벤터에서 아두이노로 던져주면 그에 상응하는 동작을 만들려고 합니다. 마찬가지로 'b'일 경우, 동작을 멈추고요.그런데 코드가 문제인지, 아직 습도에따라 돌아가기만 하네요.코드를 구분을 해줘야하는건지, 아직 비정확한 코드를 작성한건지 궁금합니다.항상 답변 감사합니다.
댓글 0
조회수 3,558등록된 댓글이 없습니다.