基于STM32的家居环境检测系统设计
作者: 贾东霖 陈可立 阿西古丽·阿迪力摘要:【研究目的】现存家居环境检测仪设计中存在缺少氨气、硫化物、苯系蒸汽和甲醛等致癌物检测、缺少MQ138传感器的度量及转换公式、缺少数据可视化操作等问题。针对上述问题,本文设计了一种基于物联网技术的家居环境检测系统。【实验方法】系统采用STM32F103ZET6单片机作为主控芯片,通过Wi-Fi模块的MQTT协议将采集到的(MQ-2烟雾、MQ-5液化气、MQ-7一氧化碳、MQ-135空气质量、MQ-138甲醛、PM2.5粉尘、DHT11温湿度等)传感器数据传输到阿里云物联网平台实现多节点的实时数据采集与传输,进而实现环境监测功能;使用阿里云云数据库存储采集到的数据,并通过微信小程序与阿里云的连接完成采集数据的实时显示、并对数据进行可视化展示。同时系统可通过小程序控制加热器、负离子发生器等设备改善室内空气质量。【结果】经测试,系统实时性强、可靠性高,能够满足实际家居环境检测与调整需求。【结论】该系统能够有效提高家居环境检测的多样性,解决当前家居环境检测仪监测有害气体种类不足、缺少MQ138转换公式的问题,并可以将家居环境变化趋势可视化。
关键词:STM32F103ZET6;阿里云;微信小程序;Wi-Fi模块;传感器
中图分类号:TP277 文献标识码: A
文章编号:1009-3044(2025)07-0099-05
开放科学(资源服务) 标识码(OSID)
0 引言
家居环境污染,特别是甲醛、PM2.5、氨气、硫化物等有害物质的超标,对居民健康构成严重威胁。因此,在租房前进行家居环境检测显得尤为重要。然而,现有的家居环境检测仪存在诸多不足,如缺乏对致癌物如甲醛、氨气、硫化物等的全面检测,缺少关键传感器的度量转换公式,以及数据可视化不足等。针对现存问题,创新性地设计室内空气检测系统。系统集成了7种传感器,构建了全面的室内空气检测矩阵,能够准确检测并显示家居环境中的常见污染物。通过微信小程序,用户可实时查看检测结果,享受便捷的数据可视化服务。
本设计有以下3个创新点:①解决目前设计缺少氨气、硫化物、苯系蒸汽和甲醛等致癌物检测的问题。韦栗[1]通过对温湿度和烟雾的采集来展示家居环境的空气质量;朱菊香[2]通过对PM2.5、甲烷、二氧化碳的采集,来对室内环境有毒气体进行检测。现有的工作都缺少对氨气、硫化物、苯系蒸汽和甲醛等致癌物检测。针对此问题本系统除了采用传统传感器对常见有害物质进行检测,还创新性地采用MQ135和MQ138传感器对室内氨气、硫化物、苯系蒸汽和甲醛等致癌物进行检测,弥补了市面上家居环境检测仪对于室内空气检测种类的不足。②解决缺少MQ138传感器的度量及转换公式的问题。吴自玉[3]虽对甲醛和甲苯气体进行采集,但并没有补全相应的度量及其转换公式。因此本系统根据国家标准提出度量方法,补全了MQ138传感器对于甲醛采集的转换公式并且证明了该公式的可行性。③解决缺少数据可视化的问题。钱平等[4]通过连接阿里云实现在微信小程序页面进行实现远程和对室内环境的检测;Luyong Ren[5]通过连接ONENET平台实现远程对室内环境的实时监测。其虽有数据上传以及显示功能,但都缺少直观的数据可视化展现。因此本系统通过数据采集、数据汇总、数据可视化以及空气质量调整外设控制,实现家居环境检测及数据可视化系统。
1 系统总体设计
本系统通过室内空气检测矩阵采集家居环境数据,利用MQTT协议低延迟、低功耗上传至云端。云端数据同步至微信小程序,用户可直观查看环境数据与天气状况[4],并远程控制智能家居。系统监测温度、湿度、PM2.5、甲醛等关键指标,确保数据准确即时。微信小程序提供实时数据、报警通知、远程控制及生活场景预设功能。ECharts图表展示数据趋势,支持历史查询。系统全年无间断运行,数据传输稳定加密,支持多用户多家庭接入,界面简洁易操作,为家居健康提供全面保障。
1.1 系统架构
本系统以STM32为核心,集成多传感器监测烟雾、液化气、一氧化碳等有害气体及温湿度、甲醛、PM2.5等[6-7]。超限即亮灯示警,液化气泄漏则蜂鸣器预警。数据经Wi-Fi传至阿里云端,同步至微信小程序和云数据库。用户可通过小程序查看天气、家居环境实时数据,并利用echarts实现数据可视化。同时,小程序支持远程控制家居设备,如负离子发生器、温控设备、加湿器等,实现家居环境智能化管理。系统框图如图1所示。
1.2 度量标准
本节介绍甲醛浓度、PM2.5浓度、一氧化碳浓度,空气湿度检测方法。具体公式根据室内空气质量标准GB/T18883-2022设计而成,具体国家规范指标如表1所示。
设计中空气质量参数根据国家现执行的环境空气质量标准GB/TGB3095-2012设计而成,具体国家规范指标如表2所示。
空气质量传感器测量的输出结果为体积浓度,对应单位为ppb,质量-体积浓度转换公式如下所示:
[1 000ppb=1ppm=1.2mg/m3] (1)
式中:ppb,ppm,mg/m3为浓度符号。
由以上公式可以得到有害气体标准是
一氧化碳:≤8 333.33ppb
甲醛:≤66.67ppb
PM2.5:≤41.67ppb
2 环境检测实现
本系统通过增加氨气、硫化物、苯系蒸汽和甲醛等致癌物的检测,解决市面上家居环境检测仪对于室内空气检测种类不足的问题,尤其是关键致癌物检测缺失的问题。通过温湿度传感器DHT11、烟雾传感器MQ-2、液化气传感器MQ-5、一氧化碳传感器MQ-7、空气质量传感器MQ-135、甲醛传感器MQ-138和PM2.5传感器等7种传感器做了一个室内空气检测矩阵,对日常生活中常见的空气污染做了全方位的检测,并通过蜂鸣器和LED灯向用户预警和直观地显示家居环境检测质量;经由Wi-Fi模块与阿里云进行连接,做到数据的实时上报和远程控制的功能。系统硬件原理图如图2所示。
2.1 数据采集模块
DHT11模块利用GPIO固件库与滴答定时器模拟时序,通过指针获取并转换温湿度值。同时,MQ系列气体传感器采集模拟电压,经ADC转换为数字值后,依据转换公式得出气体浓度。一旦检测到液化气浓度超标,通过DO引脚输出低电平信号,触发蜂鸣器预警。系统采用串口通信,Wi-Fi模块利用AT指令与阿里云物联网平台通过MQTT协议互连,实现数据的双向传输。当云平台发送指令至单片机,经处理后执行对应操作,如控制报警等,形成闭环监控体系,确保环境安全。整体设计集成了温湿度监测、气体浓度检测及远程监控功能,有效提升了环境监测的智能化水平。ADC采集程序流程图如图3所示。
2.2 云端设计模块
云端设计,首先要将阿里云物联网平台的地域选择到华东2(上海)。然后点击免费的公共实例,在里面创建产品,创建产品成功后配置设备,并配置产品功能跟自定义topic。将以上操作完成后,点击云产品流转配置产品云流转规则,就可以将stm32采集到的数据通过SQL规则查询语句传到阿里云平台,并通过云产品流转规则将数据实时传输到微信小程序和云数据库中。系统云端设计程序流程图如图4所示。
3 度量公式设计
本节通过设计MQ138甲醛传感器转换公式实现环境甲醛数据标准化采集与度量。同时将MQ2烟雾,MQ7一氧化碳,MQ135空气质量,MQ138甲醛,PM2.5等传感器采集到的模拟电压值进行A/D转换成数字电压值,再经过气体浓度转换公式将数字电压值转换成气体浓度进行读取。具体气体浓度转换公式如下:
①MQ2 烟雾传感器公式
[ppm = 613.9f * pow(RS/R0, -2.074f)] (2)
②MQ7 一氧化碳传感器公式
[ppm = 98.322f * pow(RS/R0, -1.458f)] (3)
③MQ135 空气质量传感器公式
[ppm=((11.5428*35.904*temp1)/(25.5-5.1*temp1)*(1/0.6549))] (4)
④MQ138 甲醛传感器公式
[ppb=(temp/(66.64 * 0.08))*833] (5)
⑤PM2.5 传感器公式
[ug/m3=(pm_ad+ad1)/80 ] (6)
式中:ppm(烟雾/一氧化碳浓度) 、ppb(甲醛浓度) 通过电压值(temp/temp1) 计算,ug/m3(PM2.5浓度) 由初始值pm_ad与采集平均值ad1计算,均基于器件在洁净空气中电阻R0与不同浓度下电阻RS的比对。
关于MQ138甲醛传感器转换公式的补全可以通过表1室内空气质量标准GB/T18883-2022和公式(1) 质量-体积浓度转换公式得出甲醛浓度计算标准:
[0.08mg/m3 = 833 * 0.08 = 66.64 ppb] (7)
通过以上公式除以被除数temp(采集的电压值) 乘以833(1 mg/m3=833 ppb) 就得出了室内空气中的甲醛含量。
4 系统数据可视化
单一的数据收集虽可以实现家居环境的监测,但数据不够直观,数据的查看也不够便捷。如当有害物质出现系统报警时若普通用户需要使用电脑登录阿里云查看数据是有一定操作难度的,同时只凭每日数据也难以直观地找出有害物质产生的原因。而可视化后的数据可以直观展示家居环境变化趋势,让户主快速找到环境变化的关键点。因此对监控数据可视化具有重要意义。本系统通过数据采集、数据汇总、数据可视化以及空气质量调整外设控制,实现家居环境检测及数据可视化系统。以下是页面设计步骤。
1) 主页面设计:
①配置js:设置阿里云与和风天气参数,实现数据获取。
②设计wxml:布局页面,展示阿里云与和风天气数据。
③设置wxss:调整页面样式。
④导入必要文件:mqtt.js、aliyun文件夹。
2) 可视化页面设计:
①配置js:设置数据接口,转换数据为图表格式,设置刷新机制。
②引用echarts:在json文件中声明。
③设计wxml:集成echarts图表。
④设置wxss:调整图表显示尺寸。
⑤导入echarts.js与ec-canvas文件夹。
完成上述步骤后,微信小程序即可实现实时数据展示、远程控制与数据可视化功能。
系统数据可视化设计如图5所示。
5 系统测试与结果分析
5.1 测试环境
1) 硬件环境:包括MQ138在内的7种传感器、ADC模块、微控制器(如Arduino、STM32) 、Wi-Fi模块、LED指示灯、蜂鸣器、加热片、半导体制冷器、负离子发生器、加湿器及电源供应器。
2) 软件环境:微控制器的编程环境(如Arduino IDE、Keil) 、阿里云物联网平台账号、微信小程序开发环境、云数据库管理工具及echarts可视化工具。
5.2 测试方法
1) MQ138传感器校准与数据采集:
①在零甲醛环境下校准传感器,记录初始电压作为基准。