基于STM32+ESP32-CAM的智慧课堂学生行为检测系统设计(实时视频采集+MQTT上云+多终端远程监控)

一节课四十五分钟,讲台下的学生谁在专注听讲、谁在低头走神、谁趴桌打瞌睡,老师很难一一顾及;而在远程教育或多教室协同场景下,课堂状态更是完全"盲区"。本文设计一套智慧课堂学生行为检测系统:以 STM32F103C8T6 为主控核心,ESP32-CAM 完成课堂实时视频采集,通过轻量级 MQTT 协议将视频流上传至 EMQX 云端服务器,教师与管理者通过生成的访问链接即可在手机、电脑等多终端实时观看课堂画面,为教学策略调整、专注度分析与课堂管理优化提供第一手数据支撑。

一、系统功能总览

功能模块实现方式作用
核心控制与数据管理STM32F103C8T6系统调度、通信接口管理、数据链路维护
实时视频采集ESP32-CAM(OV2640,2MP)捕获学生课堂行为视频流,JPEG 硬件压缩适配低带宽传输
无线通信ESP32-CAM 板载 WiFi(MQTT 协议)视频流数据上传 EMQX 云端服务器
云端服务EMQX 消息代理(Broker)发布/订阅模式解耦设备与访问端,支持 QoS 0/1/2 三级服务质量
远程监控生成访问链接,多终端实时观看手机/电脑跨平台远程查看课堂画面,满足多教室协同场景
指示与控制指示灯、摄像头开关指令连接状态提示、远程开启/关闭摄像头与 LED

系统整体链路为:ESP32-CAM 采集视频 → STM32 经 UART 获取并管理数据 → MQTT 协议经 WiFi 上传 EMQX 服务器 → 用户端经链接订阅视频流实时观看。软硬件协同设计保证了长时间课堂运行的稳定性与低资源消耗。

二、核心模块选型对比

2.1 主控模块选型

方案芯片特点
方案1STM32F103C8T6ARM Cortex-M3,72MHz 主频,64KB Flash / 20KB SRAM,37 个 GPIO,低功耗,开发工具与社区支持广泛
方案2NXP LPC1768同为 Cortex-M3,120MHz 主频,512KB Flash / 64KB SRAM,70 个 GPIO,性能更强但功耗更高

系统核心控制任务为通信接口配置与数据管理,对算力要求不高,可靠性与低功耗优先。选择方案1:STM32F103C8T6。

2.2 摄像头模块选型

方案模块特点
方案1ESP32-CAM集成 ESP32 芯片 + 2MP OV2640 摄像头,板载 WiFi/蓝牙,集成度高、成本低,具备基础图像处理能力
方案2OV5640 摄像头模块5MP 高分辨率,图像更清晰,但价格较高,需更复杂的电源管理与接口设计

课堂行为检测关注的是学生的姿态与动作而非精细图像细节,2MP 分辨率足够覆盖,且 ESP32-CAM 将采集与无线传输合二为一,大幅简化系统设计。选择方案1:ESP32-CAM。

2.3 通信协议选型:MQTT

视频流上云选用 MQTT 轻量级协议,而非 HTTP 或 TCP 裸传:MQTT 基于发布/订阅模式,由 Broker(EMQX 服务器)作中间桥梁实现设备解耦——采集端只管向 Topic 发布消息,访问端只管订阅感兴趣的 Topic,系统灵活性与可扩展性大幅增强。MQTT 消息头开销小,天然适合低带宽、高延迟网络环境;三级 QoS(QoS 0 最多一次 / QoS 1 至少一次 / QoS 2 仅一次)可按场景平衡传输效率与可靠性;配合 TCP/IP 与 TLS 加密还能保障数据安全。

三、系统硬件设计

3.1 接线总表

模块/电路连接与配置关键说明
STM32 主控芯片工作电压 2.0V~3.6V(典型 3.3V),37 个 GPIO、3 个 USART、2 个 SPI、2 个 I2C、12 位 ADC按需配置引脚工作模式,ADC 引脚(PA0-PA3)外接模拟信号时注意输入阻抗与滤波
时钟电路8MHz 晶振接 PD0/PD1(HSE,PLL 倍频至 72MHz);32.768kHz 晶振接 PC14/PC15(RTC)配负载电容保证稳定,RTC 支持主电源关闭后继续走时
复位电路按键 + 上拉电阻接 NRST按键按下拉低 NRST 触发复位,上拉电阻防止误复位
ESP32-CAM 模块Vin→5V 供电,GND 接地;OV2640 经 GPIO0/2/4/12-19 等引脚连接 ESP32SD 卡走 SPI 接口(CS/MOSI/MISO/SCK),TX/RX 用于串口调试与数据传输
WiFi 通信ESP32-CAM 板载天线MQTT 协议连接 EMQX 服务器

3.2 图像采集原理

