本设计由STC89C52单片机电路+DHT11温湿度传感器电路+蓝牙模块电路+LCD1602液晶显示电路+蜂鸣器报警电路+甲烷检测电路+AD_PCF8591转换电路+风扇电路+电源电路。
1、LCD1602液晶实时显示甲烷浓度、温度及湿度。
2、当甲烷浓度或温度或湿度大于设定值(具体设定值可自行调节)时,蜂鸣器报警,
否则蜂鸣器不报警。
3、通过蓝牙模块将甲烷浓度、温度及湿度发送至手机APP。
4、可以通过手机APP控制风扇的启动和停止。
资料下载地址
https://pan.baidu.com/s/1PBbBhOFCJJ7SDldzok4biA?pwd=8888
部分代码
void Init_Timer0(void); //函数声明
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);
void main (void)
{
unsigned char midvolt;
Init_Timer0(); //定时器0初始化
UART_Init();
LCD_Init(); //初始化液晶
DelayMs(20); //延时有助于稳定
LCD_Clear();
while (1) //主循环
{
if(read_dht21==1)
{
read_dht21=0;
ET0 =0; //关闭定时器中断
RH(); //读取模块数据周期不易小于 2S
ET0 =1; //开定时器中断
uartSendStr(dis0,16); //发送
uartSendStr("\r\n",2); //发送
uartSendStr("t-25 h-85 nd-35 \r\n",18); //发送
}
midvolt=ReadADC(0); //ad转换采集
}
}
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=(65536-20000)/256; //重新赋值 20ms
TL0=(65536-20000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}