沈華剛 洪香勤 都興隆
摘 要:文章針對城市中PM2.5進行分析監視,并把數據實行顯示在下位機和網絡端。有利于相關部門或個人獲得PM2.5數據信息,及時對惡劣污染作出反應,減少惡劣環境對人們的侵害。本系統由Arduino uno R3開發板、PM2.5傳感器、LCD液晶顯示模塊、蜂鳴器報警裝置、W5100等模塊組成,空氣中的PM2.5被傳感器采集,數據經過Arduino單片機處理后,顯示在LCD12864顯示屏上,并通過W5100把數據傳到網絡端,由C#接收數據并保存在數據庫中,同時在網絡端顯示數據和曲線。
關鍵詞:Arduino;實時監測;PM2.5
1 系統的總體設計思路
本設計所要介紹的是基于Arduino單片機的PM2.5檢測裝置及通過W5100上傳到網絡的網絡顯示系統。利用PM2.5傳感器檢測PM2.5值,經Arduino處理后在12864液晶顯示屏上顯示,供人觀測。將獲取的PM2.5值利用C#保存到SQL Server數據庫中利用C#,ECharts,JQuery技術將PM2.5值以折線的形式顯示在網頁中,可以顯示不同時段、不同間隔的PM2.5值,當檢測到的PM2.5值超過警戒值時,在下位機上蜂鳴器會發聲,同時在液晶屏上出現哭臉,在網絡端會發郵件給環境管理人員;當環境溫度正常時,在下位機上顯示笑臉,并顯示PM2.5數據[1]。
2 元器件的選擇
2.1 單片機部分
本系統采用Arduino單片機,該單片機常用于3D打印機的控制,是一塊基于開放源代碼新型開源單片機,包括12數字通道,4個PWM端口,8個ADC接口,Arduino簡單易學,使用類似Java,C語言編程開發環境。使用者可以快速使用Arduino與Flash或Processing等軟件實現常用的功能。
2.2 傳感器部分
選擇工作電壓為4.8~5.2 V夏普二代粉塵傳感器,其工作溫度-20~70 ℃,該傳感器內部集成單片機驅動算法,檢測到PM2.5數據直接通過傳感器的串口輸出。在編程時直接通過相應的單片機解析得到16位數據即可,數據輸出方式有模擬端口和串口兩種方式,在編程時可以利用模擬端口輸出電壓值Vo乘以修正系數K即得到PM2.5值;也可以利用串口輸出值Vo,實際應用時應該根據傳感器輸出的不同的電壓確定相應的灰塵質量分數[2]。
2.3 蜂鳴器
蜂鳴器是一種產生鳴叫的電子元器件,采用直流電源供電,在需要報警發聲或利用聲音起提示功能的電路中經常使用。蜂鳴器可以分為兩類:一類是利用電壓發聲的壓電式蜂鳴器,另一種是利用電磁感應原理發聲的電磁式蜂鳴器。
3 顯示部分
本次系統選擇了LCD12864液晶顯示屏作為PM2.5顯示部分,LCD12864液晶顯示屏支持串行和并行兩種模式,既可以顯示中文也可以顯示英文和表情符號,在編程時只要把中文和表情利用軟件轉換為二進制數據即可在該液晶屏上顯示,可直觀地顯示當前的PM2.5值。
LCD12864液晶顯示屏廣泛應用于單片機控制系統,可以顯示英文也可以顯示漢字、圖片、曲線等數據。LCD12864液晶顯示屏集成度很高,一般由行驅動芯片、數據控制芯片和列驅動芯片三大模塊組成,LCD12864液晶顯示屏帶由漢字庫,所以能夠顯示漢字和表情。Arduino單片機讀寫LCD12864液晶顯示屏數據實際上就是對LCD的控制芯片進行讀寫。利用Arduino單片機編程驅動LCD12864液晶顯示屏時,不需要對LCD12864液晶顯示屏的原理進行深入了解,只要調用Arduino的液晶顯示屏庫文件和相應的方法就可以了[3]。
LCD12864顯示屏使用時注意事項:(1)當使用LCD12864顯示屏時,在讀取數據時視線應該垂直于液晶顯示屏。(2)防止LCD12864顯示屏液晶屏跌落或撞擊,避免液晶顯示屏破裂。(3)液晶顯示屏表面避免有液體,當出現液體時盡快擦干以防止液晶屏腐蝕,降低顯示效果。(4)LCD12864顯示屏液晶屏液晶模組應在規定的溫度范圍內使用。(5)不要在LCD12864顯示屏的電源斷路器(Power Circuit Breaker,PCB)板上打孔,不要私自打開移動或修改顯示屏的元件。(6)避免靜電[4]。
4 數據處理及編程思路
夏普PM2.5傳感器接收到的數據按公式計算后轉換成電壓Vo的值,計算公式如下:Vo=(Vout(H)×256+Vout(L))/1 024×5。
例如:Vout(H)=0x01,轉換為10進制為1;Vout(L)=0xe0,轉換為10進制為224;則Vo=(1×256+224)/1024×5=2.344 V。
得到Vo的數值后,乘以灰塵修正系數K即可得到PM2.5的質量分數值:灰塵質量分數=K×Vo。
本系統實現PM2.5監測方案最基本的實現方法是由Arduino uno R3開發板、PM2.5傳感器、LCD液晶顯示模塊、蜂鳴器報警裝置、W5100等組件組成的電路,空氣中的PM2.5被傳感器采集,其數據經過Arduino單片機處理后,最終結果會在LCD顯示屏上顯示。PM2.5值高于報警值后,蜂鳴器會報警[5]。另外,本課題不僅能夠實時檢測PM2.5的質量分數,也可以根據當前檢測的PM2.5質量分數值是否超標做出反應,超標時蜂鳴器會報警,表情會變成哭臉。報警值可以預設程序中的臨界值,根據PM2.5檢測網的空氣質量新標準:優 0~35 μg/m3,良35~75 μg/m3,輕度污染75~115 μg/m3,中度污染 115~150 μg/m3,重度污染150~250 μg/m3,嚴重污染大于250 μg/m3及以上,故編寫下位機程序的思路如下。
檢測的PM2.5的質量分數值在300以下,蜂鳴器不鳴叫,表示環境未達到嚴重污染,表情為笑臉;檢測的PM2.5的質量分數值在300以上,蜂鳴器鳴叫,表示環境達到嚴重污染,表情為哭臉[6]。
對于網絡編程是將Arduino接收到的PM2.5值利用w5100將監測到的PM2.5值傳送W5100的網關http://192.168.1.177/,利用C#抓取http://192.168.1.177/網頁中的內容,分解得到PM2.5值并存入數組和數據庫,利用C#,AJAX,JSON,ECharts,JQuery技術將PM2.5值以折線的形式顯示在網頁中,可以顯示不同時段、不同間隔的PM2.5值,當檢測到的PM2.5值超過警戒值時,在網絡端會發郵件給環境管理人員[7]。可以統計每一周、每個月環境處于各個等級的天數,以表格中不同字體顏色和折線兩種方式反映PM2.5的情況。
5 程序運行情況
圖1是下位機的運行情況圖,當PM2.5正常的時候出現笑臉,并且顯示PM2.5的值。當檢測到的PM2.5值超過警戒值時,在下位機上蜂鳴器會發聲,同時在液晶屏上出現哭臉。
[參考文獻]
[1]蘇巧平,薛穎操,周一晨,等.基于MC9S12XS128MAA單片機的智能小車設計[J].新鄉學院學報(自然科學版),2013(3):195-198.
[2]高青,陳洪波,馮濤,等.老年人跌倒檢測系統的研究現狀與發展趨勢[J].醫療衛生裝備,2015(12):102-105.
[3]王旭東.基于Lab Windows/CVI7.1綜合檢測系統[J].今日電子,2007(8):38-40.
[4]于慶魁,王任飛,李科杰.引信零件微機控制在線尺寸檢測系統的探討[J].現代引信,1988(4):22-30.
[5]張文龍,徐蔭濃.微計算機檢測系統中提高分辨能力的一種方法及其應用[J].微計算機應用,1988(5):33-35.
[6]南江萍.一種甲醛檢測系統的設計[J].無線互聯科技,2016(23):47-48.
[7]鄭娛,鮑楠,徐禮勝,等.跌倒檢測系統的研究進展[J].中國醫學物理學雜志,2014(4):5071-5076.