15单片机通过WIFI模块ESP8266实现手机远程监控可燃气体浓度
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一,系统方案
1、方案描述
当烟雾报警系统处于正常环境中,系统会主动向手机终端发送实时温度,和当前环境中的可燃气体数值。当烟雾报警系统处于达到可燃气体检测设定值时或当温度达到预设定值时,单片机控制端会自动启动继电器进行断气和开窗指令,并且通过互联网向手机终端发送报警,提醒人们采取相应的指示。
2、原理框图3、设计好的实物图
4、设计系统原理图
二、系统软件设计
1、单片机软件设计
系统采用15单片机(51内核高速单片机内置8通道10位高速ADC,速度可达30万次/秒)
主函数展示:
main()
{
LCD1602_Init(); //初始化LCD
WriteString(0,0,"TEMP: ");//LCD中写入 TEMP:
WriteString(12,0,"C"); //LCD中写入 C
WriteString(0,1,"KAD:");//LCD中写入KAD
WriteString(10,1,"M%");//LCD中写入PPM
ADC_P11_init();//初始化ADC
esp8266_init(); //初始化ESP8266
delay1ms(); //一毫秒延时
while(1)
{
Process_receiveData(); //处理接收数据,并控制继电器操作
LcdDisplayDS18B20(Ds18b20ReadTemp());//LCD显示ds18b20数据
LcdDisplayADC(ADData); //LCD显示AD采集MQ-2数据
ESP8266_Set("AT+CIPSEND=0,18"); //向esp8266发送传输18字节数据请求
Delay100ms() ;
Temp_data(Ds18b20ReadTemp()); //获取ds18b20温度传感器数据
ESP8266_ArraySends(ds18b20Wd_buf,8); //发送ds18b20温度数组
Delay100ms() ;
ADC_data(ADData); //获取AD采集 数据
ESP8266_ArraySends( ADC_datas_buf,6); //发送AD采集数组
Delay100ms() ;
//AlertLogic(); 处理接受设置上限值
//ESP8266_ArraySends(AlertLogic_buf,3);返回上限数据结果
ESP8266_ArraySends(Recive_table,4);//返回接收数据
Delay100ms() ;
ControlLogic();
}
}
串口初始化以及ESP8266初始化函数:
/*********************************************************************