// 라이브러리 포함#include <DHT.h> // 온습도 센서 // 핀번호 매칭#define DHTPIN 8 // 온습도센서(DHT11) 핀번호 // 객체 인스턴스 생성DHT dht(DHTPIN, DHTTYPE); // 온습도센서 인스턴스 생성 // 시간 변수unsigned long now = 0; // 현재 시각unsigned long prevMillis = 0; // 온습도 이전 측정 시각const long DHTinterval = 2000; // 온습도 측정 간격 // 센서값 변수float temperature = 0.; // 온도(dht) 값float humidity = 0.; // 습도(dht) 값
void setup() { dht.begin(); // 온습도 장치 시작 }void loop() { if (isTimeToReadDHT()) getDHT(); // 온도,습도 읽기 (2초 간격으로) } //getDHT 탭을 만들어서 넣으세요. // DHT값 읽을 때가 되었나?boolean isTimeToReadDHT(){ now = millis(); // 현재 시각 if (now - prevMillis >= DHTinterval) return true; else return false;} // DHT값 읽기void getDHT(){ humidity = dht.readHumidity(); // 습도 읽기 temperature = dht.readTemperature(); // 온도 읽기 if (isnan(humidity) || isnan(temperature) ) { // DHT 읽기 오류 검사 sendToApp(String("*E") + "Failed to read from DHT sensor! *"); // 사용자 화면의 메시지 창에 표시 return; } prevMillis = now; // 현재 시각 저장}
※ updataApp 탭을 만들고 다음의 코드를 넣으세요.
// 사용자 앱으로 데이터 전송void sendToApp(String msg) { BTSerial.println(msg); delay(10);}