基于单片机与WiFi通信的教室人数与照明上位机监控系统设计

1. 系统总体设计

点击链接下载protues仿真设计资料:https://download.csdn.net/download/m0_51061483/91964733

1.1 设计背景

随着智慧校园与物联网技术的发展,教学楼的能源管理逐渐向智能化方向转型。传统教室照明通常采用人工控制方式,存在"人走灯不关""白天开灯"等浪费现象。同时,教室人数统计通常依赖人工或简单设备,缺乏实时性与数据化分析能力。

基于单片机与WiFi通信的教室人数与照明上位机监控系统,通过融合光照检测、人数检测、无线通信与上位机管理技术,实现教室照明的智能控制与集中管理。系统不仅能够根据环境光照和人数自动调节灯光,还支持远程控制与数据监控,从而提升能源利用效率与管理水平。


1.2 系统功能设计

本系统主要实现以下功能:

  1. 光照度检测功能:实时采集教室环境亮度;
  2. 人数检测功能:实现教室人数统计;
  3. 自动照明控制功能:根据光照与人数自动控制灯具;
  4. 手动控制功能:支持按键本地控制;
  5. 上位机监控功能:显示教室编号、人数及灯光状态;
  6. 远程控制功能:支持对单个或多个教室进行灯光控制;
  7. WiFi通信功能:实现上下位机双向数据传输;
  8. 节能管理功能:根据实际需求动态控制照明;
  9. 系统具备良好的扩展性与稳定性。

2. 系统电路设计

2.1 单片机最小系统电路设计

系统采用STC89C52单片机作为下位机控制核心。

最小系统包括:

  1. 晶振电路:提供稳定时钟信号;
  2. 复位电路:实现系统上电初始化;
  3. 电源电路:提供稳定5V供电。

2.2 光照度检测电路设计

系统采用光敏电阻实现光照检测。

设计方案:

  1. 光敏电阻与固定电阻构成分压电路;
  2. 输出模拟电压信号;
  3. 电压随光照强度变化;
  4. 提供自动控制依据。

2.3 A/D转换电路设计

由于光敏电阻输出为模拟信号,需要进行数字转换。

设计方法:

  1. 采用ADC0809进行A/D转换;
  2. 将模拟信号转换为数字量;
  3. 单片机读取数据;
  4. 实现光照强度采集。

2.4 人数检测电路设计

人数检测可采用红外对射或人体感应方式。

设计方案:

  1. 红外对射检测进出人数;
  2. 通过计数方式统计人数;
  3. 输出数字信号;
  4. 单片机进行处理与累加。

2.5 照明控制电路设计

照明控制采用继电器驱动。

设计要点:

  1. 单片机输出控制信号;
  2. 三极管驱动继电器;
  3. 控制不同区域灯具;
  4. 支持分区控制。

2.6 按键控制电路设计

系统设置按键用于本地控制:

  1. 总开关;
  2. 分区控制;
  3. 模式切换。

设计要点:

  • 上拉电阻;
  • 软件消抖;
  • IO口读取。

2.7 WiFi通信电路设计

系统采用ESP8266模块实现无线通信。

设计特点:

  1. 串口通信接口;
  2. 支持TCP/IP协议;
  3. 实现数据上传与控制指令接收;
  4. 支持远程监控。

2.8 上位机接口设计

上位机通过串口或网络接收数据。

实现功能:

  1. 显示教室编号;
  2. 显示人数;
  3. 显示灯光状态;
  4. 发送控制指令。

2.9 电源与抗干扰设计

设计要点:

  1. 稳压电源提供稳定电压;
  2. 加入滤波电容;
  3. 模拟与数字电路分离;
  4. 提高系统抗干扰能力。

3. 系统程序设计

3.1 程序总体结构设计

系统采用模块化设计,包括采集模块、控制模块、通信模块及显示模块。

主程序如下:

c 复制代码
void main()
{
    System_Init();
    while(1)
    {
        Light_Read();
        People_Count();
        Control_Process();
        Key_Scan();
        WIFI_Send();
        WIFI_Receive();
    }
}

3.2 光照采集程序设计

c 复制代码
unsigned char Light_Read()
{
    unsigned char value;
    value = ADC_Read(0);
    return value;
}

实现光照强度采集。


3.3 人数统计程序设计

c 复制代码
void People_Count()
{
    if(IR_IN == 1)
        people++;
    if(IR_OUT == 1 && people > 0)
        people--;
}

实现人数统计。


3.4 自动控制程序设计

c 复制代码
void Control_Process()
{
    if(people > 0)
    {
        if(light < 50)
            LIGHT_ON();
        else
            LIGHT_OFF();
    }
    else
    {
        LIGHT_OFF();
    }
}

实现自动照明控制。


3.5 按键控制程序设计

c 复制代码
void Key_Scan()
{
    if(KEY_ON == 0)
        LIGHT_ON();
    if(KEY_OFF == 0)
        LIGHT_OFF();
}

实现手动控制。


3.6 WiFi发送程序设计

c 复制代码
void WIFI_Send()
{
    printf("ID=1,People=%d,Light=%d\n",people,light_state);
}

上传数据。


3.7 WiFi接收程序设计

c 复制代码
void WIFI_Receive()
{
    if(RI)
    {
        RI = 0;
        cmd = SBUF;
        if(cmd == '1')
            LIGHT_ON();
        if(cmd == '0')
            LIGHT_OFF();
    }
}

接收控制指令。


3.8 分区控制程序设计

c 复制代码
void Zone_Control()
{
    if(people > 20)
        ZONE_ALL_ON();
    else if(people > 10)
        ZONE_HALF_ON();
    else
        ZONE_MIN_ON();
}

实现分区控制。


3.9 系统初始化程序设计

c 复制代码
void System_Init()
{
    ADC_Init();
    WIFI_Init();
    Key_Init();
    Relay_Init();
}

完成系统初始化。


4. 系统总结

本系统基于单片机与WiFi通信技术,实现了教室人数检测与照明控制的智能化管理,通过光照检测与人数统计,实现灯光的自动调节,并结合上位机实现集中监控与远程控制。

在电路设计方面,各模块分工明确,系统结构合理;在程序设计方面,采用模块化与事件驱动相结合,使系统运行高效稳定。

系统具有显著的节能效果和良好的扩展性,可广泛应用于智慧校园及智能楼宇管理领域。

相关推荐
wuyk5553 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
小僧景贤7 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网
2601_9538246110 小时前
【计算机毕业设计】基于 Java 的宠物援助平台的设计与实现
课程设计·宠物
2401_8275012811 小时前
【无标题】
arm开发·嵌入式硬件
LeoZY_11 小时前
LinkScope 使用笔记:基于 OpenOCD 的通用硬件芯片调试助手
笔记·单片机·嵌入式硬件·开源软件
2601_9638701812 小时前
【计算机毕业设计】高校图书管理系统设计与实现
课程设计
2601_9638702113 小时前
【计算机毕业设计】基于Hadoop的高校校园能耗数据分析与可视化系统
课程设计
星空真迷人13 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
iCxhust13 小时前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
hongmai66688813 小时前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v