惠鵬飛,姚仲敏,陶佰睿,苗鳳娟
(齊齊哈爾大學(xué)通信與電子工程學(xué)院,黑龍江 齊齊哈爾 161006)
責(zé)任編輯:薛 京
近幾年來(lái),國(guó)內(nèi)外發(fā)生的多起重大森林火災(zāi),給生態(tài)環(huán)境帶來(lái)嚴(yán)重破壞,也嚴(yán)重威脅著人們的生命和財(cái)產(chǎn)安全,做好森林防火工作對(duì)保護(hù)生態(tài)環(huán)境和國(guó)家的可持續(xù)發(fā)展具有重大意義。傳統(tǒng)的森林火災(zāi)的監(jiān)測(cè)措施主要以探測(cè)火源和預(yù)防為主,采用地面巡防、航空巡防等方法,這些方法難以反映森林的溫度、濕度、空氣中二氧化碳含量等氣象因素動(dòng)態(tài)變化的情況,從而導(dǎo)致監(jiān)測(cè)信息實(shí)時(shí)性較差,監(jiān)測(cè)效果并不十分理想,實(shí)際應(yīng)用情況受到限制[1-2]。
本文基于單片機(jī)和GPRS技術(shù),設(shè)計(jì)了森林防火預(yù)警遠(yuǎn)程數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)能夠?qū)ι指魑恢玫臄?shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè),并及時(shí)將相關(guān)數(shù)據(jù)發(fā)送到數(shù)據(jù)中心,通過(guò)對(duì)森林各項(xiàng)指標(biāo)的分析,了解森林各地點(diǎn)的信息情況,做到防患于未然,在第一時(shí)間消除隱患,減小人力、物力的浪費(fèi)以及經(jīng)濟(jì)損失。設(shè)計(jì)結(jié)果表明,該系統(tǒng)可在森林防火領(lǐng)域廣泛推廣,具有重要的理論參考價(jià)值和實(shí)用價(jià)值。
傳輸系統(tǒng)包括硬件和軟件兩部分,數(shù)據(jù)采集端的系統(tǒng)硬件以單片機(jī)和GPRS模塊為核心。軟件設(shè)計(jì)包括上位機(jī)軟件、下位機(jī)軟件以及數(shù)據(jù)庫(kù)。單片機(jī)通過(guò)使用AT命令控制GPRS模塊工作,將森林內(nèi)的信息數(shù)據(jù)傳輸出去,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)倪^(guò)程,對(duì)森林的各項(xiàng)信息進(jìn)行實(shí)時(shí)監(jiān)測(cè),數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi),可以對(duì)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)進(jìn)行查詢。
利用串口實(shí)現(xiàn)單片機(jī)與GPRS模塊的互聯(lián),GPRS模塊采用SIMCON公司開(kāi)發(fā)的具有GSM/GPRS雙頻特性的SIM300模塊。GPRS無(wú)線通信已經(jīng)被模塊化,用戶只需要負(fù)責(zé)GPRS模塊與自己的處理器之間的通信,即可實(shí)現(xiàn)GPRS無(wú)線通信[3-4]。上位機(jī)軟件設(shè)計(jì)主要以 Borland C++Builder6.0界面編程軟件為開(kāi)發(fā)平臺(tái),利用Socket套接接口組件實(shí)現(xiàn)網(wǎng)絡(luò)通信,利用ADO控件實(shí)現(xiàn)與SQL Server 2000數(shù)據(jù)庫(kù)進(jìn)行連接。在下位機(jī)軟件設(shè)計(jì)中,主要包括系統(tǒng)程序的設(shè)計(jì)和AT指令的發(fā)送,采用Keil4編寫(xiě)單片機(jī)程序,從而實(shí)現(xiàn)單片機(jī)發(fā)送AT指令,控制GPRS模塊工作。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
SIM300模塊擁有天線連接器和天線焊點(diǎn)兩種RF天線接口,內(nèi)部集成了TCP/IP協(xié)議棧,同時(shí)擴(kuò)展了TCP/IPAT指令[5]。SIM300模塊的雙串行通信接口,包括串口1和串口2,其中串口1的接口具有7根數(shù)據(jù)、狀態(tài)線,可以用作GPRS服務(wù)和發(fā)送控制模塊AT命令,同時(shí)可以使用多路復(fù)用功能,此功能不能和串口2同時(shí)使用,默認(rèn)比特率為115 200 bit/s[6]。串口2的接口只有TXT和RXD兩根數(shù)據(jù)線,沒(méi)有狀態(tài)和控制線,此外,串口2只能用來(lái)傳輸AT命令。
以MCU為控制端的無(wú)線通信模塊應(yīng)用開(kāi)發(fā),通常是用單片機(jī)直接與模塊的串口連接,然后在MCU中編寫(xiě)程序來(lái)控制模塊,SIM300模塊的串口管腳工作電平是TTL電平,單片機(jī)的串口管腳的工作電平也是TTL電平,因此,SIM300模塊的串口線直接與單片機(jī)的串口線進(jìn)行連接。
SIM300的供電采用LM2576芯片。LM2576芯片是一款高電流、高精度、低壓差穩(wěn)壓器,能提供降壓開(kāi)關(guān)穩(wěn)壓器的各種功能,能驅(qū)動(dòng)3 A的負(fù)載,有優(yōu)異的線性和負(fù)載調(diào)整能力,在固定輸出電壓和輸出負(fù)載條件下保證輸出電壓 +4%誤差[7]。SIM300 模塊的工作電壓是3.4 ~4.5 V,模塊在發(fā)送是電流約2 A,會(huì)因線路阻抗產(chǎn)生壓降使VBAT電壓不穩(wěn),因此,對(duì)模塊的供電不大于2 A流量。電源電路圖如圖2所示。
圖2 電源電路圖
電源對(duì)模塊非常重要,一旦電源上產(chǎn)生擾動(dòng)、干擾,都可能造成模塊的死機(jī),因此在電源管腳上應(yīng)放置電容,并行連接。
本系統(tǒng)選擇BorlandC++Builder 6.0作為軟件界面設(shè)計(jì)的工具。系統(tǒng)主界面主要包括GSM、GPRS和查詢窗口3個(gè)部分,使用者通過(guò)點(diǎn)擊按鈕進(jìn)入軟件管理。主菜單界面添加MainMenu組件,添加GSM、GPRS和查詢3個(gè)按鍵,當(dāng)?shù)卿涇浖缑婧?,打開(kāi)主菜單界面,點(diǎn)擊按鍵,可進(jìn)行信息查詢。
通過(guò)主菜單進(jìn)入到GPRS界面,當(dāng)程序執(zhí)行后將顯示網(wǎng)絡(luò)連接到的本地IP地址,以及程序中設(shè)置的PC端口等信息,同時(shí)當(dāng)點(diǎn)擊“IP_Get”按鈕后,將獲取到公網(wǎng)IP地址。GRPS界面主要包括公網(wǎng)地址IP、本地地址IP、對(duì)方IP、GPRS發(fā)送和GPRS接收等編輯顯示框。
查詢界面設(shè)計(jì)包括對(duì)對(duì)森林溫度、濕度、空氣中二氧化碳含量、風(fēng)速以及監(jiān)測(cè)地點(diǎn)的數(shù)據(jù)顯示。在ComboBox編輯框內(nèi)可以搜索Temperature,Humanity等信息,通過(guò)點(diǎn)擊Button組件的“搜索”按鍵,顯示數(shù)據(jù)庫(kù)中所存儲(chǔ)的數(shù)據(jù)變化情況,從而及時(shí)了解影響森林火災(zāi)發(fā)生的數(shù)據(jù)信息,查詢部分界面設(shè)計(jì)主要用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)信息的查詢和顯示功能。調(diào)整組件布局后GPRS界面如圖3所示。
圖3 GPRS界面(截圖)
選擇SQL Server 2000作為數(shù)據(jù)庫(kù)平臺(tái),數(shù)據(jù)庫(kù)全面支持Web,可以利用Web分析、處理、查詢數(shù)據(jù),因此,這種數(shù)據(jù)庫(kù)解決方案是完全支持Web的。它具有的客戶機(jī)/服務(wù)器(C/S)體系結(jié)構(gòu),采用了Transact-SQL語(yǔ)言在客戶機(jī)與服務(wù)器之間傳遞客戶機(jī)的請(qǐng)求與服務(wù)器的處理結(jié)果。數(shù)據(jù)庫(kù)表根據(jù)實(shí)體屬性定義各個(gè)字段名稱,設(shè)置主鍵可以避免表內(nèi)容的重復(fù)沖突,表中要根據(jù)列名來(lái)定義不同的數(shù)據(jù)類型,如溫度和相對(duì)濕度等可以定義為char型,二氧化碳含量和風(fēng)速定義為char型,并且可以設(shè)置不同的長(zhǎng)度來(lái)滿足需求。以下是根據(jù)需求設(shè)計(jì)的部分?jǐn)?shù)據(jù)庫(kù)表格。監(jiān)測(cè)信息表如表1所示。
表1 監(jiān)測(cè)信息表
Socket實(shí)際在計(jì)算機(jī)中提供了一個(gè)通信端口,能夠利用這個(gè)端口與其他任何擁有Socket接口的計(jì)算機(jī)進(jìn)行通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸和接收的信息都是利用Socket接口實(shí)現(xiàn)的。實(shí)現(xiàn)網(wǎng)絡(luò)通信的過(guò)程需要4個(gè)條件:1)通信協(xié)議相同;2)通信端口相同;3)遠(yuǎn)程IP地址和實(shí)際物理IP地址相同;4)當(dāng)傳輸端發(fā)送數(shù)據(jù)的時(shí)候,上位機(jī)處于端監(jiān)聽(tīng)狀態(tài)。當(dāng)上位機(jī)端的服務(wù)開(kāi)啟以后,首先建立連接,監(jiān)聽(tīng)終端的Listen Port端口,Accept接受連接請(qǐng)求并發(fā)出確認(rèn),三次握手完成,雙方即可實(shí)現(xiàn)通信,網(wǎng)絡(luò)通信程序框圖如圖4所示。
圖4 網(wǎng)絡(luò)通信流程框圖
單片機(jī)提供一系列AT命令來(lái)完成TCP/IP協(xié)議的功能,以簡(jiǎn)化應(yīng)用集成的流程。AT命令是一套用于調(diào)制解調(diào)器控制的命令,通常以“AT”開(kāi)頭。相關(guān)的命令可以建立或取消UDP和TCP協(xié)議,控制GPRS PDP Context(用于數(shù)據(jù)傳輸?shù)倪B接)的建立,傳送數(shù)據(jù),檢查IP的狀態(tài)信息。
系統(tǒng)程序利用C51編寫(xiě),運(yùn)用模塊化的設(shè)計(jì)思想,主要分為系統(tǒng)初始化、建立連接、數(shù)據(jù)傳輸以及斷開(kāi)連接模塊4部分。單片機(jī)初始化部分串口設(shè)置為工作方式1,即8位數(shù)據(jù)位和1位停止位;定時(shí)器選用定時(shí)器1的工作方式2,即8位自動(dòng)重裝定時(shí)器,波特率設(shè)為119 200 baud,所以定時(shí)器1初值分為T(mén)H1=0xFD,TL1=0xFD。初始化時(shí)先將串口終端關(guān)閉,在與上位機(jī)建立連接后打開(kāi)。
主函數(shù)對(duì)硬件設(shè)備的初始化,進(jìn)入無(wú)限循環(huán),在循環(huán)體內(nèi)部反復(fù)執(zhí)行鍵盤(pán)輪詢,串口事件處理和鍵盤(pán)事件處理。函數(shù)MsgEvent()為串口事件處理函數(shù),按鍵按下之后會(huì)發(fā)送相應(yīng)的AT指令,控制GPRS模塊進(jìn)行工作。GPRS模塊接收到AT指令后會(huì)執(zhí)行相應(yīng)的操作,同時(shí)返回操作結(jié)構(gòu),本函數(shù)就是根據(jù)GPRS返回的操作結(jié)果判斷模塊是否正常運(yùn)行,并顯示相應(yīng)的信息。
在進(jìn)行硬件調(diào)試之前,應(yīng)該先對(duì)GPRS模塊進(jìn)行基本功能的測(cè)試。在測(cè)試過(guò)程中,首先應(yīng)將SIM300模塊上插入SIM卡,將模塊的外圍擴(kuò)展電路板和天線連接好,打開(kāi)電源,此時(shí)顯示SIM300模塊的工作指示燈將亮起,將SIM300模塊的UART1口和計(jì)算機(jī)的串口通過(guò)串口電纜連接起來(lái),選擇通信端口“COM1”,按“打開(kāi)串口”鍵,界面指示燈顯示為綠色,說(shuō)明串口連接成功,可以進(jìn)行數(shù)據(jù)發(fā)送,此時(shí),輸入AT指令即可進(jìn)行SIM300模塊的基本功能調(diào)試。
在發(fā)送數(shù)據(jù)窗口發(fā)送AT,按下“發(fā)送數(shù)據(jù)”按鈕,在接收數(shù)據(jù)窗口返回OK,表明測(cè)試成功。發(fā)送AT+CMGF=0指令,短信模式設(shè)置,返回值OK;發(fā)送AT+CMGR=1,讀取SIM卡內(nèi)的第一條短信,按下“發(fā)送數(shù)據(jù)”按鍵,顯示接收數(shù)據(jù),為Unicode碼,通過(guò)漢字Unicode碼轉(zhuǎn)換工具,即可將數(shù)據(jù)轉(zhuǎn)換為漢字,讀取信息。
單片機(jī)通過(guò)發(fā)送AT指令控制SIM300模塊,對(duì)模塊接收?qǐng)?zhí)行指令后的返回值,并進(jìn)行相應(yīng)校驗(yàn)。單片機(jī)的串口實(shí)質(zhì)上是以位為單位進(jìn)行接收和發(fā)送的,利用協(xié)議預(yù)定義的起始位、校驗(yàn)位以及停止位來(lái)決定數(shù)據(jù)幀的封裝格式。
用單片機(jī)發(fā)送AT指令,在發(fā)送指令的過(guò)程中,AT指令的字符格式要通過(guò)ASCII編碼進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成二進(jìn)制數(shù)之后,將指令存儲(chǔ)在ROM中,從而利用串口進(jìn)行接收和發(fā)送,AT指令是以字節(jié)的形式進(jìn)行發(fā)送的,按回車(chē)按鍵表示一條指令發(fā)送結(jié)束。當(dāng)模塊收到一條指令之后,GPRS模塊開(kāi)始執(zhí)行這條指令。此外,在單片機(jī)發(fā)送指令的過(guò)程中,字節(jié)之間可以出現(xiàn)間隔。當(dāng)模塊執(zhí)行完指令之后,模塊的返回值以“OD”、“OA”字符開(kāi)始和結(jié)束。
在測(cè)試過(guò)程中,將SIM卡放入到GPRS模塊中,通過(guò)單片機(jī)按鍵,實(shí)現(xiàn)單片機(jī)發(fā)送AT指令,控制GPRS模塊,以短信的形式發(fā)送數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸。單片機(jī)與GPRS模塊進(jìn)行串口通信如圖5所示。
圖5 單片機(jī)與GPRS模塊進(jìn)行串口通信(照片)
在SQL Server2000數(shù)據(jù)庫(kù)中對(duì)可以對(duì)到森林溫度、濕度、空氣中二氧化碳含量、風(fēng)速等信息進(jìn)行查詢,同時(shí)在數(shù)據(jù)庫(kù)可以顯示森林監(jiān)測(cè)信息的地點(diǎn)和監(jiān)測(cè)日期。系統(tǒng)程序啟動(dòng),進(jìn)入系統(tǒng)主菜單界面后,點(diǎn)擊“查詢”按鍵,可以對(duì)數(shù)據(jù)庫(kù)內(nèi)所存儲(chǔ)的溫度、濕度、風(fēng)速、空氣中二氧化碳含量等信息進(jìn)行查詢,同時(shí)在界面中顯示出數(shù)據(jù)庫(kù)內(nèi)所存數(shù)據(jù)一段時(shí)間內(nèi)的數(shù)據(jù)變化曲線,以便更加具體、直觀地反映森林?jǐn)?shù)據(jù)信息的變化情況。
此外,數(shù)據(jù)曲線對(duì)比編輯框內(nèi),為了清晰、方便地進(jìn)行數(shù)據(jù)信息查詢,可同時(shí)對(duì)溫濕度、風(fēng)速等信息顯示,因此,如圖6所示分別使用不同的曲線進(jìn)行數(shù)據(jù)信息顯示。其中,曲線④代表溫度變化情況,曲線②代表空氣中二氧化碳含量變化情況,曲線①代表濕度變化情況,曲線③代表風(fēng)速變化情況。
圖6 信息變化曲線圖(截圖)
在設(shè)計(jì)過(guò)程中,為了實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸?shù)倪^(guò)程,采用短信的形式進(jìn)行發(fā)送,為了彌補(bǔ)這一缺陷,利用C++Builder軟件及軟件的Socket控件模擬下位機(jī)進(jìn)行數(shù)據(jù)傳輸測(cè)試,在單機(jī)模擬中,當(dāng)模擬界面與上位機(jī)傳輸連接成功后,即可進(jìn)行數(shù)據(jù)傳輸。在通信的過(guò)程中,在模擬界面內(nèi),可以實(shí)現(xiàn)將數(shù)據(jù)發(fā)送到上位機(jī)GPRS數(shù)據(jù)接收系統(tǒng)中。同樣,在GPRS界面中,上位機(jī)同樣可發(fā)送數(shù)據(jù)到模擬界面,實(shí)現(xiàn)雙方通信。數(shù)據(jù)發(fā)送實(shí)現(xiàn)結(jié)果如圖7所示。
圖7 發(fā)送數(shù)據(jù)結(jié)果顯示圖(截圖)
本文針對(duì)傳統(tǒng)森林防火巡防方式信息化水平低且無(wú)法實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)等問(wèn)題。設(shè)計(jì)了基于GPRS技術(shù)的森林防火遠(yuǎn)程數(shù)據(jù)傳輸系統(tǒng),采用單片機(jī)和GPRS技術(shù)以及Microsoft SQL Server 2000與Borland C++Builder 6.0界面編程軟件相結(jié)合實(shí)現(xiàn)系統(tǒng)設(shè)計(jì),采用單片機(jī)和GPRS模塊進(jìn)行串口通信方式,通過(guò)單片機(jī)發(fā)送AT指令控制GPRS模塊,從而搭建系統(tǒng)的硬件框架,以短信的形式將數(shù)據(jù)發(fā)送至主控中心,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中森林各項(xiàng)數(shù)據(jù)信息的實(shí)時(shí)監(jiān)測(cè),能夠在一定程度上預(yù)防森林火災(zāi)的發(fā)生。該系統(tǒng)可在森林防火領(lǐng)域廣泛推廣,具有重要的理論參考價(jià)值和實(shí)用價(jià)值。
[1]馬宏鋒,李祥林,胡玫.森林火災(zāi)無(wú)線監(jiān)測(cè)預(yù)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,2011,32(12):39-40.
[2]BONEVSKA S,JANKOVA A,MATESKA A.Early fire detection with WSN[EB/OL].[2013-01-10].http://2009.telfor.rs/files/radovi/12_03.pdf.
[3]余坤杰.一種基于GPRS無(wú)線通信的遠(yuǎn)程I/O控制終端實(shí)現(xiàn)[J].電視技術(shù),2012,36(13):114-117.
[4]陳滟濤,楊俊起,康潤(rùn)生.基于SIM300的短信傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2008,30(3):156-158.
[5]李洪雙,江西軍.衛(wèi)星林火監(jiān)測(cè)在東北林區(qū)森林防火中的應(yīng)用[J].森林防火,2010,3(1):39-41.
[6]STADLER H,KLOCK E,KOLLMITZER C,et al.Near real-time quality assurance of hydrological measurements using failsafe data transfer[EB/OL].[2013-01-10].http://enviroinfo.eu/sites/default/files/pdfs/vol121/0169.pdf.
[7]王春喜,何良.GPRS在CMMB基站遠(yuǎn)程監(jiān)控中的運(yùn)用[J].電視技術(shù),2011,35(14):82-84.