甲醛酒精氢气浓度检测MP503传感器模块设计原理说明

  1. 模块简介:

    本模块采集MP503空气质量传感器信号,通过单片机的10位ADC对传感器信号采样,并通过气体浓度线性曲线算法计算出气体浓度,可计算出甲醛、酒精、氢气浓度值。模块以TTL串口作为数据输出接口。

     2.技术指标:

产品型号

KM-MP503

检测对象

甲醛、酒精、氢气浓度

通信接口

TTL串口

供电电压范围

5V

工作电流

60mA

测量量程

甲醛(0-50PPM)、酒精(0-100PPM)、氢气(0-100PPM)

预热时间

不小于6分钟

输出模式

可切换:1.自动上传 2.问答式

模块尺寸

24*20*16mm(长宽高)

通讯参数

默认波特率9600,停止位1,无校验

响应时间

≤60秒

恢复时间

≤60秒

  3.测量原理:

     当环境空气中有被检测气体存在时传感器电导率发生变化,该气体的浓度越高,传感器的电导率就越高。采用简单的电路即可将这种电导率的变化转换为与气体浓度对应的输出信号。

     电导率与电阻率互为倒数关系,即导电率=1/电阻率,电阻和电阻率的关系公式为R=ρL/S,即电阻的阻值与电阻率成正比,即气体浓度越大,电阻越小。下图为MP503官方手册提供的气体浓度检测电路:

         MP503传感器官方数据手册并未提供分压电阻RL阻值,我们需自行根据其提供的线性关系,先将分压电阻RL设置为2K,经过在纯净空气中(不含酒精等传感器敏感气体)测试,首次上电测量MP503模块预热30分钟待输出电压稳定后,测量得到电压输出约为0.3V,由电阻分压关系计算:

RL/(RL+RS)*5=0.3V   RS:传感器阻值   RL:负载阻值=2K

可得出传感器阻值RS≈31K。

接下来从MP503官方手册提供的检测气体浓度与输出电压的线性曲线图中,找到0ppm酒精浓度时对应输出电压约为1.25V,则假设RL未知,在RS=31K时,输出电压为1.25V,根据电阻分压关系:

RL/(RL+RS)*5=1.25V   RS=31K  

可得出RL≈10K,故可知传感器手册中负载电阻RL阻值为10K,

则设计采集电路中,RL采用10K阻值,以符合手册给出的线性曲线关系。

根据手册中气体浓度与输出电压值的线性曲线图:

从曲线图中找到气体浓度值与输出电压值对应如下:

对应电压(V)

甲醛浓度(ppm)

      1.25

0

  1.9

10

2.3

30

2.75

50

对应电压(V)

酒精浓度(ppm)

1.25

0

2.25

10

2.9

30

3.25

50

3.6

100

对应电压(V)

氢气浓度(ppm)

1.25

0

1.6

10

2

30

2.25

50

2.6

100

根据对应数值采用excel表格工具绘制各气体浓度值与电压值标准曲线如下:

例:y = 33.745x - 46.677即甲醛浓度标准曲线表达式,其中Y代表纵坐标为甲醛浓度,x为横坐标对应输出电压。这是一种曲线拟合方式,称为最小二乘法,根据几组对应数据即可求出函数关系表达式。本模块板载MCU自带内部10位分辨率AD转换器采集输出电压,通过代入曲线函数运算转换即可得到甲醛浓度值,酒精及氢气浓度的计算采用其对应曲线函数转换亦可得知。

关于最小二乘法的原理可参考:最小二乘法的本质是什么? - 知乎

注意:根据输出电压计算出的这三种气体浓度值,仅代表传感器处在一种气体环境下的测量值。如我们确定传感器处在只有甲醛气体存在的环境中,则模块计算所得的甲醛浓度值就能作为甲醛浓度的真实值,反之如果不确定环境中是否还存在酒精或氢气等对传感器有干扰作用的气体,那么模块计算得到的甲醛浓度值就无法确定是否为真实的甲醛浓度值。

4.串口协议

   模块默认主动上传数据模式,每间隔1S上传一次数据,数据格式如下:

模块返回

byte0

byte1

byte2

byte3

byte4

byte5

byte6

byte7

byte8

起始位

0x86

AD值

甲醛

(PPB)

酒精(PPM)

氢气

(PPM)

校验值

