黃 暉,余繼成,肖春明,曾 璐
(江西理工大學 電氣工程與自動化學院,江西 贛州 341000)
隨著生活水平不斷提高,人們愈發重視環境問題。目前,社會發展迅速,建筑工地日益增多,施工時對周圍環境造成污染,如空氣污染、噪聲污染、水污染、光污染等,給人們的生活帶來諸多不便[1]。
如果能及時監測環境參數的變化,便能盡早進行污染治理[2]。基于此,本文設計了一款基于STM32單片機的揚塵監測系統。
本系統主要包括電源模塊、主控制器模塊、數據采集模塊、顯示模塊和移動通信模塊。為了使用方便,本系統直接連接220 V交流電,再通過電源模塊將220 V交流電轉化為5 V的直流電,以便系統其他部分使用。主控制器通過STM32單片機處理數據采集模塊傳送的數據,并在顯示模塊實時顯示。
為方便遠程查看揚塵系統采集的環境數據,本系統特開發了一款專用微信小程序。移動通信模塊(NB-IoT模塊)通過HTTP網絡協議訪問服務器,將單片機處理后的數據上傳到服務器,之后微信小程序與服務器進行數據交互,獲取并顯示相關環境數據[3-4]。系統運行示意如圖1所示。
本系統選用STM32F103單片機作為控制器。它屬于中低端32位ARM微控制器,其芯片為ST公司出品的Cortex-M3內核。芯片內置128 KB閃存和20 KB SRAM高速存儲器,最大工作頻率為72 MHz,擁有多個I/O端口及與兩條APB總線聯接的外設。每個型號的STM32芯片都包含3個通用的16位定時器、2個12位的ADC、1個PWM定時器。此外,它還包含多個標準且先進的通信接口[5],如I2C、SPI、USART、USB、CAN 等。

圖1 系統運行示意圖
在本系統中,STM32F103單片機通過USART3連接數據采集模塊用以獲取溫度、濕度、PM2.5等數據;USART2連接移動通信模塊與服務器通信;SPI連接顯示模塊,將需要顯示的數據通過SPI發送到顯示屏[6]。
數據采集選用RS-BYH-M模塊。作為主要的環境數據采集器,RS-BYH-M模塊采用一體式設計,將傳感器安裝在百葉盒內,能便捷地測量周圍環境的空氣質量、噪聲、溫度、濕度、光照等參數[7-8]。由于STM32F103單片機無RS 485接口,故本系統通過將UART轉換成RS 485解決這一問題。
顯示模塊使用由12塊小LED模塊面板組成的LED顯示屏,采用12接口通信,通過四分之一掃描方式工作。單片機使用SPI通信接口循環發送數據,使LED顯示屏點亮相應的LED燈,從而顯示需要的字符。
NB-IoT模塊是移動通信模塊,使用的型號為M5310-A。該型號的NB-IoT模塊支持最新Release14標準,相比之前版本通信速率更高。此外,M5310-A還新增了遠程固件升級(FOTA)功能。
NB-IoT模塊具有尺寸小、功耗低、工作溫度范圍寬等特點,可用于智能家居、智能抄表、智慧城市、智慧農業等領域的數據傳輸服務。
本系統在STM32單片機上使用了RT-Thread操作系統[9]。它是一個嵌入式實時多線程操作系統,基本屬性之一是支持多個任務同時運行。RT-Thread還具有實時性高、占用資源少等特點。
系統軟件采用模塊化設計。其中,STM32單片機主要包括數據采集模塊、數據顯示模塊以及通信模塊。各模塊均使用RT-Thread系統的線程處理,并且三個線程之間使用郵箱通信:首先由數據采集模塊的線程讀取傳感器獲得數據并進行簡單處理,再通過郵箱將數據傳送至數據顯示模塊線程及通信模塊線程,數據顯示模塊線程接收到數據后,將其直接發送到LED顯示屏,NB-IoT模塊則將接收的數據發送到服務器[10]。系統軟件流程如圖2所示。

圖2 系統軟件流程
數據顯示模塊線程首先對數據顯示相關變量進行初始化,然后通過郵箱接收從數據采集模塊線程發送的帶有環境參數數據的郵件,經過相應處理后調用數據顯示函數將數據發送到顯示屏進行顯示。數據顯示流程如圖3(a)所示。
微信小程序使用微信原生的Request組件進行網絡請求。首先Request組件攜帶URL、賬號、密碼等信息向服務器發起請求,服務器收到請求信息后檢查自己是否存在所請求的資源,若存在,則返回狀態碼和所請求內容,否則返回錯誤信息。為了確保在網絡數據傳輸過程中所有操作的正確性,必須確認服務器返回的狀態均正確。微信小程序接收到請求數據后,對其進行解析并展示。微信小程序獲取數據流程如圖3(b)所示。

圖3 軟件流程
本系統的調試過程分為如下兩步:
(1)由STM32端進行數據采集顯示;
(2)通過服務器在微信小程序上顯示數據。
STM32端進行數據采集顯示時,需通過數據采集模塊將采集的溫度、濕度、噪聲、PM2.5、PM10等數據經過STM32單片機處理并顯示到液晶屏上。經過多次調試,結果符合預期。數據采集調試界面如圖4所示。
在對遠程數據顯示進行測試時,需把STM32單片機處理后的數據使用NB-IoT模塊HTTP協議的POST方法提交給服務器并存儲,微信小程序通過服務器獲取數據并顯示。微信小程序端測試結果符合要求。微信小程序數據查詢、顯示界面如圖5所示。

圖4 數據采集調試界面

圖5 微信小程序數據查詢、顯示界面
經過調試,本系統能很好地完成數據采集、數據顯示、數據上報、微信小程序查看測量環境數據等功能,基本實現了設計要求。另外,本系統選用的STM32單片機擁有強大的數據處理能力和眾多外設,資源十分豐富,可以在現有基礎上通過外接電路增加傳感器,從而獲取更多環境數據。如果有報警需求,還可以加入警報電路來實現報警功能。