U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ 14, /* data=*/ 12, /* reset=*/ U8X8_PIN_NONE);
#define MQ2A0 A0 //mq2传感器模拟量引脚
#define MQ2D0 11 ////mq2传感器数字量引脚
int led = 2; //板载LED灯
int buzzer = 5; //蜂鸣器
int fire=9; //火焰传感器接口
int mq135d0=4;
int mq135A0=12;
DHT dht(DHTPIN, DHTTYPE);
void setup(void) {
Serial.begin(9600); //串口 波特率。
pinMode(led, OUTPUT);
pinMode(MQ2A0, INPUT);
pinMode(MQ2D0, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(DHTPIN, INPUT);
pinMode(fire,INPUT);
dht.begin();
u8g2.begin();
u8g2.enableUTF8Print(); // enable UTF8 support for the Arduino print() function
Serial.println("begin");
}
void alarm() { //蜂鸣器响,板上的LED灯会亮。报警。
for (int i = 0; i < 5; i++)
{
digitalWrite(buzzer, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(300);
digitalWrite(buzzer, LOW);
delay(200);
digitalWrite(led, HIGH);
delay(300);
Serial.println("alarm");
}
;
}
void loop(void) {
float h=dht.readHumidity(); //湿度
float t=dht.readTemperature(); //温度
if (digitalRead(MQ2D0) == LOW||t>50||h<20||analogRead(fire)<100||analogRead(mq135A0)>180) { //极限报警设定条件
alarm();
}
Serial.println("LOOP");
u8g2.setFont(u8g2_font_wqy14_t_gb2312a); //汉字支持
// u8g2.setFont(u8g2_font_unifont_t_chinese2); // use chinese2 for all the glyphs of "你好世界"
//u8g2.setFont(u8g2_font_b10_t_japanese1); // all the glyphs of "こんにちは世界" are already included in japanese1: Lerning Level 1-6
u8g2.setFontDirection(0);
u8g2.firstPage(); //OLED 屏幕显示
do {
u8g2.setCursor(0, 15);
u8g2.print("MQ2:" + String(analogRead(MQ2A0)) + " DO:"); //mq2 气体采集值显示 ,报警显示。
u8g2.setCursor(75 , 15);
if (digitalRead(MQ2D0) == HIGH) {
u8g2.print("高限报警");
}
else {
u8g2.print("正常");
}
u8g2.setCursor(0, 30); //温湿度显示,报警显示。
u8g2.print("湿度:"+String(h)+" 温度:"+String(t)); // Chinese "Hello World"
u8g2.setCursor(70,30);
if(t>50){
u8g2.print("温度超");}
u8g2.setCursor(70,30);
if(h<20){
u8g2.print("湿度低");}
u8g2.setCursor(0, 45); //温湿度显示,报警显示。
u8g2.print("火焰:"+String(analogRead(fire)));
u8g2.setCursor(0, 60); //温湿度显示,报警显示。
u8g2.print("mq135A0:"+String(analogRead(mq135A0)));
} while ( u8g2.nextPage() );
delay(1000);
}
|