void loop(){
int h = dht.readHumidity();
int t = dht.readTemperature();
int l= analogRead(cds);
Serial.print("DATA,TIME,");
Serial.print(h);
Serial.print(",");
Serial.print(t);
Serial.print(",");
Serial.print(l);
Serial.print(",");
while(BT.available()){
char BTchar = (char)BT.read();
BTstring+=BTchar;
delay(10);
}
if(!BTstring.equals("")){
Serial.print(BTstring);
BTstring="";
}
Serial.println(",");
delay(3000);
이걸로 해결 했습니다. 계속 값이 하나씩 나와가지고 골치 아프다가 덕분에 힌트 얻었습니다.
판다마니아 2019-06-05 19:16:48
블루투스로 데이터 보내는건 센서값이 측정되고 나서 전달되어야 하니 delay 동안 블루투스 사용하지 않아도 괜찮지 않나요?
중간에 delay 있는이유가 아마 온습도 센서 측정 때문에 넣은 것 같은데, delay 중간에 블루투스 연결이 끊기는 거는 아니니 그대로 사용하여도 될 것 같습니다.
참고로 아두이노로 멀티테스킹을 구현할려면 시스템 시간을 이용해서 비슷하게 만들어야 하는거라 매우 어렵습니다. 간단한 동작을 만드시는 거면 멀티테스킹은 사용안하시는걸 추천드립니다.