摘要: 目前市面上的空气质量检测仪通常只能检测少数几种气体,面对空气中多种有害气体,就要使用不同的检测仪器。针对现有检测系统功能不全等问题,开发了由STM32单片机、各类传感器、LCD显示屏和WiFi通信模块组成的多功能检测系统,并利用机智云物联网平台传输数据到用户终端。该检测系统能够实现对空气中的CO、CO2、PM2.5、TVOC、甲醛的含量以及温湿度进行实时监测,并具有超标报警功能。
1引言
空气中的有害物质直接影响人们的心身健康,室内空气的危害气体主要有CO、CO2、PM2.5、甲醛等[1]。温湿度对人的舒适度有较大影响,低湿度环境对人有多种不利影响[2-4]。因此,对空气中的有害气体及环境的温湿度进行检测是必要的,对人员密集、活动频繁的室内公共场所进行空气质量检测尤为重要。空气质量检测方法可以根据检测内容的不同进行设计。采用STC系列单片机可设计出室内温湿度、PM2.5颗粒物浓度检测方法[5]。
利用STM32单片机能实现对室内温湿度、PM2.5以及甲醛浓度检测,数据可采用蓝牙通信方式传输到手机[8],也可利用网络和Lo Ra(Long Range)无线通信技术实时地将检测结果上传至上位机[9]。上述方法对空气质量的检测主要对象是温湿度、PM2.5、CO、CO2甲醛浓度等,而且一台检测设备也难以完成这些目标的同时检测。在数据传输方面,蓝牙通信距离短、可靠性不高,Lo Ra无线通信技术系统较复杂,成本相对高。
实际上,空气中的有毒有害气体比较多,例如空气中的TVOC(TotalVolatile Organic Compounds总挥发性有机物,简称TVOC)对空气质量影响大,引起了人们的高度重视。因此,针对目前空气质量检测系统功能少的现状提出了一个新的设计方案,系统设计以STM32单片机为主控器,由有关功能传感器和Wi Fi无线通信模块组成,利用机智云和Wi Fi无线通信技术将数据传输到用户终端,实现数据共享。该方案可完成多种有害气体的检测,同时能对温湿度进行监测。
2 系统设计方案
空气质量检测系统可检测多种有害气体,对环境的温度、湿度能进行监测,检测到的数据信息可上传到机智云物联网云平台,并发送到用户终端,设计目标和技术指标如下:
2.1 设计目标与技术指标
2.1.1 设计目标
(1)   具有能够检测CO、CO2、甲醛、TVOC、PM2.5和温湿度检测功能。
(2)   能够在LCD屏上实时的显示相关检测数据。
(3)   利用Wi Fi无线通信技术上传数据到机智云物联网云平台。
(4)   能将数据发送到用户终端,实现用户手机及电脑等设备远距离传输。
(5)   具有对有害气体超标提示与报警功能。
2.1.2 主要技术指标
系统设计的技术指标如表1所示:
表1技术指标要求

2.2 系统组成与模块选型
2.2.1 系统组成
根据设计目标构建系统组成,如图1所示,系统主控制器为STM32,数据采集部分由二氧化碳(TVOC、温湿度)传感器模块、甲醛传感器模块、PM2.5采集模块以及一氧化碳采集模块构成,此外还有显示、报警以及Wi Fi无线通信模块。

