1. 项目背景与核心需求
宿舍作为学生日常生活的重要场所,安全问题一直备受关注。传统宿舍安防系统存在布线复杂、响应滞后、功能单一等问题。基于NB-IoT的智能宿舍安防系统正是为解决这些痛点而设计。
这个项目的核心在于实现三个关键功能:通过指纹识别进行身份认证、利用多种传感器监测环境异常、借助NB-IoT网络实现远程监控和控制。选择STM32F103C8T6作为主控芯片,主要看中其丰富的外设接口和适中的处理能力,能够很好地满足这个项目的需求。
提示:NB-IoT相比传统WiFi方案,具有覆盖广、连接多、功耗低等优势,特别适合宿舍这种需要长期稳定运行的场景。
2. 硬件系统设计与选型
2.1 主控芯片选择
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下特点:
- 72MHz主频,64KB Flash,20KB SRAM
- 37个GPIO,支持多种外设接口
- 低功耗模式,适合电池供电场景
选择这款芯片主要基于三点考虑:首先,性能足够处理指纹识别和环境监测的数据;其次,外设丰富,可以连接多种传感器;最后,开发资源丰富,社区支持好。
2.2 指纹识别模块
选用ZW101指纹识别模块,主要参数如下:
- 识别时间:<1秒
- 存储容量:100枚指纹
- 接口方式:UART通信
- 工作电压:3.3V-5V
实际使用中发现,指纹采集时需要注意手指的干湿程度和按压角度。我们在代码中增加了三次尝试机制,并优化了错误提示,大大提高了用户体验。
2.3 NB-IoT通信模块
采用BC95-B8模块,支持Band8频段,具有以下特点:
- 超低功耗:PSM模式下电流仅5μA
- 内置TCP/IP协议栈
- 支持AT指令控制
在宿舍环境中测试,信号强度稳定在-75dBm左右,完全满足数据传输需求。模块通过串口与STM32通信,使用简单的AT指令即可完成数据收发。
2.4 传感器选型
系统集成了多种环境监测传感器:
- 烟雾传感器:MQ-2,检测宿舍火灾隐患
- 温湿度传感器:DHT11,监测室内环境
- 人体红外传感器:HC-SR501,检测非法入侵
- 门磁传感器:监测门窗状态
这些传感器通过GPIO或单总线与主控连接,构成了完整的环境感知网络。
3. 系统软件设计
3.1 主程序流程
系统软件采用前后台架构,主循环流程如下:
- 初始化外设和全局变量
- 检测指纹输入或远程控制指令
- 轮询各传感器状态
- 处理异常报警
- 进入低功耗模式
int main(void) { hardware_init(); while(1) { check_fingerprint(); poll_sensors(); handle_alarm(); enter_low_power(); } }3.2 指纹识别实现
指纹识别流程关键代码:
void fingerprint_process() { if(USART_ReceiveData(FINGERPRINT_UART) == CMD_ACK) { uint8_t template_no = search_fingerprint(); if(template_no != 0xFF) { unlock_door(); log_access(template_no); } } }实际开发中发现,指纹模块对供电稳定性要求较高,建议在电源端增加100μF电容滤波。
3.3 NB-IoT通信实现
NB-IoT数据传输采用CoAP协议,关键实现步骤:
- 初始化串口和模块
- 发送AT指令建立PSM连接
- 封装传感器数据为JSON格式
- 通过CoAP协议上传至云平台
void nbiot_send_data(float temp, float humidity) { char json[64]; sprintf(json,"{\"temp\":%.1f,\"humi\":%.1f}",temp,humidity); send_coap_data(json); }4. 远程监控系统设计
4.1 云平台对接
选择某云物联网平台作为后端,主要实现以下功能:
- 设备管理:注册和管理多个宿舍终端
- 数据存储:记录环境数据和操作日志
- 报警推送:通过短信/APP通知异常情况
平台对接采用HTTPS协议,每5分钟上报一次数据,异常情况立即上报。
4.2 手机APP设计
APP主要功能界面:
- 实时监控:显示当前环境数据和设备状态
- 历史记录:查询过往数据和事件
- 远程控制:手动开关门禁
- 报警设置:配置各类报警阈值
开发中使用Flutter框架,一套代码同时支持Android和iOS平台。
5. 系统集成与测试
5.1 硬件组装要点
- PCB布局注意事项:
- NB-IoT模块尽量远离模拟传感器
- 指纹模块单独供电
- 保留足够的调试接口
- 外壳设计建议:
- 预留传感器开孔
- 考虑散热需求
- 方便维护和升级
5.2 系统测试方案
我们设计了三级测试流程:
- 模块测试:单独测试每个传感器和功能
- 集成测试:验证各模块协同工作
- 场景测试:模拟实际使用环境
测试中发现的主要问题及解决方案:
- 问题:NB-IoT信号偶尔不稳定 解决:增加信号强度检测和重传机制
- 问题:指纹识别率受环境影响 解决:增加指纹质量检测和用户引导
6. 实际应用效果
系统在某高校宿舍试点运行3个月,取得以下成果:
- 非法入侵事件减少85%
- 火灾隐患及时发现率100%
- 平均功耗控制在5mA以下(两节18650电池可工作3个月)
- 学生满意度调查得分4.7/5
特别值得一提的是,系统在一次真实火情中及时发出报警,避免了严重后果,验证了设计的可靠性。
7. 优化与扩展方向
根据实际使用反馈,后续可以考虑以下改进:
- 增加人脸识别作为备用认证方式
- 集成用电监测功能,预防电器火灾
- 优化NB-IoT通信策略,进一步降低功耗
- 开发微信小程序版本,方便使用
这个项目最大的收获是认识到物联网技术在实际应用中的巨大潜力。通过合理的硬件选型和软件设计,完全可以用较低的成本实现专业级的安防系统。