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

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

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

相关推荐
阿森_dev9 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
爱编程的小白L9 小时前
2027 计算机毕业设计选题汇总|深度学习专项(2027最新)
人工智能·深度学习·课程设计
计算机毕业设计杰瑞9 小时前
【计算机毕设精品】基于SpringBoot的一体化教务与学业质量管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目
java·spring boot·课程设计
硅基手札9 小时前
【串口技术系列文档 10】低功耗与唤醒机制
驱动开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
专业程序开发源10 小时前
flask家电故障预测系统92491-计算机课程设计/毕业设计
vscode·python·sql·算法·flask·课程设计
yuehuaxin0110 小时前
上海贝岭 BL6523GX(D78) 单相计量芯片开发笔记:引脚定义、寄存器配置与校表流程
嵌入式硬件·智能家居·适配器模式·智能硬件
Kuakewei88810 小时前
可调OVP/OCP USB限流保护芯片IC的50μs过流响应测试
嵌入式硬件
HRTOS11 小时前
HRTOS 官网内容调整记录:首页、系统架构与文档页面优化
单片机·系统架构·51单片机
雨田言炎11 小时前
STM32之SysTick--系统定时器(内容简单但重要,附件有程序源码)
stm32·单片机·嵌入式硬件
计算机毕业编程指导师11 小时前
【计算机大数据毕业设计选题】基于Hadoop+Spark的人工智能社交媒体情绪数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·人工智能·hadoop·计算机·毕业设计·课程设计·社交媒体