1. 项目背景与核心价值去年冬天帮老家改造煤炉房时发现市面上的一氧化碳报警器要么功能单一要么价格昂贵。这促使我萌生了开发一款低成本、可远程监控的一氧化碳检测装置的想法。这个开源项目结合了4G通信和LoRa技术实现了以下核心功能实时监测一氧化碳浓度量程0-1000ppm本地LoRa组网覆盖半径达3公里农村场景实测4G模块实现云端数据上传超标三级报警机制声光/APP推送/短信通知整套方案BOM成本控制在150元以内相比商用产品有显著价格优势。特别适合以下场景农村煤炉/土炕区域地下室车库小型餐饮后厨民宿酒店房间2. 硬件设计详解2.1 传感器选型对比测试了三种主流CO传感器型号原理精度响应时间寿命单价MQ-7半导体式±15%30s2年25元SPEC-S4-CO电化学±5%20s5年180元ZE07-CO电化学NDIR±3%10s10年350元最终选择SPEC-S4-CO因其在精度和成本间取得较好平衡。需注意电化学传感器需要定期校准建议每6个月一次 安装时要避免油烟直喷否则会缩短寿命2.2 双模通信方案采用LoRa4G双备份设计本地使用E32-868T30D LoRa模块868MHz配置为模式3定点传输空中速率3kbps发射功率30dBm远程采用EC-01 4G Cat1模块移动/电信双网卡内置MQTT协议栈平均功耗约45mA12V实测通信稳定性LoRa在乡镇环境穿透3堵砖墙后仍有-110dBm信号4G模块在-105dBm信号强度下仍能维持连接3. 软件架构实现3.1 下位机固件开发基于STM32F103C8T6开发关键处理逻辑void CO_Handler(void) { static uint32_t lastAlertTime 0; float co_ppm SPEC_ReadCO(); if(co_ppm 50) { // 一级报警阈值 Buzzer_Alert(1); if(co_ppm 150 HAL_GetTick()-lastAlertTime 300000) { //5分钟间隔 GSM_SendSMS(138xxxxxx, CO浓度超标当前值:%.1fppm, co_ppm); lastAlertTime HAL_GetTick(); } LoRa_SendData(co_ppm); } if(Cloud_Connected) { MQTT_Publish(sensor/co, co_ppm); } }3.2 云端服务搭建使用EMQXInfluxDBGrafana组合EMQX配置# 修改etc/plugins/emqx_auth_mnesia.conf auth.mnesia.password_hash sha256 auth.mnesia.ignore_system_message trueInfluxDB写入策略CREATE RETENTION POLICY co_30days ON iotdb DURATION 30d REPLICATION 1Grafana设置报警规则WHEN last() OF query(A, 1m) 50 THEN ALERT4. 现场部署要点4.1 安装规范距地面1.2-1.5米高度距离燃烧设备1-3米避免安装在以下位置通风口正对处阳光直射区域油烟聚集角落4.2 校准方法使用100ppm标准气体校准通电预热30分钟短按校准键3次进入模式通入标准气体90秒长按校准键保存参数5. 常见问题排查5.1 通信异常处理现象可能原因解决方法LoRa频繁丢包频点冲突修改扩频因子(SF7→SF9)4G模块无法注册APN设置错误发送ATCGDCONT1,IP,CMNET云端数据延迟MQTT QoS等级过低改为QoS2传感器读数漂移老化或中毒更换传感器并检查安装位置5.2 电源优化建议实测发现使用18650电池供电时关闭4G模块可使续航从7天延长至45天太阳能供电方案需要至少10W面板20Ah蓄电池市电供电建议选用5V2A电源避免劣质充电头导致重启这个项目在实际部署中已经预防了多起潜在中毒事故。有个使用反馈特别值得分享某民宿老板将报警阈值设为35ppm比标准更严格结果发现是客人偷偷在房间烧烤导致的报警这种灵活设置正是开源项目的优势所在。
低成本一氧化碳检测装置:LoRa+4G远程监控方案
发布时间:2026/6/27 13:50:42
1. 项目背景与核心价值去年冬天帮老家改造煤炉房时发现市面上的一氧化碳报警器要么功能单一要么价格昂贵。这促使我萌生了开发一款低成本、可远程监控的一氧化碳检测装置的想法。这个开源项目结合了4G通信和LoRa技术实现了以下核心功能实时监测一氧化碳浓度量程0-1000ppm本地LoRa组网覆盖半径达3公里农村场景实测4G模块实现云端数据上传超标三级报警机制声光/APP推送/短信通知整套方案BOM成本控制在150元以内相比商用产品有显著价格优势。特别适合以下场景农村煤炉/土炕区域地下室车库小型餐饮后厨民宿酒店房间2. 硬件设计详解2.1 传感器选型对比测试了三种主流CO传感器型号原理精度响应时间寿命单价MQ-7半导体式±15%30s2年25元SPEC-S4-CO电化学±5%20s5年180元ZE07-CO电化学NDIR±3%10s10年350元最终选择SPEC-S4-CO因其在精度和成本间取得较好平衡。需注意电化学传感器需要定期校准建议每6个月一次 安装时要避免油烟直喷否则会缩短寿命2.2 双模通信方案采用LoRa4G双备份设计本地使用E32-868T30D LoRa模块868MHz配置为模式3定点传输空中速率3kbps发射功率30dBm远程采用EC-01 4G Cat1模块移动/电信双网卡内置MQTT协议栈平均功耗约45mA12V实测通信稳定性LoRa在乡镇环境穿透3堵砖墙后仍有-110dBm信号4G模块在-105dBm信号强度下仍能维持连接3. 软件架构实现3.1 下位机固件开发基于STM32F103C8T6开发关键处理逻辑void CO_Handler(void) { static uint32_t lastAlertTime 0; float co_ppm SPEC_ReadCO(); if(co_ppm 50) { // 一级报警阈值 Buzzer_Alert(1); if(co_ppm 150 HAL_GetTick()-lastAlertTime 300000) { //5分钟间隔 GSM_SendSMS(138xxxxxx, CO浓度超标当前值:%.1fppm, co_ppm); lastAlertTime HAL_GetTick(); } LoRa_SendData(co_ppm); } if(Cloud_Connected) { MQTT_Publish(sensor/co, co_ppm); } }3.2 云端服务搭建使用EMQXInfluxDBGrafana组合EMQX配置# 修改etc/plugins/emqx_auth_mnesia.conf auth.mnesia.password_hash sha256 auth.mnesia.ignore_system_message trueInfluxDB写入策略CREATE RETENTION POLICY co_30days ON iotdb DURATION 30d REPLICATION 1Grafana设置报警规则WHEN last() OF query(A, 1m) 50 THEN ALERT4. 现场部署要点4.1 安装规范距地面1.2-1.5米高度距离燃烧设备1-3米避免安装在以下位置通风口正对处阳光直射区域油烟聚集角落4.2 校准方法使用100ppm标准气体校准通电预热30分钟短按校准键3次进入模式通入标准气体90秒长按校准键保存参数5. 常见问题排查5.1 通信异常处理现象可能原因解决方法LoRa频繁丢包频点冲突修改扩频因子(SF7→SF9)4G模块无法注册APN设置错误发送ATCGDCONT1,IP,CMNET云端数据延迟MQTT QoS等级过低改为QoS2传感器读数漂移老化或中毒更换传感器并检查安装位置5.2 电源优化建议实测发现使用18650电池供电时关闭4G模块可使续航从7天延长至45天太阳能供电方案需要至少10W面板20Ah蓄电池市电供电建议选用5V2A电源避免劣质充电头导致重启这个项目在实际部署中已经预防了多起潜在中毒事故。有个使用反馈特别值得分享某民宿老板将报警阈值设为35ppm比标准更严格结果发现是客人偷偷在房间烧烤导致的报警这种灵活设置正是开源项目的优势所在。