一、项目概述
项目名称:基于物联网的学生宿舍环境监测系统设计
项目编号:dz-858
主控芯片:STM32F103C8T6
本系统集成了多种传感器与执行模块,实现对学生宿舍环境的全方位智能监控与管理。其主要功能包括:
- 利用DHT11传感器实时采集环境温湿度数据,当温度超过设定上限时,自动启动风扇进行降温,并触发声光报警装置;
- 采用MQ-2气体传感器检测烟雾浓度,一旦数值超出安全范围,立即驱动水泵实施灭火操作,同时启动声光报警;
- 通过MQ-135空气质量传感器对室内空气状况进行监测,若检测到污染程度超标,则自动开启通风设备,并发出警报提示;
- 配备RFID刷卡模块,支持身份验证开锁功能,连续三次刷卡失败将触发报警机制;
- 集成AS608指纹识别模块,实现指纹解锁,连续三次识别错误同样会激活声光报警;
- 搭载康帕斯A9摄像头模块,支持远程实时查看宿舍内部情况,并可调取历史视频记录;
- 设置按键模块,允许用户手动调整各项参数的阈值;
- OLED显示屏用于本地实时显示温湿度、烟雾浓度、空气质量、门禁状态及系统运行信息;
- 借助ESP8266 WiFi模块,将采集的数据和图像传输至云端,用户可通过移动设备远程访问监控内容。
二、系统结构设计
该系统以STM32F103C8T6为核心控制单元,结合输入与输出模块构建完整的物联网监控体系。整体架构分为中控、输入和输出三大组成部分。
中控部分:采用STM32F103C8T6作为主控芯片,负责接收各传感器信号并进行逻辑判断,进而控制外设动作。
输入部分包含以下模块:
- 温湿度检测模块(DHT11)——采集环境温湿度;
- 烟雾感应模块(MQ-2)——监测烟雾浓度;
- 空气质量传感模块(MQ-135)——评估空气污染水平;
- RFID读卡模块——实现刷卡开门;
- 指纹识别模块(AS608)——完成指纹认证开锁;
- 摄像头模块(康帕斯A9)——实现宿舍实时监控与录像存储;
- 按键输入模块——用于配置各类阈值参数;
- 电源管理模块——为整个系统提供稳定供电。
输出部分由以下组件构成:
- 继电器控制模块——用于启停风扇、水泵及通风装置;
- 声光报警模块——在异常情况下(如温湿度超限、烟雾报警、门禁验证失败等)发出警示;
- OLED显示模块——本地化展示各类监测数据与系统状态;
- WiFi通信模块(ESP8266)——将现场数据与视频流上传至服务器,支持手机端远程查看。
三、实物展示
微控制器型号:STM32F103C8T6
电路板为绿色双层PCB,厚度为1.2mm,上下层均覆铜并接地,提升抗干扰能力。大部分元器件采用直插式封装,仅个别降压芯片使用贴片形式。
供电接口:TYPE-C 接口,便于连接与供电。
四、原理图说明
设计软件版本:Altium Designer 2013
电路连接方式采用网络标号进行电气连接,确保布线清晰准确。
需注意:所提供的原理图为各功能模块的引脚连接示意图,并非模块内部电路原理图,仅用于系统级接口设计参考。
五、PCB布局图
PCB图由原理图导出生成,大部分元器件封装由设计者自行绘制,不单独提供封装库文件,仅提供完整连接的源工程文件。
板子为双层结构,上下两面均覆铜接地,增强稳定性与电磁兼容性。PCB中央位置设有项目编号标识,位于单片机底座下方,安装后不可见。
六、程序代码展示
开发环境:Keil uVision5
软件架构上将逻辑控制代码与硬件驱动代码分离处理,main.c文件负责主流程调度,其余功能模块的驱动程序独立存放于各自的.c源文件中,提高代码可维护性与可读性。
/**********************************
函数名:处理函数
传参值:无
返回值:无
**********************************/
void Manage_Function(void)
{
if(display_num == 0) //测量界面
{
if(temp_value > temp_max*10) //温度大于最大值自动开启风扇
{
RELAY_FS = 1;
flag_fs = 0;
}
else
{
if(flag_fs == 0)
{
RELAY_FS = 0;
}
}
if(gas_value > gas_max) //空气质量大于最大值进行通风
{
RELAY_TF = 1;
flag_tf = 0;
}
else
{
if(flag_tf == 0)
{
RELAY_TF = 0;
}
}
if(smog_value > smog_max) //烟雾大于最大值控制水泵进行灭火
{
RELAY_MH = 1;
flag_mh = 0;
}
else
{
if(flag_mh == 0)
{
RELAY_MH = 0;
}
}
if(fingerprint_step == 1 || rfid_step == 0xfa) //如果指纹比对成功,则打开锁
{
RELAY_LOCK = 1;
flag_cw = 0;
}
else //否则,关闭锁
{
RELAY_LOCK = 0;
}
if(fingerprint_step == 2 || rfid_step == 0xfb) //刷卡或者指纹对比三次错误进行声光报警提醒;
{
if(flag_cw1 == 0)
{
flag_cw ++;
flag_cw1 = 1;
}
}
else
{
flag_cw1 = 0;
}
if(temp_value > temp_max*10 || smog_value > smog_max || gas_value > gas_max || ((fingerprint_step == 2 || rfid_step == 0xfb) && flag_cw >= 3)) //异常情况声光报警
{
if(time_num % 20 == 0)
{
ALERT = !ALERT;
}
}
else
{
ALERT = 0;
}
}
else //设置界面,关闭所有继电器
{
ALERT = 0;
RELAY_TF = 0;
RELAY_MH = 0;
RELAY_LOCK = 0;
}
if(flag_finish_5s == 1) //5秒上传一次数据
{
flag_begin_5s = 0;
Aliyun_Send_Data();
flag_begin_5s = 1;
}
}

雷达卡


京公网安备 11010802022788号







