ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于51单片机的WiFi的温湿度智能开关设计

2021-09-25 09:05:48  阅读:204  来源: 互联网

标签:10 温湿度 WiFi 51 write 单片机 0x30 模块 1602dat


一.硬件方案

硬件电路主要由单片机电路、温湿度采集电路、液晶显示电路、继电器电路、wifi模块电路组成。本设计采用STC89C51单片机完成整个系统的控制流程。手机端软件设置操作界面登陆账号,wifi模块连入网络,实现系统设计。
主要由51单片机+最小系统+LCD1602液晶显示模块+温湿度采集模块+继电器驱动模块+风扇模块+LED指示灯模块+按键模块+AT24C02存储模块+蜂鸣器报警模块;如图:
在这里插入图片描述

二.设计功能

(1)AT24c02芯片掉电存储设置的上下限。
(2)四个按键为设置、加、减、确定,实现了阀值的调节。
(3)LCD1602液晶显示,上面行显示当前的温度和湿度,下面行显示相应的冷、热、干、湿。
(4)配用全数字型温湿度传感器DHT11,温度测量范围0℃–50℃,湿度测量范围20%RH—90%RH,可以满足一般需要。
(5)当超过阀值的时候,有蜂鸣器闪烁报警提示。并有开关可以关闭或打开报警.
(6)当温度或湿度超限后,报警信号灯点亮同时相应的继电器吸合.

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)Protues仿真图如下:
在这里插入图片描述
(3)PCB图
在这里插入图片描述

四.软件设计

主程序源码

void main()
{
	char *str2="AT+CIPSEND=14\r\n";
	unsigned char i;
 
	memset(&RsBuf[1],' ',18);
    Uart_init();
    lcd_init();
	wifi_init();

	while(1)
	{
	  	if(FlagStart==1)
		{ 
		     TR0=0;
             RH();
 			 FlagStart = 0;
			 write_1602com(0x83);						  //指定第一行第三个位置
			 write_1602dat(temperature%100/10+0x30);	  //显示温度的十位
			 write_1602dat(temperature%100%10+0x30);	  //显示温度个位
			 write_1602com(0x8d);						  //选中第一行第十三个位置
			 write_1602dat(humidity%100/10+0x30);		  //显示湿度十位
			 write_1602dat(humidity%100%10+0x30);		  //显示湿度个位
			 SendString("{\"UN\":\"yhdifiot024@163.com\",\"VER\":\"A1.1\",\"ID\":\"234103\",\"MAC\":\"18fe35f1cd4a\",\"TP\":\"");
			 //784551388@qq.com是账号  	234100是ID
	         SendASC(temperature%100/10+0x30);	  //1
	         SendASC(temperature%10+0x30);		//1
	         SendString("\",\"HM\":\"");		   //  8
	         SendASC(humidity%100/10+0x30);	  //1
	         SendASC(humidity%10+0x30);		//1
	         SendString("\",\"SOC\":\"99\",\"RET\":\"1\"}\r\n");	 
			 TR0=1;
			 Timer0_count=0;
			 Timer0_miao=0;
		}
	  
		write_1602com(0xc7);			 //选中第二行第七个位置
		if(LED1)						 //如果LED1等于1
	    write_1602dat('0');				 //显示0
		else							 //LED1不等于1
		write_1602dat('1');				 //显示1
		if(LED2)
	    write_1602dat('0');
		else
		write_1602dat('2');
		if(LED3)
	    write_1602dat('0');
		else
		write_1602dat('3');
		if(LED4)
	    write_1602dat('0');
		else
		write_1602dat('4');

		delay(100);
	}
    
}

如需资料请关注公众号“单片机实例设计”,首页回复“智能开关”获取资料;
在这里插入图片描述

标签:10,温湿度,WiFi,51,write,单片机,0x30,模块,1602dat
来源: https://blog.csdn.net/eletronicfish/article/details/120407038

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有