基于51单片机WIFI智能家居系统设计

1. 系统功能介绍

本设计以STC89C51/52单片机作为核心控制器,结合ESP8266 WiFi模块,实现了智能家居环境下的远程监控与控制功能。用户可以通过手机向系统发送特定的指令,对家中电器进行远程操作,如控制电灯、风扇或空调的开关。同时,系统集成了DHT11温湿度传感器与LCD1602液晶显示屏,可以实现温湿度的实时采集与显示,并将数据通过WiFi实时传输至手机端。此外,系统具备按键设定报警值与数据存储功能,当环境参数超出设定范围时,会触发声光报警,从而有效提升智能家居的自动化与安全性。

系统主要功能如下:

  1. 远程控制家电:通过WiFi模块ESP8266,用户可在手机端发送控制指令,完成对家电的开关操作。
  2. 实时监测环境:利用DHT11传感器实时采集温湿度数据,并在LCD1602上显示,同时通过WiFi上传。
  3. 继电器控制:两路继电器接口可控制多种家电设备,带有工作指示灯,操作直观。
  4. 阈值设定与报警:通过按键设置温湿度报警阈值并存储在AT24C02存储器中,当超过设定阈值时,系统会启动声光报警。
  5. 手机指令交互:支持多种远程指令,包括打开/关闭继电器、获取实时温湿度数据等。

2. 系统电路设计

系统硬件电路由核心控制单元、通信单元、传感器单元、显示单元、存储单元、继电器执行单元及报警单元等部分组成,各模块功能如下:

2.1 单片机核心控制电路

单片机选用STC89C51/52系列,该芯片为51架构,具备稳定性高、资源丰富、开发成熟的特点。其主要功能是:

  • 接收来自WiFi模块ESP8266的数据指令;
  • 处理温湿度传感器的数据采集;
  • 通过IO口控制继电器的吸合与释放;
  • 驱动LCD1602进行数据显示;
  • 管理AT24C02存储器的数据读写。

2.2 WiFi通信电路(ESP8266模块)

ESP8266模块负责系统与手机端的无线通信。默认连接的WiFi信息为:

  • WiFi账号:DuoDuoXueZhang
  • WiFi密码:123456789

ESP8266与单片机通过串口进行通信,用户可通过手机发送如下指令:

  • 打开继电器1 :DKJDQ1
  • 关闭继电器1 :GBJDQ1
  • 打开继电器2 :DKJDQ2
  • 关闭继电器2 :GBJDQ2
  • 获取温湿度数据 :HQSJ

系统解析指令后执行相应操作,并反馈结果。

2.3 温湿度传感器电路(DHT11)

DHT11传感器负责环境温湿度数据的采集。该传感器通过单总线与单片机连接,传输协议简单,但需精确的时序控制。其特点包括:

  • 温度测量范围:0~50℃
  • 湿度测量范围:20%~90%RH
  • 输出为数字信号,便于单片机处理

2.4 显示电路(LCD1602)

LCD1602液晶显示屏用于实时显示系统采集到的温湿度数据。显示内容包括:

  • 当前环境温度与湿度;
  • 继电器状态(开/关);
  • 报警提示信息。

显示驱动采用4位并行模式,既节省IO口资源,又保证显示稳定性。

2.5 存储电路(AT24C02)

AT24C02是一种EEPROM存储芯片,通过I2C总线与单片机通信。其主要作用为:

  • 存储用户设定的温湿度报警阈值;
  • 在掉电情况下保留设定值;
  • 系统启动时自动加载阈值参数。

2.6 继电器控制电路

系统设计了两路继电器控制电路,可分别接入电灯、风扇、空调等家电设备。继电器带有指示灯,便于观察工作状态。单片机通过IO口控制继电器驱动三极管,从而实现对家电的通断控制。

2.7 按键输入电路

按键用于用户设定温湿度报警阈值。系统通过程序对按键进行消抖处理,确保输入稳定可靠。设定好的阈值将被存储到AT24C02中。

2.8 声光报警电路