0xFF

 指令

 高字节

低字节

高字节

低字节

0

0

--

EXP.

FF 86 01 1C 00 A3 00 00 BA

注:1PPM=1000PPB       PPM转换成mg/m3 的系数为1.23   即mg/m3=1PPM*1.23

例: FF 86 01 1C 00 A3 00 00 BA

AD值: 0x01 0x1C  即284   

甲醛: 0x00  0xA3   即 163 PPB = 0.163 PPM = 0.200 mg/m3

酒精:0x00 = 0 PPM

氢气:0x00 = 0 PPM

如用户需要切换模块为问答模式,需向模块发送如下指令:

下发指令

0x86

读传感器浓度值

向模块发送

byte0

byte1

byte2

byte3

byte4

byte5

byte6

byte7

byte8

起始位

地址

命令

--

--

--

--

--

校验值

0xFF

0x01

0x86

0

0

0

0

0

0x79

EXP.

FF 01 86 00 00 00 00 00 79

模块返回

byte0

byte1

byte2

byte3

byte4

byte5

byte6

byte7

byte8

起始位

0x86

AD值

甲醛

(PPB)

酒精(PPM)

氢气

(PPM)

校验值

0xFF

 指令

 高字节

低字节

高字节

低字节

0

0

--

EXP.

FF 86 01 1C 00 A3 00 00 BA

  用户如需改为自动上传模式,需向模块发送以下指令:

下发指令

0x87

设置为自动上传模式

向模块发送

byte0

byte1

byte2

byte3

byte4

byte5

byte6

byte7

byte8

起始位

地址

命令

--

--

--

--

--

校验值

0xFF

0x01

0x87

0

0

0

0

0

0x78

EXP.

FF 01 87 00 00 00 00 00 78

5.模块连接及安装尺寸图:

6.上位机测试方法

模块可通过外接USB转串口模块与电脑上位机通信,查看USB转串口模块在电脑上的端口号,在电脑设备管理器中查看,端口号因个人电脑而异,如下图:

一定要保证USB转串口模块与MP503模块的串口要交叉连接,即

打开上位机软件,并选择相应串口号(例如本机电脑端口号为3),如下图:

模块链接:   

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-23054510655.2.2826230aQMGgLM&id=755259608914

### 甲醛检测模块开发及相关技术 #### 硬件选型与设计 在开发甲醛检测模块时,可以选择适合的硬件设备来完成数据采集的任务。例如,在新装修房屋场景下,可以选用带有4G模组的通信方式,将甲醛传感器的数据上传至云端[^2]。这种方案解决了新房可能缺乏Wi-Fi信号的问题,同时利用ShineBlink这样的低代码开发板和机智云平台,使得开发者无需深入了解嵌入式编程即可快速构建完整的物联网解决方案。 另一种选择是使用Ruff开发板搭配DHT11温湿度传感器和其他气体传感器(如SDS011),并通过MQTT协议将数据传输到华为云IoT平台进行进一步处理[^1]。对于更复杂的项目需求,则可考虑基于GD32F470微控制器自行移植驱动程序并集成特定类型的甲醛传感器[^4]。 #### 软件架构与数据处理 针对所收集到的原始传感数据,需建立相应的算法模型来进行有效解析与展示。通常情况下会先经过简单的滤波操作去除噪声干扰项;之后依据具体应用场景的要求决定是否需要执行校准补偿措施以提高精度水平。最后这些经过预处理后的结果会被存储于数据库之中或者直接推送给前端应用程序供用户查阅。 如果涉及到大规模部署以及长时间连续监测的需求,则还需要考虑到系统的稳定性和扩展能力等方面因素。此时可以通过引入边缘计算节点减轻中心服务器的压力,并且配合自动化运维工具保障整体网络运行状态良好。 ```python import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client = mqtt.Client() client.on_connect = on_connect # 连接到指定broker地址 client.connect("mqtt.example.com", 1883, 60) while True: formaldehyde_level = read_formaldehyde_sensor() # 假设此函数用于读取甲醛浓度值 client.publish("home/formaldehyde", payload=formaldehyde_level) ``` 上述代码片段展示了如何通过Python库`paho-mqtt`实现向MQTT代理发布消息的功能。实际应用过程中可根据实际情况调整主题名称、QoS等级等相关参数设置。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

>行者<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值