您好,欢迎访问深圳市深恒安科技有限公司官网!
VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司
联系我们
VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司
邮箱:Gaspanda@163.com
电话:18028784534
地址:深圳市宝安区新安街道文雅社区宝民一路203号
当前位置: 主页 > 检测仪知识百科

检测仪知识百科

甲醛模组 甲醛检测模块
发布时间:2021-07-14 16:01浏览次数:

这几年买房、买车的朋友越来越多,当然我不在买房买车的行列,做开源的嘛,穷是必然的(笑)。新房装修、新车内饰的甲醛问题也随之而来。一些朋友网购了百十元的甲醛检测仪,也有三五百元的,找我来鉴定这些设备是否可靠。经过拆解部分的甲醛检测仪、以及在网上论坛的了解,发现甲醛检测仪这方面的水很深。比如,有些甲醛检测仪内部的传感器乃是十分廉价的模拟电路,有些甚至和抽油烟机的气体传感器同一级别。个别论坛里也有揭露,近千元的甲醛检测仪,打着进口的品牌,其实是廉价的传感器,以次充好。虽然廉价的传感器在检测甲醛时有一定的参考性,但其精确到和可靠性大打折扣。鉴于此柴油报警器,工作室设计了一款较为精准的DIY甲醛检测仪,可以测量甲醛数值、温湿度,并配有安卓APP显示。如图所示。

显示效果.jpg

这个设计有点bug:APP与LCD显示会有误差,经过研究,发现是安卓平台和单片机硬件的差异导致的,如下图:

误差演示.jpg

可以看到,app中显示甲醛浓度为0.362mg/m³,温度为30.2℃,而LCD12864显示的是0.363mg/m³和30.3℃,这是因为,单片机硬件在保留小数位的时候,自动向上取整了。比如实际读取到的温度是30.26℃,当保留1位小数时,应该是30.2℃,但实际结果是30.3℃(有兴趣的可以保留多位小数观察一下)。同时,安卓app这边,小数处理上也有类似的问题。不过这些误差是可以接受的,毕竟分辨率比较高了。

本设计由单片机系统、WZ-S型甲醛传感器、温湿度传感器、OLED显示、和蓝牙模块组成,其中,OLED显示屏和蓝牙模块可以同时兼有,也可以只取其一。只需要手机APP显示时,可以舍弃OLED显示部分;如果不需要手机APP显示,也可以舍弃蓝牙模块。 单片机使用STC15F2K系列增强型8051,该单片机具有两个UART串口,串口1用于甲醛模块数据的读取,串口2用于连接蓝牙模块。发送数据到安卓APP。该单片机I/O口可通过软件配置为开漏模式,用于Si7201通信。

模块说明甲醛检测模块

甲醛检测仪使用英国达特甲醛传感器,具有nqa ISO9001 和UKAS认证,采用电化学检测测原理,分辨率可达0.001ppm(换算为甲醛浓度为1.34μg/m³),与采用廉价的半导体传感器的甲醛检测备相比,测量数据更可靠,足够满足一般民用检测。

WZ-S型甲醛模块部分参数:

产品型号WZ-S

检测原理

燃料电池

检测气体

甲醛

检测量程

0-2ppm

最大过载

10ppm

供电电压

5-7V

预热时间

响应时间

(T 90 )

恢复时间

(T 10 )

分辨率

0.001ppm

工作温度

-20℃~50℃

工作湿度

10%-90%RH(非凝结)

存储温度

0~20℃

使用寿命

5 年(正常使用)

重量

4g

甲醛传感器内置数模转换电路,直接通过UART串口输出数字数据,用户只需要根据通信协议将数据进行转换便可得到甲醛浓度值。模块供电为5V,但TX和RX通信端口电压为3.3V,因此与5V单片机通信时,需要5V转3.3V电平转换模块,以免甲醛模块无法承受5V单片机I/O口的电压。

蓝牙模块

蓝牙模块为HC05,可通过AT指令配置主从模式,当与手机蓝牙通信时,需要配置为从模式。通过AT指令,仅需要配置如下参数:

电源模组和非模组_模组与非模组_甲醛模组

AT+NAME="XXX"配置模块名称AT+ROLE=0配置为从模式(ROLE=1为主模式)AT+CMODE=1配置为任意连接模式AT+PSWD=1234配置配对密码AT+UART=9600,0,0配置蓝牙串口波特率为9600,停止位1位,无校验位(和单片机串口参数一致)

