袁秋鳳
(寧德師范學院 信息與機電工程學院,福建 寧德 352100)
由于能源消耗結構的不合理,機動車尾氣排放和城市擴張性建筑揚塵等[1],造成我國大部分城市近幾年來霧霾天氣持續出現,大氣環境這一直接影響身體健康的外部因素也日益受到人們的重視.本文設計了一個遠程數據采集系統,可以實現溫濕度、光照強度和灰塵濃度這些重要大氣環境參數的連續采集和實時傳輸,既能作為大氣環境數據實時監測的一種手段,也能為人們的生產生活以及污染防治提供預警信息.
遠程大氣環境數據采集系統由上、下位機組成,如圖1所示.下位機負責遠程大氣環境數據的采集、顯示和傳輸,由主控制器、傳感器電路、顯示電路、WiFi通信接口電路和電源電路組成;上位機負責采集數據的顯示、分析和存儲,由計算機和監測軟件組成.上下位機之間的無線通信鏈路依托于3G網絡、Internet和WiFi局域網.

圖1 系統組成框圖
下位機主要由主控電路、傳感器電路、液晶顯示電路和WiFi通信接口電路組成,如圖2所示.
主控制器采用8位高性能單片機stc12c5a60s2,它不僅工作速度快、功耗低、抗干擾能力強,還自帶大容量的RAM和ROM、串口、定時器、ADC、PWM等片內硬件資源,將復雜外圍電路內裝化,極大地簡化了單片機系統的電路設計.圖2中的單片機最小系統電路,主要由內部時鐘電路、手動復位電路組成.
傳感器電路在單片機的控制下,實現環境中溫濕度、光照強度和灰塵濃度的采集.溫濕度傳感器采用單總線結構已校準數字信號輸出的dht11,其體積小、功耗低、響應快、可靠性高,可以應用到苛刻的環境中[2].圖2中P3的引腳2為串行數據輸出線.光強傳感器采用TMB封裝、I2C接口(或SMBus接口)、16位數字量輸出的TSL2561,它速度快、功耗低、量程寬,通過對其內部的16個寄存器和1個命令寄存器的編程和內容讀取,能夠設置不同的控制功能和獲取不同精度的AD轉換結果.本設計利用單片機的P2.2和P2.3引腳軟件模擬I2C的時鐘線和數據線實現數據的傳輸.圖2中P5的引腳1接3.3V直流電源,引腳2決定器件訪問地址,該引腳懸空表示TSL2561的地址為0111001.灰塵濃度檢測傳感器采用內部集成MCU的GP2Y1051AU0F,它利用微小顆粒物對光的散射和光敏原理,可實現直徑為10μm以下的顆粒(PM10)的檢測,電路接線簡單,僅需GND、VCC和TXD三根引腳接線即可工作,其中TXD引腳每10ms發送一次灰塵濃度脈沖信號.

圖2 下位機硬件電路
顯示電路使用點陣液晶模塊LCD12864,分四行分別顯示濕度、溫度、灰塵濃度和光照強度.
通信接口電路采用集成MCU的串口轉WiFi模塊ESP8266,該WiFi模塊支持AT和IOT兩種開發模式,允許用戶自己編寫ROM進行二次開發,可設置STATION、AP、AP+STATION三種工作模式,具有價格低、體積小、功耗低等優點,是一款在物聯網領域應用廣泛的WiFi模塊.圖2中ESP8266的引腳 8(TX)、4(RX)和單片機的 TXD、RXD 引腳交叉連接,引腳VCC接3.3V直流電源.
系統軟件包括下位機單片機控制程序和上位機計算機監測軟件兩部分,分別采用C51和LabVIEW編程.
下位機程序執行流程如圖3所示,系統初始化分別完成串口1、串口2、T0、T1和液晶的初始化操作,其中串口1用于實現采集數據的WiFi透傳,波特率為9600b/s,串口2用于傳輸灰塵濃度,波特率固定為2400b/s,T0用于定時30s,串口1采用T1作為波特率發生器,串口2采用獨立波特率發生器.

圖3 下位機程序流程圖
本設計采用WiFi透傳模式實現遠程現場和監測中心兩個局域網間的數據傳輸.監測中心的計算機應有固定公網IP或設置內網穿透功能,在遠程現場通過手機創建WiFi熱點作為無線路由器(也可將無線聯網計算機作為WiFi熱點),ESP8266連接至該WiFi熱點,通過TCP方式發送數據給監測中心的計算機.使用到的AT指令及功能如表1所示:

表1 AT指令及功能說明
dth11溫濕度傳感器輸出的數據為5字節,按照先后順序分別是濕度整數、濕度小數、溫度整數、溫度小數和校驗和,各占1字節,數據位0或1都是以50μs低電平開始,后續高電平為26~28μs表示數據位0,后續高電平為70μs表示數據位1.
GP2Y1051AU0F的TXD引腳發送的數據幀為7字節,包括起始字節(0xaa)、輸出電壓高低字節(VoutH、VoutL)、參考電壓高低字節(VrefH、VrefL)、校驗字節和結束字節(0xff),其中校驗字節=VoutH+VoutL+VrefH+VrefL.灰塵濃度Ud與輸出電壓之間滿足關系:Ud=K×(VoutH×256+VoutL)×2.5/1024,其中濃度系數K的取值可根據輸出電壓的范圍做調整.
TSL2561初始為掉電狀態,通過給內部控制寄存器寫命令03H使其上電,同時內部的兩個ADC通道ch0和ch1啟動默認為400ms的積分轉換過程,轉換結果分別保存在DATA0和DATA1的兩個16位數據寄存器中.采用I2C總線協議對TSL2561進行讀操作,如圖4所示,對TSL2561的一次讀操作僅讀取一個字節數據.

圖4 I2C協議讀字節操作流程
根據表達式Channe10=256×Data0High+Data0Low可分別計算出兩個通道的AD轉換值.再按照以下公式,可計算出光照強度值Lux(單位流明).

上位機監測軟件在NI公司的圖形化編程環境Lab-VIEW中開發,LabVIEW目前已更新至2018版,利用Lab-VIEW多樣化的工具包設計出的人機界面,可以實現工業自動化、測試測量、嵌入式應用、運動控制、圖像處理、計算機仿真、FPGA等不同技術領域的應用需求[3].上位機軟件采用生產者——消費者程序設計模式,基于TCP通信協議,用兩個隊列分別存放事件類型和采集數據,以波形圖表和數值顯示控件兩種方式同時顯示實時監測值,用電子表格方式存儲數據,便于后續對數據進行分析處理.用戶界面如圖5所示,圖中為實驗室環境下的監測數據.

圖5 上位機用戶界面
本文設計的大氣環境數據采集系統采用WiFi技術,能通過共享3G網絡數據流量,與Internet無縫連接,實現遠程數據的自動連續傳輸,系統具有結構簡單、工作穩定、傳輸距離廣等優點,不僅適用于遠程野外的大氣環境監測,也同樣適用于室內空氣質量監測.用戶還可以對系統軟硬件進行擴展,實現對臭氧、二氧化硫等其他大氣環境參數的監測.