葉 黎,徐浩威,陳家海,白義霞,孫 煜,彭紹才,劉 勇
(華南農(nóng)業(yè)大學(xué) 電子工程學(xué)院,廣東 廣州 510642)
基于SQL Server數(shù)據(jù)庫的氣象和環(huán)境質(zhì)量監(jiān)測基站設(shè)計
葉 黎,徐浩威,陳家海,白義霞,孫 煜,彭紹才,劉 勇
(華南農(nóng)業(yè)大學(xué) 電子工程學(xué)院,廣東 廣州 510642)
傳統(tǒng)的氣象和環(huán)境質(zhì)量監(jiān)測系統(tǒng)有造價高,監(jiān)測點(diǎn)分布密度低等缺點(diǎn).本文基于SQL Server數(shù)據(jù)庫,以STM32、傳感器模塊、GPRS模塊、液晶顯示模塊和供電模塊,設(shè)計制作了一種模塊化的多功能無人值守的氣象和環(huán)境質(zhì)量自動監(jiān)測系統(tǒng)平臺.該平臺具有體積小、數(shù)據(jù)自動監(jiān)測、無線傳輸和建庫記錄等優(yōu)點(diǎn),可在系統(tǒng)中加入多個監(jiān)測終端,形成多點(diǎn)分布式監(jiān)測基站群.
大氣環(huán)境監(jiān)測;嵌入式系統(tǒng);數(shù)據(jù)庫;傳感器;GPRS
氣象監(jiān)測系統(tǒng)可以監(jiān)測溫度、濕度、降雨量和風(fēng)向等多種參數(shù),環(huán)境監(jiān)測系統(tǒng)則可以監(jiān)測空氣中的PM2.5和硫化物等污染情況.對于這些專業(yè)的監(jiān)測系統(tǒng),一方面由于設(shè)備造價高,需要經(jīng)常維護(hù),因此監(jiān)測點(diǎn)的數(shù)量較少,難以覆蓋各種特定區(qū)域?qū)崿F(xiàn)精確的監(jiān)控;另一方面,一般專業(yè)測量設(shè)備,其功能結(jié)構(gòu)和性能參數(shù)在設(shè)計時已經(jīng)確定,在使用過程中難以進(jìn)行更改或拓展.此外,目前國內(nèi)氣象監(jiān)測和環(huán)境監(jiān)控分屬兩個不同的部門主管,由于職能上的各自隸屬,環(huán)保和氣象部門各自建監(jiān)測站,各自采用獨(dú)立的監(jiān)測設(shè)備,客觀上造成了資源的浪費(fèi).目前,中國氣象局“大氣監(jiān)測自動化”項目正在實(shí)施,主要是在地級市安裝新一代天氣雷達(dá)和縣市級安裝多要素自動氣象站[1].按照規(guī)劃,自動氣象采集站將布到縣一級,因此,小型化和模塊化的氣象和環(huán)境質(zhì)量監(jiān)測基站的研制十分必要.
本文在分析國內(nèi)外環(huán)境參數(shù)監(jiān)測技術(shù)發(fā)展的基礎(chǔ)上,提出一種基于SQL Server數(shù)據(jù)庫的大氣環(huán)境質(zhì)量自動監(jiān)測基站群的方案,設(shè)計搭建了一種模塊化的多功能自動監(jiān)測系統(tǒng)平臺,從而實(shí)現(xiàn)一站多用,按任務(wù)需要自由組合監(jiān)測模塊,以及自動監(jiān)測、無線傳輸和建庫記錄等.該系統(tǒng)價格低廉、體積小、組合靈活、可無人值守,能實(shí)現(xiàn)環(huán)境或氣象等各種參數(shù)的定時自動監(jiān)測,可大大節(jié)省成本和增加監(jiān)測點(diǎn),對高精度覆蓋面廣的大氣監(jiān)測模式的構(gòu)建具有一定的參考作用.
氣象和環(huán)境參數(shù)監(jiān)測系統(tǒng)由監(jiān)測終端,GPRS通信網(wǎng)絡(luò)和電腦終端三大部分組成.其結(jié)構(gòu)如圖1所示[2].監(jiān)測終端主要包括氣象和環(huán)境參數(shù)的采集兩個部分,包括傳感器模塊和MCU等;GPRS通信模塊,負(fù)責(zé)與電腦終端建立通信鏈接,實(shí)現(xiàn)數(shù)據(jù)的傳輸.電腦終端負(fù)責(zé)將監(jiān)測終端發(fā)送的參數(shù),解析后存入SQL Server數(shù)據(jù)庫,并可以通過Windows桌面程序查看儲存在數(shù)據(jù)庫中的氣象和環(huán)境參數(shù).

