粉塵傳感器ZPH01驅動


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 實驗結果

該實驗結果有點意思,波動超級大,前一張圖是沒遮擋盒子中間三角空的數據,最高處是對其吹起的結果,後一個是用衛生紙擋住的效果。由於該傳感器是光感,並且買了時間有點久,盒子裏的鏡頭有寫灰塵,影響了結果吧,好久找個棉籤擦拭了再測試下。
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

4 相關下載

Github地址
CSDN下載
由於我將刪掉GITHUB的這個倉庫,所以把東西轉移到了CSDN上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章