粉尘传感器ZPH01驱动


title: ZPH01驱动

1 传感器说明

1.1 电气特性

粉尘传感器ZPH01驱动_第1张图片

1.2 管脚说明

粉尘传感器ZPH01驱动_第2张图片

1.3 驱动方式

粉尘传感器ZPH01驱动_第3张图片

1.4 数据处理

粉尘传感器ZPH01驱动_第4张图片
粉尘传感器ZPH01驱动_第5张图片
粉尘传感器ZPH01驱动_第6张图片

1.5 注意事项

粉尘传感器ZPH01驱动_第7张图片

2 驱动代码

2.1前言

该驱动使用的是串口方式,需要将模式脚拉低,封装最后输出的是浓度,单位是ug/m3。demo是基于和小伙伴一起封装的STM32f103C8系列单片机的底层驱动,编写语言是C++,平台是keil5。

2.2正文

该传感器是已经封装过一次的,他会每间隔1秒通过串口发送一次数据。而我要做的便是使使用者更加简单的获取到需要的数据。也就是进行了二次封装,将数据更新封装为updata()函数,数据获取封装成getdata()函数。
首先我们先来看下.H文件
粉尘传感器ZPH01驱动_第8张图片
由于该驱动与串口密切相关,所以我们的构造函数就传入一个串口。
mData由于暂存读出的一桢数据,mData_H 和L 是为了方便将数据传出到上位机添加的。用户在主函数在需要更新的时候调用updata 在需要得到数据时调用getdata就可以了。


接下来我们来看下updata函数
粉尘传感器ZPH01驱动_第9张图片
虽然模块一直给我们传输数据,但是调用更新函数是只保存最新的一组数据,并且进行校验和,如果正确取出浓度数据则返回true ,否则返回false。中间使用了一些usart封装的函数。


最后我们看下如何使用吧
粉尘传感器ZPH01驱动_第10张图片

3 实验结果

该实验结果有点意思,波动超级大,前一张图是没遮挡盒子中间三角空的数据,最高处是对其吹起的结果,后一个是用卫生纸挡住的效果。由于该传感器是光感,并且买了时间有点久,盒子里的镜头有写灰尘,影响了结果吧,好久找个棉签擦拭了再测试下。
粉尘传感器ZPH01驱动_第11张图片
粉尘传感器ZPH01驱动_第12张图片
这里写图片描述

4 相关下载

Github地址
CSDN下载
由于我将删掉GITHUB的这个仓库,所以把东西转移到了CSDN上

你可能感兴趣的:(嵌入式)