圖1 氣象和環(huán)境質(zhì)量監(jiān)測系統(tǒng)結(jié)構(gòu)框圖
監(jiān)測終端由MCU控制各種傳感器進(jìn)行數(shù)據(jù)的采集與處理,同時將數(shù)據(jù)在液晶屏上實(shí)時顯示,并控制GPRS模塊收發(fā)數(shù)據(jù),主要包括MCU、傳感器模塊、GPRS模塊、顯示模塊、LED和供電模塊,3個LED作為工作狀態(tài)提示.監(jiān)測終端原理圖如圖2所示.

圖2 監(jiān)測終端原理圖
由于數(shù)據(jù)處理中要使用對數(shù)計算,指數(shù)計算,涉及較多浮點(diǎn)數(shù)的處理,并要對字符串進(jìn)行處理,需要芯片有較高主頻和較大的RAM,在考慮成本因素后,選用STM32F103ZET作為MCU.考慮到內(nèi)部RC振蕩器與外部晶振相比不夠精確和穩(wěn)定,故選用8MHz晶振作為外部高速振蕩器,32.768kHz晶振作為外部低速時鐘.電池在電源關(guān)閉后為RTC供電.由于需要從用戶Flash運(yùn)行代碼,將BOOT0引腳和BOOT1引腳接地.MCU電路見圖3.

圖3 MCU電路圖
GPRS模塊以華為GTM-900B無線通信模塊為核心,加上外圍電路、電源輸入接口、與MCU通信使用的接口、SIM卡接口以及天線組成.其內(nèi)嵌TCP/IP協(xié)議,可通過簡單的AT指令實(shí)現(xiàn)TCP/IP連接,使用UART接口與外部MCU通信,可實(shí)現(xiàn)無線發(fā)送和接收.
傳感器模塊包括溫度傳感器(DS18B20)、濕度傳感器(DHT11)、雨滴檢測模塊、聲音傳感器、MQ-7氣敏傳感器以及MQ-135氣敏傳感器單元電路各1個.其中,DS18B20和DHT11為數(shù)字輸出,其余4個傳感器為模擬電壓輸出.兩個數(shù)字輸出的傳感器都使用單總線數(shù)據(jù)接口,所以使用的6個傳感器只需要與MCU的4個I/O口連接就能完成數(shù)據(jù)的采集與讀取.所有傳感器統(tǒng)一由電源模塊供電.部分傳感器型號與性能指標(biāo)見表1.

表1 傳感器型號及性能指標(biāo)
本課題選用德國ARM公司針對嵌入式處理器的軟件開發(fā)工具Keil MDK.監(jiān)測終端軟件使用C語言編寫,并用到由意法半導(dǎo)體提供的固件庫.由Kiel MDK的相應(yīng)的編譯器進(jìn)行編譯,就可下載到處理器中完成相應(yīng)功能.
監(jiān)測終端的主要作用是采集環(huán)境參數(shù),通過GPRS網(wǎng)絡(luò)將數(shù)據(jù)以一定格式發(fā)送給特定的電腦.監(jiān)測終端的軟件流程為:系統(tǒng)初始化,包括設(shè)置系統(tǒng)時鐘、初始化I/O口、初始化USART接口、初始化傳感器;采集數(shù)據(jù);通過TCP協(xié)議與特定的電腦連接,并傳輸數(shù)據(jù),如數(shù)據(jù)傳輸不成功則將數(shù)據(jù)暫時儲存在處理器內(nèi)部的Flash閃存中;等待下一次數(shù)據(jù)傳輸.具體流程圖如圖4所示.

圖4 監(jiān)測終端軟件流程圖
電腦終端通過TCP連接從監(jiān)測終端獲取環(huán)境參數(shù),將數(shù)據(jù)存入數(shù)據(jù)庫中,并從數(shù)據(jù)庫中取出數(shù)據(jù)在主界面顯示.軟件使用微軟公司推出的VB(Visual Basic)語言,在Visual Studio 2013集成開發(fā)環(huán)境中編寫.數(shù)據(jù)庫采用微軟的Microsoft SQL Server 2012數(shù)據(jù)庫.軟件運(yùn)行于Windows操作系統(tǒng).
軟件以.NET Framework類為基礎(chǔ),并配合SQL Server數(shù)據(jù)庫技術(shù)和Socket網(wǎng)絡(luò)編程技術(shù)分別實(shí)現(xiàn)數(shù)據(jù)庫操作和網(wǎng)絡(luò)通信操作.
本課題中,電腦終端軟件有以下功能:顯示實(shí)時環(huán)境參數(shù)、歷史參數(shù)查詢、可由用戶選擇參數(shù)顯示方式(曲線圖或表格)、TCP連接的數(shù)據(jù)接收、數(shù)據(jù)庫操作.結(jié)構(gòu)圖如圖5所示.

