title: ZPH01驱动
1 传感器说明
1.1 电气特性
1.2 管脚说明
1.3 驱动方式
1.4 数据处理
1.5 注意事项
2 驱动代码
2.1前言
该驱动使用的是串口方式,需要将模式脚拉低,封装最后输出的是浓度,单位是ug/m3。demo是基于和小伙伴一起封装的STM32f103C8系列单片机的底层驱动,编写语言是C++,平台是keil5。
2.2正文
该传感器是已经封装过一次的,他会每间隔1秒通过串口发送一次数据。而我要做的便是使使用者更加简单的获取到需要的数据。也就是进行了二次封装,将数据更新封装为updata()函数,数据获取封装成getdata()函数。
首先我们先来看下.H文件
由于该驱动与串口密切相关,所以我们的构造函数就传入一个串口。
mData由于暂存读出的一桢数据,mData_H 和L 是为了方便将数据传出到上位机添加的。用户在主函数在需要更新的时候调用updata 在需要得到数据时调用getdata就可以了。
接下来我们来看下updata函数
虽然模块一直给我们传输数据,但是调用更新函数是只保存最新的一组数据,并且进行校验和,如果正确取出浓度数据则返回true ,否则返回false。中间使用了一些usart封装的函数。
最后我们看下如何使用吧
3 实验结果
该实验结果有点意思,波动超级大,前一张图是没遮挡盒子中间三角空的数据,最高处是对其吹起的结果,后一个是用卫生纸挡住的效果。由于该传感器是光感,并且买了时间有点久,盒子里的镜头有写灰尘,影响了结果吧,好久找个棉签擦拭了再测试下。