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

一、开发环境/工具:

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

 

  

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_39540224/article/details/81664243