답변 : 앱인벤터 질문있습니다
페이지 정보
작성자 master 작성일19-11-14 17:45 조회7,899회 댓글0건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2019-11-14 오후 5:44:31
// by Ok-Hyun Park
//
#include
#include
#include
#include
#define DHTPIN A1
#define relay 10
#define relayA 11
#define DHTTYPE DHT22
//
DHT dht(DHTPIN,DHTTYPE);
int TxPin=2;
int RxPin=3;
SoftwareSerial BTSerial(TxPin,RxPin);
//
bool flag=0;
int h,t,gas,gas2;
char crt1,crt2;
int i;
//
void setup(){
Serial.begin(9600);
pinMode(A0,INPUT); pinMode(A2,INPUT);
pinMode(relay,OUTPUT); pinMode(relayA,OUTPUT);
BTSerial.begin(9600);
}
//
void loop(){
h=dht.readHumidity();
t=dht.readTemperature();
gas=analogRead(A0);
gas2=analogRead(A2);
//---------------------------
if(BTSerial.available()){ //블루투스에서 신호가 있으면,
crt1=BTSerial.read();
Serial.write(crt1); //블루투스를 읽어 시리얼 모니터에 출력
if(crt1=='A'){ digitalWrite(relay,HIGH); }
if(crt1=='B'){ digitalWrite(relay,LOW); }
}
if(Serial.available()){ //시리얼 모니터(PC)에서 신호가 있으면,
crt2=Serial.read();
if(crt2=='A'){ digitalWrite(relay,HIGH); }
if(crt2=='B'){ digitalWrite(relay,LOW); }
}
//
if((gas<400)&&(h<60)){
Serial.println(h); Serial.print("% gas="); Serial.println(gas);
BTSerial.write(Serial.read()); //시리얼 모니터 입력 내용을 블루투스에 출력
BTSerial.print("습도: "); BTSerial.print(h); BTSerial.println("%");
BTSerial.print("가스: "); BTSerial.print(gas);
digitalWrite(relay,LOW);
}
else{
digitalWrite(relay,HIGH);
if(h>60){
Serial.println(h); Serial.print("%"); Serial.println(" humidity.WARNING");
BTSerial.print(h); BTSerial.print("%"); BTSerial.print(" 습도 warning ");
delay(10000);
}
if(gas>400){
Serial.print(gas); Serial.println(" gas.WARNING");
BTSerial.print(gas); BTSerial.print(" gas warning ");
delay(15000);
}
}
//
if(gas<400){
if(flag){ flag=0;
Serial.print("perfume");
delay(10000);
digitalWrite(relayA,HIGH);
for(i=0; i<100; i++){ delay(100); }
digitalWrite(relayA,LOW);
}
}
else{ flag=1; }
//
delay(1000);
}
댓글 : 0
조회수 : 7,899
등록된 댓글이 없습니다.