-----------------------------------
#include <DHT11.h> //라이브러리 불러옴
//#include <SoftwareSerial.h>
int blueTx=3;
int blueRx=5;
//SoftwareSerial mySerial(blueRx,blueTx);
int pin=2;
DHT11 dht11(pin);
int RT=9;
int GT=10;
int BT=11;
int Buzzer=6;
int button=4;
int temp=0;
int dustpin = 8;
unsigned long duration;
unsigned long starttime;
unsigned long sampletime_ms = 30000;//sampe 30s ;
unsigned long lowpulseoccupancy = 0;
int siren=0;
float pcsPerCF = 0;
float ugm3 = 0;
float dustnum=0;
float ratio = 0;
float concentration = 0;
void setup()
{
Serial.begin(9600);
Serial.println("I'm Dr.Kim from Yonsei hospital, I guarantee that he is an asthma patient");
//mySerial.begin(9600);
pinMode(RT,OUTPUT);
pinMode(GT,OUTPUT);
pinMode(BT,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(button,INPUT);
pinMode(8, INPUT);
}
void loop()
{ temp=0;
//if(mySerial.available())
//Serial.write(mySerial.read());
//if(Serial.available())
//mySerial.write(Serial.read());
duration = pulseIn(dustpin, LOW);
lowpulseoccupancy = lowpulseoccupancy + duration;
if ((millis() - starttime) > sampletime_ms) //if the sampel time == 30s
{
ratio = lowpulseoccupancy / (sampletime_ms * 10.0); // Integer percentage 0=>100
concentration = 1.1 * pow(ratio, 3) - 3.8 * pow(ratio, 2) + 520 * ratio + 0.62; // using spec sheet curve
pcsPerCF = concentration * 100;
ugm3 = pcsPerCF / 13000;
dustnum=(ugm3*3528)/1000;
//Serial.print(" ");
// Serial.print(dustnum);
// Serial.print("ug/m3");
// Serial.println();
lowpulseoccupancy = 0;
}
int err;
float temp, humi;
if((err=dht11.read(humi, temp))==0) //온도, 습도 읽어와서 표시
{
// Serial.print("temperature:");
// Serial.print(temp);
// Serial.print(" humidity:");
// Serial.print(humi);
// Serial.println();
}
else //에러일 경우 처리
{
// Serial.println();
Serial.print("Error No :");
Serial.print(err);
Serial.println();
}
delay(1000); //1초마다 측정
analogWrite(RT,255);
analogWrite(GT,255);
analogWrite(BT,255);
unsigned int val;
unsigned int dat;
val=analogRead(0);
dat=(500 * val) /1024;
// Serial.print("Temp: ");
// Serial.print(dat-4);
// Serial.println(" C");
if(humi>52)
{
analogWrite(RT,30);
analogWrite(GT,255);
analogWrite(BT,0);
tone(Buzzer,100);
delay(2000);
noTone(6);
}
if(humi>56)
{
analogWrite(RT,255);
analogWrite(GT,255);
analogWrite(BT,0);
tone(Buzzer,200);
delay(2000);
noTone(6);
}
if(digitalRead(button)==0)
{
analogWrite(RT,0);
analogWrite(GT,0);
analogWrite(BT,255);
temp++;
tone(Buzzer,1050);
delay(850);
tone(Buzzer,900);
delay(850);
tone(Buzzer,1050);
delay(850);
tone(Buzzer,900);
delay(850);
noTone(6);
}
if(temp==24)
{
//tone(Buzzer,500);
delay(100);
noTone(6);
}
delay(1500);
Serial.println("I'm Dr.Kim from Yonsei hospital, I guarantee that he is an asthma patient");
}
---------------------------
bluetooth HC-06
humidity , temperature sensor ..
buzzer RGB .
댓글 없음:
댓글 쓰기