陳曦
摘要 本論文設計實現PM2.5污染物監測分析系統。通過查閱國內外文獻資料,了解了國內外對于PM2.5污染物防治政策與各種方法,明晰了國內外在大氣污染治理方面的總體局勢又學習了這些文獻中的先進技術。依據國內外大氣污染治理的經驗,結合我國目前PM2.5防治的現狀,設計并最終實現PM2.5污染物監測分析系統。
[關鍵詞]STM32 機車排放 微顆粒檢測
1 系統結構設計
本系統硬件系統采用了STM32F103RCT6為核心,所以首先能夠保證低功耗,低價格。而且由于STM32十分強大,在實時性上有著突出的優勢,因此在對PM2.5數據的處理和顯示上能夠做到很好的實時性。此外,STM32輸出穩定,抗干擾能力強,其工業級版本能夠在十分惡劣的環境下正常工作,因此它作為產品擁有較好的市場競爭力。
在單片機程序編寫中,采用了平均值濾波。在保證對環境變化快速響應的基礎上,排出了外界偶然因素的干擾。使PM2.5和PM10數據輸出穩定可靠,不會發生斷層式劇變,其響應曲線平滑,十分接近現實情況。程序經過不斷的調試和優化,最后具有很高的執行效率,既節約了CPU資源,又能使程序快速穩定的運行,得到想要的結果。例如,TFT屏的局部畫屏更新數據、PM數值從高數位到低數位的判斷、中斷的應用和鎖的應用、合理的程序時序邏輯和控制邏輯都為程序的快速運行做出巨大貢獻。
2 各模塊設計
2.1 控制器模塊設計
本硬件系統使用了STM32F103RCT6為核心控制器,它以ARM Cortex-M3內核,為32位MCU,屬于STM32系列中的增強型系列。擁有高速的工作頻率為72MHz,大容量存儲為RAM容量48K,程序存儲器容量為256K (Flash),且采用64-LQFP封裝。STM32F103RCT6還有著豐富的外設資源:4個16位普通定時器,2個16位高級定時器,2個16位基本定時器;這些定時器可用于精準延時、定時、產生PWM波以及根據不同的觸發信號產生中斷。3個SPI interface,2個I2C interface,3個通用同步異步收發器(USART),2個通用異步收發器(UART),1個USB interface,1個CAN interface; 這些通信方式更有利于STM32的開發與其他設備的互聯。1個SDIO interface,3個12位的ADC(且含有16個通道),2個12位的DAC;模數轉換為模擬信號和數字信號的采集、處理、輸出提供了極大的便捷。多達51個I/O引腳用于開發,可以與外部設備相連,產生高低電平信號或者PWM波等實用功能滿足項目需求。
2.2 無線傳輸模塊設計
NRF24L01是一款單片無線收發器芯片,它工作在2.4-2.5GHZ世界通用ISM頻段。它主要由功率放大器、頻率發生器、晶體振蕩器、增強型模式控制器、調制器以及解調器構成。在它的SPI接口能夠設置傳輸協議、頻道選擇以及輸出功率。
NRF24L01采用了內置的硬件鏈路層,擁有自動應答及自動重發功能,真正的GFSK單片式收發芯片,擁有Shock Burst增強型功能。地址及CRC檢驗功能,SPI接口速率選擇范圍廣:0-8MBPS,無線速率:1或2MBPS,很短的頻道切換時間,可用于調頻,125個可選工作頻道,20腳QFN 4*4mm封裝,與NRF 24XX系列完全兼容,10可接受5V電平的輸入,較低工作電壓:1.9-3.6V,極低成本晶振,使用低成本電感和雙面PCB板。
2.3 傳感器模塊設計
本系統采用的PM2.5傳感器SDS011采用激光散射來檢測PM2.5和PM10的實時數據。通過引腳進行數據包的輸出。進行了PM2.5數據包的接收之后,要進行數據的處理,所以這里設計了compute(uint16 t *shuzu)函數來對接收到的4個字節的PM數據包進行處理。這里首先是將接收到的數組傳遞給compute(uint16t *shuzu)函數,然后用變量high2和low2去接收PM2.5的高字節和低字節,同理,highl0和lowl0來接收PM10的高字節和低字節。
這里值得一提的是,本系統用到了平均值濾波,因為考慮到在實際的測量當中,SDS011很可能會出現因為某些突發因素(比如刮來一陣風沙)而導致PM數值斷層式劇增,而這顯然不是真正的此地區PM數值,因此特意設置了大小為5的數組,每當有新數據加入就會更新這個數組,然后取平均值,這樣得到的數據十分穩定。如果將這個PM2.5和PM10的曲線畫出,也應該是平穩的,而不是有斷層的劇增。
2.4 TFT顯示屏設計
本系統采用的是1.44寸TFT屏對下位機處理輸出的PM2.5和PM10的值進行實時顯示。這塊TFT屏既能用SPI引腳驅動,也可以用普通的GPIO腳來模擬SPI進行驅動。最少可以使用4個引腳就對TFT屏進行驅動。本驅動屏采用ST7735作為驅動芯片,既能夠顯示文字,也能夠顯示彩色圖片。背光模式采用白色的LED。分辨率為128*RGB*128,也就是說每行每列各有128個像素點能夠進行顯示。
在對TFT驅動編程里,首先就是對LCD進行初始化,通過向驅動芯片ST7735寫入命令字,從而控制LCD屏的顯示。然后,就是顯示我們所需要的內容,這里顯示“PM2.5實時檢測”,最后是并排的兩列實時數據分別在“PM2.5=”和“PM10=”之后顯示。而這里涉及到了一個關鍵問題,那就是如何顯示漢字。這里用到了一個字符取模軟件,通過它就能夠方便的將漢字轉換成十六進制的數組進行顯示了。
3 結束語
本論文完成了硬件系統的設計,包括PM2.5傳感器、TFT屏、2.4G無線傳輸模塊NRF24L01+的驅動編寫與硬件連接。對硬件系統的核心STM32F103RCT6進行下位機編程,構造了下位機的PM2.5檢測系統。能夠將PM2.5傳感器檢測到的PM2.5和PM10實時顯示在TFT屏上,與此同時通過NRF24L01+傳送給與PC相連接的其他NRF無線設備。
參考文獻
[1]北京市環保局.2015年空氣質量報告[R].北京:北京市環保局網站,201 5.
[2]劉火良,楊森.STM32庫開發實戰指南[M],北京:機械工業出版社,201 3.
[3]蒙博宇.STM32自學筆記第二版[M].北京:北京航空航天大學出版社,2014.