圖5 電腦終端軟件結(jié)構(gòu)圖
主界面顯示信息并與用戶完成交互,軟件根據(jù)用戶的選擇從數(shù)據(jù)庫取出數(shù)據(jù),并根據(jù)要求以不同形式顯示數(shù)據(jù).通信模塊與主界面運(yùn)行于兩個獨(dú)立的線程,可以不間斷地對端口進(jìn)行監(jiān)聽.接收到信息后,從信息流中解析出各個參數(shù)存入數(shù)據(jù)庫.
通信模塊以Windows Sockets規(guī)范為基礎(chǔ).計算機(jī)建立TCP服務(wù)器后,啟動對相應(yīng)端口的監(jiān)聽,監(jiān)測終端就能夠與TCP服務(wù)器建立連接,發(fā)送數(shù)據(jù).
在窗體中添加 Background Worker,并在Background Worker的DoWork事件中編寫通信模塊程序.這樣,通信模塊就運(yùn)行于獨(dú)立的線程上.
數(shù)據(jù)庫選用Microsoft SQL Server 2012,使用SQL(Structured Query Language,結(jié)構(gòu)化查詢語句)進(jìn)行數(shù)據(jù)的操作和訪問.VB中使用ADO.NET類對數(shù)據(jù)庫進(jìn)行相應(yīng)的操作及訪問.
主界面有按鈕和日歷供用戶與軟件進(jìn)行交互,并根據(jù)用戶選則將相應(yīng)的數(shù)據(jù)以圖形或表格的形式進(jìn)行顯示.
主界面由實(shí)時數(shù)據(jù)顯示界面、歷史數(shù)據(jù)顯示界面和按鈕控制區(qū)域三部分組成.軟件啟動后,默認(rèn)為實(shí)時數(shù)據(jù)顯示界面,點(diǎn)擊“顯示歷史數(shù)據(jù)”按鈕,實(shí)時數(shù)據(jù)顯示界面隱藏,顯示歷史數(shù)據(jù)顯示界面.通過日歷選擇日期,當(dāng)天天氣數(shù)據(jù)在界面中顯示,并可點(diǎn)擊不同按鈕選擇圖形顯示或表格顯示數(shù)據(jù).
電腦端測試數(shù)據(jù)實(shí)時顯示界面如圖6所示,歷史參數(shù)顯示界面見圖7.
本設(shè)計是基于STM32嵌入式系統(tǒng)、GPRS通信網(wǎng)絡(luò)、Visual Studio運(yùn)行環(huán)境及數(shù)據(jù)庫技術(shù)設(shè)計的環(huán)境質(zhì)量和氣象參數(shù)監(jiān)測系統(tǒng).可完成對溫度、濕度、一氧化碳含量、硫化物含量等6種環(huán)境參數(shù)的自動監(jiān)測.經(jīng)長時間系統(tǒng)運(yùn)行測試,系統(tǒng)各模塊工作正常,監(jiān)測終端采集環(huán)境參數(shù),并通過GPRS通信網(wǎng)絡(luò)發(fā)送給電腦終端.電腦終端完成數(shù)據(jù)的接收和顯示.系統(tǒng)基本達(dá)到設(shè)計要求,并有較大的拓展空間.對系統(tǒng)軟件進(jìn)行簡單修改即可在系統(tǒng)中加入多個監(jiān)測終端,形成多點(diǎn)分布式監(jiān)測基站群.

圖6 電腦端實(shí)時數(shù)據(jù)顯示界面

圖7 歷史參數(shù)顯示界面
雖然系統(tǒng)達(dá)到設(shè)計要求,但由于實(shí)際條件限制還存在多處不足.例如監(jiān)測終端功耗較高,環(huán)境參數(shù)種類少、數(shù)據(jù)精度有待提高等,這些不足之處和發(fā)展方向?qū)⒃谕蟮墓ぷ髦屑右愿倪M(jìn)和實(shí)現(xiàn).
〔1〕但永平.基于GPRS的多要素自動氣象站[D].鄭州大學(xué),2005.
〔2〕汪勝輝.基于GPRS的空氣質(zhì)量監(jiān)測系統(tǒng)設(shè)計[D].湖南大學(xué),2008.
〔3〕蒙博宇.STM32 自學(xué)筆記(第二版)[M].北京:北京航空航天大學(xué)出版社,2012.29-100.
〔4〕Bryan Newsome.Beginning Visual Basic 2012[M].United States of American,Wiley Publishing,2012:417-482.
〔5〕華為技術(shù)有限公司.GTM900 GPRS模塊[S].華為技術(shù)有限公司,2006.
〔6〕ST Microelectronics.STM32 Reference Manual[S].意法半導(dǎo)體,2011.
TP274
A
1673-260X(2017)09-0036-03
2017-06-13
廣東省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201510564212)
赤峰學(xué)院學(xué)報·自然科學(xué)版2017年17期