标题: 基于无线WIFI温湿度检测报警系统 [打印本页]

作者: bbxyliyang    时间: 2023-7-16 16:10
标题: 基于无线WIFI温湿度检测报警系统
一、系统方案
本设计采用STC89C52单片机作为主控制器,液晶1602显示温湿度,按键设置温湿度阀值,实际温湿度低于设置下限或者大于上限,蜂鸣器报警,手机APP显示温湿度,同时APP可以设置温湿度阀值,实现下位机和手机APP的双向通讯。


二、硬件设计
原理图如下:
最终实物图片:
三、单片机软件设计
单片机代码主要是串口初始化、串口中断服务程序。首先是串口初始化:
void Uart_init()
{        
    TMOD=0x20;                        //波特率发生器T1的工作方式为2,自动填装初值               
        EA=1;
        TH1=0xfd;
         TL1=0xfd;
         TR1=1;  
    ET1=0;         
        SM0=0;  
         SM1=1;  
         REN=1;  
        ES=1;
}
贴上51单片机负责串口发送的两个函数:
void mcu_pc(unsigned char x)//串口发送程序 发送单个字节
{
        SBUF=x;
        while(TI==0);
        TI=0;
}
void Send2_Str(char *s)//发送字符串
{
    while (*s)              //Check the end of the string
    {
        mcu_pc(*s++);     //Send current char and increment string ptr
    }
}
在串口中断中处理接收到的数据:
void Usart() interrupt 4
{
        if(RI==1)
        {
        receiveData=SBUF;//出去接收到的数据
        RI = 0;//清除接收中断标志位
        }
}
WIFI模块初始化
Send2_Str("AT+CWMODE=2\r\n");//选择AP模式
        delay(1000);
        Send2_Str("AT+RST\r\n");//复位
        delay(1000);
        Send2_Str("AT+CWSAP=\"APP\",\"12345678\",11,3\r\n");//模块创建热点        
        delay(1000);

        Send2_Str("AT+CIPMUX=1\r\n");//开启多连接
        delay(1000);
        Send2_Str("AT+CIPSERVER=1,5000\r\n");//开启TCP服务,设置端口号
        delay(1000);
        Send2_Str("AT+CIPSTO=0\r\n");//永远不超时
        delay(1000);

四、App软件设计
APP界面比较简单,操作之前打开手机WIFI,连接上下位机创建的热点APP,密码12345678,连接成功之后,点击手机APP上面连接,手机界面会显示连接成功,之后手机APP和下位机就可以实现数据的交换,放上一个手机APP的截图:


作者: yyzf998    时间: 2023-7-19 10:41
上传整套完整的代码 ,我奖励你50黑币.谢谢!
作者: real8799190    时间: 2023-7-20 11:41
发出代码和电路图,,大家学习学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1