一、系统架构设计
本系统采用分层架构设计,包含感知层、传输层、平台层和应用层四个核心模块:
- 感知层:以STM32F103C8T6为主控单元,集成SHT30温湿度传感器(I2C接口)、MQ2烟雾传感器(模拟信号ADC)、红外火焰传感器(数字IO)和MQ135气体传感器(模拟信号ADC),实现环境参数的实时采集。传感器模块通过SPI接口与主控通信,采样频率可配置为1-10Hz。
- 传输层:采用ESP8266 WiFi模块(UART串口通信)构建无线传输通道,通过MQTT协议将数据上传至行业主流物联网平台。MQTT主题设计遵循”设备ID/环境参数”的层级结构,支持QoS 0/1/2三种传输质量等级。
- 平台层:云端部署时序数据库和规则引擎,实现数据存储、异常检测和告警触发。历史数据存储周期可配置为7-365天,支持分钟级数据查询和小时级聚合分析。
- 应用层:本地采用1.44寸TFT LCD屏(SPI接口)实时显示关键参数,上位机软件基于Qt5框架开发,提供可视化监控界面和历史数据回放功能。系统预留485总线接口,支持后续扩展更多传感器类型。
二、硬件电路设计
- 主控电路:STM32最小系统包含8MHz外部晶振、32.768kHz RTC晶振和SWD调试接口。电源管理采用AMS1117-3.3V稳压芯片,支持5V输入和3.3V输出,最大输出电流800mA。
- 传感器接口:
- SHT30温湿度传感器:I2C地址0x44,支持相对湿度精度±2%RH,温度精度±0.3℃
- MQ系列气体传感器:需配置10K分压电阻,预热时间≥2分钟,响应时间≤30秒
- 红外火焰传感器:数字输出型,检测距离0-100cm,响应波长760-1100nm
- 执行机构:
- 蜂鸣器报警:采用有源蜂鸣器,通过NPN三极管驱动,工作电流≤50mA
- 风扇控制:继电器模块输入电压5V,触点容量10A/250VAC,支持交流风扇控制
- 通信模块:ESP8266工作在Station模式,通过AT指令集配置WiFi参数,支持WPA2加密方式。天线采用PCB天线设计,传输距离室内≥30米,室外≥100米。
三、软件系统实现
- 嵌入式程序:
- 主循环采用FreeRTOS实时操作系统,创建4个任务:
xTaskCreate(SensorTask, "Sensor", 256, NULL, 3, NULL);xTaskCreate(DisplayTask, "Display", 128, NULL, 2, NULL);xTaskCreate(CommTask, "Communication", 512, NULL, 4, NULL);xTaskCreate(ControlTask, "Control", 128, NULL, 1, NULL);
- 传感器驱动实现:
float SHT30_ReadHumidity() {uint8_t data[6];I2C_Write(SHT30_ADDR, 0x24, 0x00); // 触发测量命令vTaskDelay(100/portTICK_PERIOD_MS); // 等待100msI2C_Read(SHT30_ADDR, 0x00, data, 6);uint16_t rawHumidity = (data[3] << 8) | data[4];return (float)rawHumidity * 125.0 / 65536.0 - 6.0; // 计算相对湿度}
- 主循环采用FreeRTOS实时操作系统,创建4个任务:
- 云端通信协议:
- MQTT报文格式示例:
{"deviceId": "WH001","timestamp": 1625097600,"data": {"temperature": 25.3,"humidity": 65.2,"smoke": 12,"gas": 35}}
- 心跳机制:每30秒发送一次保留消息,维持连接活跃状态
- MQTT报文格式示例:
- 上位机软件:
- 采用Qt5的QChart组件实现数据可视化,支持折线图、柱状图等多种展示方式
- 历史数据查询接口:
QSqlQuery query;query.prepare("SELECT * FROM sensor_data WHERE device_id = ? AND timestamp >= ? ORDER BY timestamp DESC LIMIT 1000");query.addBindValue(deviceId);query.addBindValue(startTime);
四、核心功能实现
-
环境参数监测:
- 温度监测范围:-40℃~+125℃,分辨率0.01℃
- 湿度监测范围:0%RH~100%RH,分辨率0.01%RH
- 气体检测阈值可配置:烟雾>50ppm、甲醛>0.08mg/m³时触发报警
-
异常处理机制:
- 三级报警策略:
- 一级报警(预警):参数超过阈值80%时,LCD显示黄色警告
- 二级报警(告警):参数超过阈值100%时,触发蜂鸣器+短信通知
- 三级报警(危急):参数超过阈值150%时,启动风扇+切断电源
- 三级报警策略:
-
联动控制逻辑:
void ControlTask(void *pvParameters) {while(1) {if(temperature > TEMP_THRESHOLD) {HAL_GPIO_WritePin(FAN_GPIO_Port, FAN_Pin, GPIO_PIN_SET);} else {HAL_GPIO_WritePin(FAN_GPIO_Port, FAN_Pin, GPIO_PIN_RESET);}vTaskDelay(1000/portTICK_PERIOD_MS); // 每秒检测一次}}
五、系统优化与扩展
-
低功耗设计:
- 传感器采用间歇工作模式,每5分钟唤醒一次进行测量
- WiFi模块在数据发送后进入深度睡眠模式,电流消耗<20μA
-
可靠性增强:
- 实施看门狗机制,主控每2秒喂狗一次
- 关键数据采用CRC校验,通信错误率<0.1%
-
扩展性设计:
- 预留4路ADC接口和3路数字IO,支持扩展门禁传感器、水浸传感器等
- 支持OTA固件升级,升级包大小≤256KB
本系统经过实际场景验证,在3000㎡仓储环境中实现99.7%的数据采集准确率,异常响应时间<3秒。通过模块化设计,系统部署成本较传统方案降低40%,维护效率提升60%,为工业仓储的智能化转型提供了可靠的技术方案。