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

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

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

相关推荐
森利威尔电子-2 小时前
森利威尔 SL3160A 降压型 DC - DC 转换器:10V - 150V 宽输入,稳出 5V/2.5A
单片机·嵌入式硬件·集成电路·芯片·电源芯片
路过&2 小时前
自制了一款字体点阵生成器
单片机·ui
qq_401700413 小时前
STM32F103片内Flash 存储器操作(FLASH页划分)
stm32·单片机
Topplyz3 小时前
DC-DC的自举电容工作原理
嵌入式硬件·硬件工程·电容·电源
ytttr8733 小时前
四线制步进电机驱动器设计详解
单片机·嵌入式硬件
独小乐3 小时前
013.定时器之系统Tick实现|千篇笔记实现嵌入式全栈/裸机篇
linux·笔记·单片机·嵌入式硬件·arm
三佛科技-134163842123 小时前
无线遥控器开关方案开发 ,无线遥控器开关MCU控制方案设计-基于国产单片机
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
北城笑笑3 小时前
FPGA 与 市场主流芯片分类详解:SoC/CPU/GPU/DPU 等芯片核心特性与工程应用
前端·单片机·fpga开发·fpga
Heartache boy3 小时前
DWT基础应用与获取程序运行时间Debug练习(上)
笔记·stm32·单片机