当环境参数超过设定阈值时,系统通过蜂鸣器与LED灯实现声光报警功能。报警功能既可提醒用户,也可作为远程通知的辅助功能。


3. 系统程序设计

程序设计是整个系统实现功能的关键环节,主要包括单片机主控程序、WiFi通信处理、温湿度采集、LCD显示驱动、EEPROM数据读写、继电器控制及报警处理等部分。

3.1 主程序设计

主程序负责系统初始化和循环控制。初始化部分包括串口、I2C总线、LCD显示、按键及中断的配置。主循环则实时执行数据采集、显示更新、指令解析等操作。

#include <reg52.h>
#include "dht11.h"
#include "lcd1602.h"
#include "esp8266.h"
#include "at24c02.h"
#include "relay.h"
#include "alarm.h"

void main() {
    System_Init();  // 系统初始化
    while(1) {
        DHT11_ReadData();   // 读取温湿度
        LCD1602_Display();  // 显示数据
        ESP8266_Receive();  // 接收WiFi指令
        Relay_Control();    // 控制继电器
        Alarm_Check();      // 检查报警
    }
}

3.2 WiFi通信程序

ESP8266通过串口与单片机通信。程序负责解析接收到的指令,并调用相应的功能函数。

void ESP8266_Receive() {
    if(UART_ReceiveFlag) {
        UART_ReceiveFlag = 0;
        if(strcmp(rxBuffer, "DKJDQ1") == 0) Relay1_On();
        else if(strcmp(rxBuffer, "GBJDQ1") == 0) Relay1_Off();
        else if(strcmp(rxBuffer, "DKJDQ2") == 0) Relay2_On();
        else if(strcmp(rxBuffer, "GBJDQ2") == 0) Relay2_Off();
        else if(strcmp(rxBuffer, "HQSJ") == 0) Send_Temp_Humi();
    }
}

3.3 温湿度采集程序

DHT11需要严格的时序控制来读取数据,程序通过延时函数与位操作来实现通信协议。

void DHT11_ReadData() {
    uchar temp, humi;
    if(DHT11_Read(&temp, &humi)) {
        temperature = temp;
        humidity = humi;
    }
}

3.4 LCD显示程序

LCD1602显示温湿度与继电器状态。

void LCD1602_Display() {
    LCD_SetCursor(0,0);
    LCD_Print("T:");
    LCD_PrintInt(temperature);
    LCD_Print(" H:");
    LCD_PrintInt(humidity);

    LCD_SetCursor(1,0);
    LCD_Print("R1:");
    LCD_Print(relay1_state ? "ON " : "OFF");
    LCD_Print(" R2:");
    LCD_Print(relay2_state ? "ON " : "OFF");
}

3.5 EEPROM存储程序

用于存储用户设定的报警阈值。

void Save_Threshold(uchar t, uchar h) {
    I2C_Write(0x00, t);
    I2C_Write(0x01, h);
}

void Load_Threshold() {
    temp_threshold = I2C_Read(0x00);
    humi_threshold = I2C_Read(0x01);
}

3.6 继电器控制程序

void Relay_Control() {
    if(temperature > temp_threshold || humidity > humi_threshold) {
        Alarm_On();
    } else {
        Alarm_Off();
    }
}

3.7 报警处理程序

void Alarm_Check() {
    if(temperature > temp_threshold || humidity > humi_threshold) {
        Buzzer_On();
        LED_On();
    } else {
        Buzzer_Off();
        LED_Off();
    }
}

4. 总结

本设计实现了基于STC89C51/52单片机的WiFi智能家居系统,涵盖了远程控制、实时监测、数据存储与报警等功能。通过ESP8266模块,用户可以在手机端灵活地操作家中电器,并随时获取环境数据。DHT11与LCD1602的结合实现了本地可视化显示,AT24C02则保证了用户设定参数的持久保存。继电器与报警电路增强了系统的实用性与安全性。本系统不仅在家庭自动化场景中具有广泛应用价值,同时也为智能家居系统的进一步扩展与研究提供了参考与基础。

Logo

更多推荐