OV2640 摄像头的工作链路分四步:外界光线经镜头组聚焦到 CMOS 图像传感器(光学成像)→ 像素阵列感知光强并分解为 RGB 颜色信息(图像传感)→ 内部 DSP 完成去噪、白平衡、伽马校正、色彩增强与格式压缩(信号处理)→ 经 SPI 串行接口输出到 ESP32 主控(数据输出)。OV2640 支持 JPEG 硬件压缩,可按分辨率与质量设置生成不同大小的 JPEG 图像,正好适配课堂监控的低带宽传输需求。

四、系统软件设计

4.1 开发环境

软件开发采用 Arduino IDE:跨平台(Windows/macOS/Linux)、图形化界面友好,基于简化的 C/C++ 语言并内置丰富标准函数库,GPIO/ADC/PWM/串口操作直接调用库函数,第三方库扩展支持 I2C、SPI、WiFi 物联网通信乃至图像处理,集成串口监视器实时查看调试信息,特别适合快速原型开发。

4.2 主程序设计

系统上电后完成 STM32 通信接口与寄存器初始化,并配置 ESP32-CAM 的 WiFi 连接参数与通信协议,随后进入主循环:启动视频采集 → STM32 经 UART 获取视频流数据 → 通过 MQTT 协议经 WiFi 上传 EMQX 服务器 → 用户端经链接实时观看。主程序骨架如下:

void setup()
{
    Sys_Init();                 // STM32 通信接口与寄存器初始化
    ESP32CAM_Init();            // 摄像头引脚/时钟/像素格式/帧大小/JPEG质量配置
    WiFi_Init();                // STA 模式,关闭 WiFi 睡眠,最多重试20次连接
    TCP_ServerStart(8080);      // 启动 TCP 服务器并监听端口
    MQTT_Connect(EMQX_BROKER);  // 连接 EMQX,设置 Topic 与 QoS
}

void loop()
{
    client = CheckClient();     // 处理客户端连接请求(单客户端模式)
    cmd = ParseClientCmd();     // 解析开启/关闭摄像头、LED 等指令

    if (cam_enabled && clientConnected) {
        fb = esp_camera_fb_get();        // 获取一帧图像
        SendImageByChunk(fb, 1024);      // 按1024字节分段发送
        esp_camera_fb_return(fb);        // 清空帧缓冲区
    }
    MQTT_Publish(TOPIC_VIDEO, payload);  // 视频流上传 EMQX
}

4.3 摄像检测流程

图像数据包定义为 1024 字节,配套 WiFi 名称/密码、摄像头开关标志位、TCP 端口号与图像传输起止标记字符串等参数。摄像头配置环节依次完成引脚定义、时钟频率、像素格式、帧大小与 JPEG 质量设置,初始化失败则输出错误信息返回错误码。WiFi 初始化设为 STA 客户端模式,并主动关闭 WiFi 睡眠功能提高响应速度,最多重试 20 次连接并按结果控制指示灯。TCP 服务器启动后监听 8080 端口,同时关闭小包合并功能以减少延迟。图像传输采用分段发送:每次发送 maxcache 大小的数据块,以起止标志字符串判定发送的开始与结束,发完即清空帧缓冲区;客户端管理上采用单连接策略——已有客户端在线时拒绝新连接,无连接时分配新客户端并发送连接消息,配合开/关摄像头与 LED 指令解析,保证多终端访问秩序与传输稳定。

五、系统实现与测试

5.1 测试结果

测试项目测试方法测试结果
硬件基础万用表测 3.3V 供电、按键复位、示波器验证晶振时钟信号电源稳定、复位正常、时钟信号正确
视频采集测试不同分辨率与 JPEG 压缩质量下的采集效果图像数据稳定清晰
数据传输UART 校验 STM32 接收准确性,MQTT 上传 EMQX 测试及时性与 QoS 可靠性传输效率与可靠性达标
多终端访问手机/电脑经链接观看视频流跨平台实时观看正常,满足远程监控需求
异常恢复模拟 WiFi 断开、摄像头故障系统自动恢复,故障处理机制有效
长时间运行高负载连续运行监测无视频中断、数据丢失或程序崩溃,功耗表现良好

5.2 调试要点

硬件调试按"电源→主控→通信→系统集成"逐级推进:万用表查供电、示波器看时钟、串口调 UART 收发,MQTT 环节重点验证与 EMQX 服务器的连接、消息发布/订阅与 QoS 级别可靠性。软件调试中通过调整 JPEG 压缩参数与帧率设置降低带宽需求、保证图像质量,并以多线程与事件驱动机制保障实时性。系统最终在真实课堂场景中稳定运行,展现出良好的抗网络波动能力。

六、总结

这套智慧课堂学生行为检测系统用"STM32 掌调度 + ESP32-CAM 管采集 + MQTT 轻协议 + EMQX 云中转"的组合,把课堂监控做成了低成本、可扩展的物联网方案:ESP32-CAM 以高集成度省掉了独立的图像采集与无线传输电路,MQTT 发布/订阅模式让采集端与访问端彻底解耦,用户一个链接即可多终端实时观看课堂画面。系统经硬件、软件与功能三重测试验证了稳定性与抗网络波动能力,其模块化架构也为后续接入 AI 行为识别(专注度分析、异常行为报警)预留了清晰的扩展路径,是智慧教育落地的一个务实起点。

七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