图1 空气质量检测系统组成框图
2.2.2 功能模块的选择
(1)系统主控制芯片的选择
控制器是系统的主要器件,在满足功能要求的情况下主要考虑性价比,通过对目前市面上比较流行的几大主流单片机芯片对比分析,系统设计宜选用STM32F407ZGT6单片机,该芯片具多个串口,主时钟频率达到168MHz。
(2)PM2.5传感器的选择
PM2.5传感器种类多,有普通传感器,也有激光传感器,可根据精度要求和价格进行选择,相对于普通传感器,激光PM2.5传感器精度高但价格贵许多,本次设计选用价格低的夏普GP2Y1014AU作为PM2.5传感器。
(3)二氧化碳(TVOC)与温湿度传感器选择
考虑到系统功能需求,采用CCS811传感器,它既可检测二氧化碳,又能作为TVOC传感器使用。温湿度传感器选用HDC1080模块,它与二氧化碳(TVOC)传感器集成在一起,采用IIC总线传输数据,体积小。IIC总线类型的传感器结合在一起有利于节省I/O口资源。
(4)一氧化碳以及甲醛传感器模块的选择
一氧化碳(CO)与甲醛属于高危气体,考虑到安全性要求,CO传感器选用ZET07-CO模块,甲醛传感器采用英国达特SMT8404数字式模块,主要是因为这两款传感器是以串口方式传输信号,而且数字信号传输不易受到外界干扰。
3 系统硬件设计
系统硬件设计主要是对各种传感器、Wi Fi无线通信模块等功能器件与STM32单片机的接口电路设计。功能单一的传感器接口电路简单,下面介绍主要的模块接口电路。
3.1 CJMCU-8118传感器模块采集电路设计
CJMCU-8118模块就是CCS811二氧化碳(TVOC)传感器与HDC1080温湿度传感器组合体,采用IIC总线,CJMCU-8118模块与STM32单片机的连接方式如图2所示,其中SCL是IIC数据传输的时钟,SDA为IIC的数据线,WAK是一个使能信号线。
3.2 串口数据传输器件电路设计
系统设计使用四个串口类型的数据传输器件,分别是CO传感器模块、甲醛传感器模块、串口LCD屏幕以及Wi Fi8266模块。这四个串口类型模块与STM32单片机的连接方式如图3所示。采用5V供电电压,其中CO模块连接的是单片机的串口P4,甲醛模块连接的是单片机的串口P3,LCD屏幕连接的是单片机的串口P2,Wi Fi8633模块连接单片机时,需要GBC_LED与GBC_KEY作为控制信号设置Wi Fi8266模块的工作模式。

图2 CJMCM-8118与STM32接口电路

图3串口类模块与单片机连接图
4 系统软件设计
4.1 主控程序设计
在系统运行时可能会出现外界的干扰,为了防止系统在遇到干扰时无法正常运行,系统在软件设计上加入了看门狗程序,保障系统运行不出差错,程序流程图如图4所示。STM32F4的中断系统可配置16个不同优先级别的中断,并且中断之间还可以嵌套中断。首先对单片机初始化,进行优先级分组,在此配置两个响应优先级和两个抢断优先级。
统滴答计时器的初始化是为了做精准的延时而准备的,延时函数在每个模块基本上都有调用。最后对各个模块初始化,主要是对STM32F4最小系统I/O口的参数以及模式进行配置,主要有串口的配置、ADC、IIC、PWM的功能配置。完成了初始化后,系统开始检测Wi Fi模块有没有成功连接路由器。在Wi Fi成功连接之后开始接收数据,与设定数据进行比较,是否有CO、甲醛超标,有超标则蜂鸣器警报,并通过通信方式向手机APP或者PC端发送警报。没有超标将会继续判断CO2、TVOC、温湿度、PM2.5是否超标,如果有超标,系统显示屏将会红色提示,否则,显示屏将会是蓝色,表示正常。

图4主程序流程图
4.2 WiFi模块程序设计
在对Wi Fi模块进行编程之前,先要对WiFi模块进行固件库改写,在固件库改写成功之后才能进行编程,程序流程图如图5所示。图中的喂狗就是上一节提到的看门狗程序,协议处理可直接调用库函数实现。WiFi设备通过配置入网,可由按键启动相应的连接模式,并对配置好的路由器进行连接。
WiFi设备与机智云服务器是双向通信,APP端的操作信息通过机智云服务器发送到Wi Fi设备,WiFi设备接收完成后,单片机(MCU)将会收到协议帧格式的数据,缓冲区将会储存数据。每隔一段时间都会进行一次抓包,然后将数据进行解析,解析后的数据能被MCU识别从而发起事件处理。传感器采集的数据能够被MCU储存,然后这些数据通过协议封装成数据帧发送到WiFi设备,WiFi设备将数据输送至机智云平台的云端服务器,再传输到用户终端。

图5 WiFi模块工作流程图
4.3 传感器模块程序设计
4.3.1 PM2.5传感器模块程序设计
PM2.5传感器主要用到了ADC变换以及PWM脉冲信号配合才能得到采集的数据。采样程序是根据夏普官方说明书中提到要接入一个280us低电平和9720us高电平的PWM信号作为启动信号。通过计算PWM的周期能达到10ms,PM2.5模块只有在PWM低电平280us后才开启转换,因此这时候的ADC采样才是有效的。程序设计时ADC的初始化是通过配置寄存器把管脚功能复用为ADC,PWM初始化是配置PA4管脚相关参数。
根据夏普PM2.5官方提供的典型粉尘电压转换图,如图6所示,可计算粉尘浓度。但是由于起始电压的典型值在不同的地区会有不一样的取值,实际上在很多地区的无尘电压为0V。由图6可知,电压变化范围在0.0V~3.5V时,粉尘浓度与电压呈线性关系。

