基于STC89C52单片机的智能家居系统

2019-04-15 19:13发布

一、开发环境/工具: 环境: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接收到数据,通过串口传输给主机,主机经过判断命令返回相应的:室内温度,室内湿度,室外温度,室外湿度给服务器。