蓝牙模块配置的时候有点坑,需要加个回车,有些串口助手软件自带了回车,需要注意。温湿度传感器

温湿度传感器使用Si7201模块,与DHT11相比,体积更小,测量精度更高。使用该模块时需要注意,模块需要3.3V供电柴油报警器,SDA和SCL端口与单片机连接时,单片机I/O口必须配置为开漏模式,否则有可能无法读到准确的数据。

软件设计

程序中,设定查询时间为5秒,即每隔5秒可查询一次甲醛浓度数据,甲醛模块收到单片机的查询指令后,溢出9字节的数据,存储在数组receive_buf[9]中。源代码中,给出了处理甲醛数据的方法:

方法1:直接读取receive_buf[2]、receive_buf[3]的浓度数据,把两个8位数据整合为float型,代码如下:

HCHO = (float) (receive_buf[2]<<8 | receive_buf[3]);
HCHO = HCHO/1000;   //μg转换为mg,1mg=1000μg

求助来的数值单位是μg/m³,除以1000便可得到mg/m³

方法2:读取receive_buf[6]、receive_buf[7]的ppb数据,把两个8位数据整合为float型,此时得到的单位是ppb,ppb除以1000,得到ppm值。

HCHO = (float) (receive_buf[6]<<8 | receive_buf[7]);   //求出ppb值
HCHO = HCHO / 1000 * 1.3393 ;                          //根据ppb得到ppm值,再换算为甲醛浓度

ppm(parts per million) 是百万分率(或百万分之几)是用溶质质量占全部溶液质量的百万分比来表示的浓度 。1ppm与mg/m³的关系为,X = C * M /22.4,其中,X是气体浓度质量分数,单位mg/m³;C是气体体积分数,量纲是ppm;M是气体相对分子质量(此处是甲醛),甲醛的分子式HCHO,相对分子质量为30。22.4空气在标准大气压下的相对分子质量。所以,1ppm甲醛气体体积浓度相当于:1ppm*30/22.4=1.3393mg/m³

上述方法选其一求出甲醛浓度后,格式化数据甲醛模组,最后输出到液晶屏显示。

温湿度传感器Si7201的数据较为简单,使用标准IIC协议读取数据,为节约篇幅,本文只介绍温湿度数据处理部分。数组Data_buf[]中,Data_buf[0]、Data_buf[1]分别存储温度高字节、温度低字节;Data_buf[2]、Data_buf[3]分别存储湿度高字节、湿度低字节。这些数据得到后,并不能直接合并后输出显示,而是要跟手册公式计算出数值。温度、湿度转换公式分别为:

湿度公式

温度公式

转换为C代码为:

temp_u16 = Data_buf[0] << 8 | Data_buf[1];    
tmp_value = 175.72 * temp_u16 /65536 - 46.85;   
temp_u16 = Data_buf[2]<<8 | Data_buf[3];
RH_value =  temp_u16;                       
RH_value = 125 * RH_value/65536-6;          

tmp_value为最终求得的温度数值,RH_value为最终求得的湿度数值。最后格式化数据,输出到12864显示。

现在,有了甲醛浓度数据、温湿度数据显示在液晶屏,如何发送到手机显示呢?此处借助蓝牙通信实现。单片机将得到的数据,通过串口2传输给蓝牙模块,蓝牙模块与手机蓝牙连接甲醛模组,获取单片机数据,APP用和单片机相同的方法处理数据后,得到数值并显示。单片机硬件和手机软件进行通信时,要制定一个数据通信协议,即硬件以一定的方式发送数据,手机软件收到数据后,根据一定的格式解析数据,解析后的数据与单片机显示的的数据应当一致。设定的通信协议如下:

012345678

帧头

甲醛浓度高位

甲醛浓度低位

温度高位

温度低位

湿度高位

湿度低位

校验位

帧尾

FA

0

0

0

0

0

0

0

FC

由于协议字节数不长,实际上甲醛模组,只校验了帧头和帧尾,没有加入实际的校验位,读者可根据自实际情况加入校验方法。甲醛浓数据、温湿度数据与单片机读取的数据格式完全一致,安卓程序中,套用单片机C代码中的公式即可得到实际数据。

资料下载: 戳我下载若资料失效,请留言告知

腾元达编辑,转载请注明出处

标签: 甲醛模组
请往下拉!