图6粉尘电压转换图
电压值的转换计算:

粉尘转换计算:

由公式(1)(2)得出总的计算公式:

注:因ADC是12位,212的值是4096,但计算机中12位的非负数补码最大值是4095,公式(3)需要进行修正,修正值为500/4095=0.12,因此,公式(3)要减去0.12,这样实际测量值更准确。
4.3.2 CJMCU-8118模块程序设计
CJMCU-8118模块的信息采集是通过IIC总线进行的,IIC协议启动、停止、等待ACK到来的时序都是通用时序。在IIC总线的通信中要求时钟速度不能过快,否则将会丢失数据,导致无法进行数据的采集。IIC协议内容也相对比较简单,在使用时可以直接调用相应的库函数。IIC总线中规定读取寄存器数据必须选择对应的地址,写入信息之后停止,重新启动才能真正开始读取储存器的数值。
要读取相应的CO2、TVOC、温湿度大小必须将其地址写入传感器,才能获取相应的转化值。写入地址信息以及配置好模块的模式之后,要用IIC的读数据方式。读完数据之后没有应答信号,结束一次数据的读取。程序设计时二氧化碳与TVOC直接是16位的ADC转换值,温湿度计算转换根据官方资料提供的公式。
温度计算公式:

湿度计算公式:

4.3.3 甲醛与一氧化碳模块程序设计
这两个传感器使用的传输方式都是串口方式,并且在数据传输上是一致性,所以两个模块的程序设计方法相同。串口通信(USART)初始化是配置好相应的复用功能,串口采用中断接收的方式,下一步就是要对中断服务函数初始化。在中断数据接收中判断数据是否为0xff的16进制编码,如果是则进一步开始保存相应的数据,当数据达到8位的时候停止接收。经过这一个流程就能完成一次数据的接收。程序设计时根据表2计算CO浓度与甲醛浓度,具体计算公式如下:
表2 串口通信数据传输表

甲醛浓度计算公式:
甲醛浓度(ug/m3)=(高位×256+低位)/10(6)
CO浓度计算公式:

5 系统集成与测试
各功能模块设计、调试完成后,集成为一个系统,再进行系统功能测试。根据实际测量得到的粉尘浓度数据如图7所示。图中数据是在高浓度的粉尘下进行的测试,该测试结果能够验证公式(3)计算的正确性。图8是系统集成图,图中所示信息是在一个VR室测试的空气质量数据,测试结果说明了系统实现了相关功能。

图7实际测量粉尘浓度与电压关系图

图8VR室的实际检测数据效果图
6 结语
项目系统硬件设计了多种不同功能传感器、WiFi无线通信模块与主控制器STM32芯片的接口电路。根据传感器的工作原理设计了相关程序,并以机智云物联网平台和WiFi无线通信模块原理编写了通信程序。实现了对室内空气中的CO、CO2、PM2.5、TVOC、甲醛的含量以及温湿度的实时监测,检测到的数据可在LCD液晶屏显示,同时通过WiFi无线通信技术和机智云物联网平台传输到用户终端,并具有超标报警功能。该空气质量检测系统在VR室得到测试,性能稳定,数据准确,具有实际应用价值。

