基于单片机的智能家居系统设计(电路+代码)

博主福利:100G+电子设计学习资源包!

http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect
--------------------------------------------------------------------------------------------------------------------------

 

一、开发环境/工具:

 

环境:keil4

器件:STC89C52RC、Wifi模块(ESP8266)、DHT11温湿度传感器、声音传感器,雨水传感器、LCD1602

 

二、项目描述: 

 

1、 使用DHT11采集当前环境温度、湿度信息,监测敲门、监测室外天气;

2、 通过无线通信ESP8266模块发送到服务器,服务器连接局域网;

3、 手机可以通过访问局域网来访问家中的数据信息;

 

三、硬件模块描述:

 

图1 原理图

 

绘制系统板以最小系统板为原型,内外机功能实现不同,雨水传感器需要外接,所以绘制了最小系统板外界扩展传感器,外机由于天气变化无法预见,不装配LCD屏幕,以免损坏;

 

          图2 PCB图

 

四、具体功能及实现:

 

用户可随时在局域网中获取室内室外的温度、湿度等信息,有人敲门时、室外下雨时会实时收到提醒。

功能实现:

内机主函数:

 

 

外机主函数:

 

 

ESP8266模块初始化函数:

 

 

将一系列的AT指令按照芯片手册要求通过串口发送到ESP8266模块后开启透传模式;

 

DHT11模块原理:

 

 

DHT11模块函数:

 

 

获得的温度湿度存放在全局数组RHS和TEM中;

 

五、功能展示:

 

硬件连接:

 

 

手机端联网后,打开Netassist软件,开启TCP server模式,设置端口号8080,端口号可以自行设置,最好大于两千,选择GBK编码方便中文显示;

 

 

Client端上电连接后,server端会收到操作提示信息;

开机上电后LCD显示启动画面和欢迎界面,此时后台给WiFi模块ESP8266发送AT指令,连接到路由器,连接到服务器并开启透传模式,透传模式下,服务器与WiFi模块的通信可以直接通过串口传输;

 

 

如图所示是,有LCD显示的为内机,有雨水传感器的为外机,启动时后台需要10秒左右的时间初始化各个模块,并开启WiFi模块的透传模式。

初始化接收后,内机lcd显示室内温湿度,此时初始化结束,系统稳定运行。

 

 

配置相应的外部中断检测声音传感器的敲门动作,主函数循环检测雨水传感器检测是否下雨,检测到之后均通过串口发送相应的信息给ESP8266,然后通过无线模块发送给单片机;

 

 

DHT11传感器通过IO口传输数据到单片机,当服务器端发送对应命令的时候,主机通过已经开启透传模式的ESP8266接收到数据,通过串口传输给主机,主机经过判断命令返回相应的:室内温度,室内湿度,室外温度,室外湿度给服务器。


--------------------- 
作者:Henchyoung 
来源:CSDN 
原文:https://blog.csdn.net/qq_39540224/article/details/81664243 
版权声明:本文为博主原创文章,转载请附上博文链接!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部