粉塵感測器ZPH01驅動

2021-07-10 22:27:28 字數 1418 閱讀 4765

該驅動使用的是串列埠方式,需要將模式腳拉低,封裝最後輸出的是濃度,單位是ug/m3。demo是基於和小夥伴一起封裝的stm32f103c8系列微控制器的底層驅動,編寫語言是c++,平台是keil5。

該感測器是已經封裝過一次的,他會每間隔1秒通過串列埠傳送一次資料。而我要做的便是使使用者更加簡單的獲取到需要的資料。也就是進行了二次封裝,將資料更新封裝為updata()函式,資料獲取封裝成getdata()函式。

首先我們先來看下.h檔案

由於該驅動與串列埠密切相關,所以我們的建構函式就傳入乙個串列埠。

mdata由於暫存讀出的一楨資料,mdata_h 和l 是為了方便將資料傳出到上位機新增的。使用者在主函式在需要更新的時候呼叫updata 在需要得到資料時呼叫getdata就可以了。

接下來我們來看下updata函式

雖然模組一直給我們傳輸資料,但是呼叫更新函式是只儲存最新的一組資料,並且進行校驗和,如果正確取出濃度資料則返回true ,否則返回false。中間使用了一些usart封裝的函式。

最後我們看下如何使用吧

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

github位址

由於我將刪掉github的這個倉庫,所以把東西轉移到了csdn上

基於STM32 ZPH01粉塵感測器使用筆記

第一次發布部落格,有很多不懂.見笑了 zph01 每一秒會傳送一次資料 初次使用的時候建議預熱5分鐘以上.zph01 每一秒會傳送一次資料 初次使用的時候建議預熱5分鐘以上.建議拿膠布or遮光的東西遮擋住,硬體上方的三角口這樣可以保持數值的精準 紅外線的也準不到哪去,除非雷射的 我這裡選擇的是,使用...

GP2Y1010AU0F 粉塵感測器

鄭楠 今天拿了實驗室的粉塵感測器準備開始入手粉塵的檢測工作,拿了 gp2y1010au0f 粉塵感測器。又向客服要了規格說明書,開始研究。嗯,輸入電壓 5v ttl 串列埠通訊。恩 看來挺容易的,資料挺全,開始做吧。撲哧撲哧把電路撘完,接上電源,把測試 燒進去。然而 串列埠監視器的顯示 一片空白 我...

STM32串列埠接收粉塵感測器資料

本文章主要記錄stm32實現對粉塵感測器的資料採集及簡單處理。主要設計思路 1 串列埠初始化,包括gpio,外設時鐘,nvic等配置 2 串列埠中斷處理函式編寫,即通過接收中斷獲取資料並且儲存到陣列,同時注意判斷相關資料位 3 傳送資料,使用到了printf函式,需要重定向 4 主程式初始化。主要函...