基于机智云物联网平台的空气质量多功能检测系统设计相关推荐

  1. 基于机智云物联网平台的智能远程植物养护装置设计与实现

    摘要: 设计一种智能远程植物养护装置,采用STM32F103单片机为控制核心,对植物所处环境温度和土壤湿度进行检测,并根据用户所设置的适合植物生长的湿度参数,控制水泵的开关,通过机智云平台在手机APP ...

  2. 基于机智云物联网平台的太阳能热水器控制系统

    摘要: 以STM32F103ZET6为物联网控制模组主控单元,基于机智云平台,针对太阳能热水器设计了一种物联网控制系统,用户通过互联网就能对家中太阳能热水器进行远程控制和运行监测.该系统采用STM32 ...

  3. 基于机智云物联网平台的智能WiFi插座

    一.概述 本设计是基于机智云物联网平台的智能WiFi插座.该插座的主控芯片采用的是意法半导体的STM32f103c8t6来控制.软件部分运用elispe开发工具开发,综合WiFi无线通信.Androi ...

  4. 基于机智云物联网平台的智慧农业管理系统

    为了解决传统农业温室大棚生产管理效率低.智能化程度不高等问题,通过总结目前农业现代化的发展状况,分析具体使用方案和开发平台,由开发者以农业温室大棚内生长的农作物为研究对象,综合温室环境对农作物生长影响 ...

  5. 基于机智云物联网平台的智能垃圾桶监管系统

    本文来自机智云开发者:凌加平,潘绍明,田径北,韦明峥,周俊男,谭晧 广西科技大学电气与信息工程学院广西科技大学工程训练中心 摘 要:随着社会的发展,我国对城市卫生越来越重视,城市环卫工作的智能化是建设 ...

  6. 【开源案例】基于机智云物联网平台的懒人版智能花盆

    "假期有谁家在学校附件的帮我照顾下盆栽.." 真不好意思麻烦你了. 作为理科生当然是选择自己动手做一个啦~ 首先,我们期望的功能有: 2.当土壤湿度低于一定值时自动浇水 3.在线控 ...

  7. 基于机智云物联网平台的智能电梯管理系统

    摘要: 随着科技的发展与电梯的普及,为解决传统电梯舒适性与安全性不足的问题,智能电梯管理系统解决方案应运而生.介绍了以STC89C52RC单片机为核心,使用数码管和LED.矩阵键盘.电机驱动.WiFi ...

  8. 基于机智云物联网平台的实验室智能安防报警系统

    随着物联网应用技术的发展,安防产品的智能化逐渐得到人们的关注.为了更好的保障人们的生命财产安全,本文设计并研发一套适用于实验室的智能安防报警系统,实时监测实验室内的环境状况,从而及时有效防止实验室安全 ...

  9. 基于机智云物联网平台的智能种树小车

    前言:针对目前人工种树效率低的问题,设计了一种全自助高效智能种树小车.介绍了装置的结构组成,剖析了装置的运动机理.通过SolidWorks三维软件对传动部件进行了结构设计. 利用蓝牙模块实现了种植过程 ...

最新文章

  1. OpenVINO + OpenCV实现点头与摇头识别验证
  2. Android开发更改应用图标无效的问题
  3. 描写火车站场景_描写火车站热闹场面的作文300字
  4. Spring Caching集成Ehcache
  5. 【转】Android中定时器的3种实现方法
  6. BZOJ1734: [Usaco2005 Feb]Aggressive cows 愤怒的牛
  7. shell脚本给mysql创建表_shell脚本:实现MySQL创建数据库和删除数据库的脚本
  8. (3)zynq FPGA AXI4_Stream总线介绍
  9. 扎心!全国6.5亿网民月收入不足5000元
  10. linux玩游戏无声音,Linux下LumaQQ 无声音的解决方法与播放电影
  11. 全球与中国冲压空气涡轮行业调查与未来发展趋势研究报告
  12. 程序员之路:Gmail邮箱客户端配置_彭世瑜_新浪博客
  13. Android 4高级编程(第3版)
  14. linux ftok()
  15. C#语言实例源码系列-实现屏幕放大器和取色
  16. (转)纵观国内外证券公司IT发展史
  17. 华理2019信号与系统考研模拟试题(含数字信号处理)
  18. 为什么现在用的otm8018b型LCD屏的ID不能被读取?
  19. mysql查询前几笔sql语句_mysql开发常用的几条sql查询语句
  20. 北京朝阳一互联网公司被端,警方上门,23人被带走…这种开发千万别干

热门文章

  1. 文件传输软件 WinSCP及xftp的使用
  2. pb调用精伦电子sdtapi.dll读卡函数的心得
  3. Epson机械手4轴6轴示意图
  4. 线性模型——异方差、序列相关、多重共线性与内生性的处理
  5. 使用ZRender绘制表格
  6. 漫画 |《帝都老板十二时辰》
  7. java培训记录Day18 2022/3/31星期四(super+多态+抽象类)
  8. 这个牛逼的国产低代码生成器!现在开源了
  9. 使用马尔可夫链构建文本生成器
  10. 今天,你薅支付宝羊毛了么?