摘 要: 為了解決人員流動(dòng)監(jiān)測(cè)設(shè)備運(yùn)行狀態(tài)的信息滯后問(wèn)題,減少因此而帶來(lái)的損失,提出了一種基于Mega128單片機(jī)和WiFi的電氣設(shè)備無(wú)線監(jiān)控系統(tǒng)。根據(jù)設(shè)備正常運(yùn)行和非正常運(yùn)行時(shí)的工作電流的不同,通過(guò)電流互感器檢測(cè)其工作電流,進(jìn)而判斷其工作狀態(tài)。最后Mega128將檢測(cè)到的結(jié)果經(jīng)WiFi模塊傳送至Internet服務(wù)器,并在監(jiān)控界面上顯示。經(jīng)過(guò)實(shí)驗(yàn),該系統(tǒng)能夠?qū)Χ鄠€(gè)設(shè)備的使用情況進(jìn)行監(jiān)測(cè),用戶能通過(guò)監(jiān)測(cè)網(wǎng)站網(wǎng)頁(yè)讀取設(shè)備的使用信息并長(zhǎng)期保存。
關(guān)鍵詞: 無(wú)線監(jiān)控;Mega128;WiFi
0 引言
隨著我國(guó)經(jīng)濟(jì)實(shí)力的增長(zhǎng)和科學(xué)技術(shù)的進(jìn)步,越來(lái)越多的智能化、自動(dòng)化設(shè)備應(yīng)用于家庭和工廠企業(yè),為人們的生活服務(wù),為企業(yè)節(jié)省人力,提高產(chǎn)能,創(chuàng)造更大的效益。這些設(shè)備平時(shí)并不需要時(shí)刻有人操作,但是一旦這些設(shè)備出現(xiàn)異常,必然會(huì)對(duì)人們的生活帶來(lái)不便,為企業(yè)的利益帶來(lái)?yè)p失。為此,設(shè)計(jì)了基于單片機(jī)采集和WiFi傳輸?shù)碾姎庠O(shè)備無(wú)線監(jiān)控系統(tǒng),用于對(duì)這些設(shè)備的工作狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè),并且當(dāng)監(jiān)測(cè)到設(shè)備出現(xiàn)異常時(shí),可控制繼電器使設(shè)備斷電,以避免造成不必要的損失。
本文介紹了自主開(kāi)發(fā)的基于Mega系列單片機(jī)系統(tǒng)和WiFi傳輸?shù)臒o(wú)線監(jiān)控系統(tǒng)的設(shè)計(jì)方案。該方案采用Mega128單片機(jī)搭建設(shè)備的現(xiàn)場(chǎng)監(jiān)控模塊,通過(guò)WiFi模塊實(shí)現(xiàn)單片機(jī)和Internet服務(wù)器之間的通信。本文對(duì)系統(tǒng)的整體結(jié)構(gòu)、硬件結(jié)構(gòu)、軟件結(jié)構(gòu)的設(shè)計(jì)做了介紹。通過(guò)實(shí)驗(yàn)測(cè)試,結(jié)果表明,本設(shè)計(jì)方案具有很好的準(zhǔn)確性和可靠性。
1 系統(tǒng)總體設(shè)計(jì)
本監(jiān)控系統(tǒng)由單片機(jī)監(jiān)控模塊、WiFi傳輸模塊、監(jiān)測(cè)網(wǎng)站三部分組成。監(jiān)控系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
該系統(tǒng)以Mega128單片機(jī)和WiFi模塊為基礎(chǔ),所完成的主要功能是實(shí)現(xiàn)設(shè)備工作狀態(tài)的遠(yuǎn)程監(jiān)測(cè)。單片機(jī)監(jiān)控模塊可以檢測(cè)到設(shè)備的運(yùn)行、關(guān)閉、異常等狀態(tài),并記錄各狀態(tài)發(fā)生改變的時(shí)刻。檢測(cè)到的設(shè)備狀態(tài)信息以及相應(yīng)的設(shè)備編號(hào)將通過(guò)WiFi模塊實(shí)時(shí)傳送到Internet數(shù)據(jù)庫(kù)并在監(jiān)測(cè)網(wǎng)站的網(wǎng)頁(yè)上顯示。為防止服務(wù)器斷電異常無(wú)法接受數(shù)據(jù)而導(dǎo)致數(shù)據(jù)丟失,本設(shè)計(jì)添加了EEPROM用于存儲(chǔ)單片機(jī)采集到的信息,使服務(wù)器在斷電恢復(fù)后可以調(diào)取。此外,本設(shè)計(jì)還添加了硬件報(bào)警設(shè)計(jì)和監(jiān)測(cè)網(wǎng)站網(wǎng)絡(luò)報(bào)警設(shè)計(jì)。一旦設(shè)備出現(xiàn)異常狀態(tài),單片機(jī)監(jiān)控模塊將在設(shè)備現(xiàn)場(chǎng)發(fā)出警報(bào),并控制繼電器使設(shè)備斷電,同時(shí)監(jiān)測(cè)網(wǎng)站的Web網(wǎng)頁(yè)界面上設(shè)置的報(bào)警提示也將發(fā)出警報(bào),提示工作人員及時(shí)發(fā)現(xiàn)異常設(shè)備并采取措施,從而減少經(jīng)濟(jì)損失。多個(gè)監(jiān)控模塊的單片機(jī)都工作在多機(jī)通信模式,配合多個(gè)WiFi模塊,可以實(shí)現(xiàn)對(duì)多個(gè)電氣設(shè)備使用情況的監(jiān)控。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件由Mega128單片機(jī)芯片、電流互感器、DS1302時(shí)間芯片、24C512 EEPROM、WiFi模塊組成。系統(tǒng)的硬件結(jié)構(gòu)如圖2。
Mega128是一款高性能、高配置、低功耗的8位微處理器,此微處理器工作在16 MHz時(shí)性能高達(dá)16 MIPS,而且大部分指令都能在一個(gè)時(shí)鐘周期之內(nèi)完成[1]。工作電壓范圍2.7 V~5.5 V,可以和WiFi模塊共同使用5 V的電源供電。同時(shí),其自帶10位ADC(模數(shù)轉(zhuǎn)換接口),以便對(duì)采集到的數(shù)據(jù)進(jìn)行模數(shù)轉(zhuǎn)換[2]。Mega128的特點(diǎn)足以為系統(tǒng)提供可靠的性能。
出于簡(jiǎn)化設(shè)計(jì)和降低成本的考慮,為將設(shè)備的運(yùn)行、關(guān)閉、異常等狀態(tài)轉(zhuǎn)換成單片機(jī)能夠采集的狀態(tài)量,本設(shè)計(jì)選用了電流互感器,采集設(shè)備的電流信號(hào)。由于設(shè)備在運(yùn)行、關(guān)閉、異常等不同狀態(tài)時(shí),其工作電流是不同的,所以可先用電流互感器檢測(cè)出設(shè)備的工作電流,然后將其轉(zhuǎn)換成電壓信號(hào),再經(jīng)放大整流后得到平穩(wěn)的直流電壓信號(hào),通過(guò)Mega128單片機(jī)自帶的10位ADC(模數(shù)轉(zhuǎn)換接口)對(duì)得到的直流電壓信號(hào)進(jìn)行采集并轉(zhuǎn)換為數(shù)字信號(hào)存儲(chǔ)到單片機(jī)上,通過(guò)對(duì)單片機(jī)的編程對(duì)不同的狀態(tài)設(shè)定相應(yīng)的閾值,便可實(shí)現(xiàn)狀態(tài)量的采集。
Mega128檢測(cè)到狀態(tài)量的變化后,需要讀取的時(shí)間信息來(lái)自時(shí)間芯片DS1302。DS1302是一種帶RAM的低功耗的實(shí)時(shí)時(shí)鐘電路,可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí)[3]。配備后備電源后,即便主電源關(guān)閉,Ds1302也能夠保證持續(xù)地記錄時(shí)間。為保證數(shù)據(jù)不會(huì)丟失,將Mega128檢測(cè)到的狀態(tài)信息及時(shí)間信息存入EEPROM中,EEPROM選擇ATMEL公司的24C512芯片,它內(nèi)部有64 KB的存儲(chǔ),分為512頁(yè),地址范圍為0000~ffffH[4]。
WiFi模塊選用的是海凌科電子推出的低成本嵌入式UART-ETH-WiFi(串口-以太網(wǎng)-無(wú)線網(wǎng))模塊HLK-RM04。該模塊是基于通用串行接口的符合網(wǎng)絡(luò)標(biāo)準(zhǔn)的嵌入式模塊,內(nèi)置TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、以太網(wǎng)、無(wú)線網(wǎng)(WiFi)3個(gè)接口之間的轉(zhuǎn)換。
3 系統(tǒng)軟件設(shè)計(jì)
本監(jiān)控系統(tǒng)的軟件部分包括設(shè)備現(xiàn)場(chǎng)監(jiān)控模塊軟件、WiFi模塊配置和監(jiān)測(cè)網(wǎng)站的設(shè)計(jì)。其中WiFi模塊無(wú)需編程,只需對(duì)WiFi模塊進(jìn)行初始化并配置成客戶端模式,設(shè)置遠(yuǎn)程服務(wù)器IP、端口號(hào),與Internet服務(wù)器連接。WiFi模塊的配置如圖3所示。
3.1 單片機(jī)監(jiān)控模塊程序設(shè)計(jì)
首先是單片機(jī)提取設(shè)備工作狀態(tài)的狀態(tài)量。Mega128單片機(jī)上自帶的10位ADC(模數(shù)轉(zhuǎn)換接口)對(duì)通過(guò)硬件電路處理過(guò)的直流電壓信號(hào)進(jìn)行采集并將其轉(zhuǎn)換為數(shù)字信號(hào)存儲(chǔ)到單片機(jī)上,由于設(shè)備工作狀態(tài)的不同,其工作電流將不同,采集到的電壓信號(hào)也將不同,所以最終存儲(chǔ)到單片機(jī)上的數(shù)字信號(hào)也不同。只要測(cè)出采集到的不同工作狀態(tài)對(duì)應(yīng)的電壓范圍便可設(shè)定閾值,單片機(jī)通過(guò)這幾個(gè)閾值對(duì)設(shè)備的工作狀態(tài)進(jìn)行判定,當(dāng)設(shè)備的工作狀態(tài)發(fā)生變化時(shí)DS1302記錄其時(shí)間,此時(shí)將工作狀態(tài)的判定結(jié)果和記錄的時(shí)間發(fā)送至Internet服務(wù)器,同時(shí)將其存儲(chǔ)到EEPROM中。若服務(wù)器出現(xiàn)異常斷電,將無(wú)法接收數(shù)據(jù),待其恢復(fù)后可通過(guò)單片機(jī)調(diào)取EEPROM中存儲(chǔ)的斷電期間的數(shù)據(jù)。此外,當(dāng)檢測(cè)到設(shè)備出現(xiàn)異常狀態(tài)時(shí),單片機(jī)需對(duì)警報(bào)器發(fā)出信號(hào)令其報(bào)警。單片機(jī)監(jiān)控模塊程序流程如圖4。
單片機(jī)檢測(cè)到狀態(tài)量信號(hào)發(fā)生變化后,便開(kāi)始了一次“記錄”時(shí)間的過(guò)程。首先單片機(jī)通過(guò)SPI總線的形式讀取當(dāng)下DS1302中記錄的時(shí)間,包括年、月、日、星期、時(shí)、分、秒,這些信息都寄存在DS1302內(nèi)部相關(guān)的寄存器中。單片機(jī)與DS1302傳輸數(shù)據(jù)之前要先寫(xiě)入相應(yīng)的控制字——讀取或者寫(xiě)入,以及讀寫(xiě)的地址。不僅如此,單片機(jī)每次與DS1302通信都要經(jīng)過(guò)嚴(yán)格的“握手程序”。Mega128讀取DS1302中的時(shí)間數(shù)據(jù),只需要按照相應(yīng)的通信原則讀取其內(nèi)部相應(yīng)地址的寄存器即可。與之類似,Mega128對(duì)24C512進(jìn)行讀取或者寫(xiě)入數(shù)據(jù)操作時(shí)也需要先寫(xiě)入相應(yīng)的控制字,讀寫(xiě)其內(nèi)部的相應(yīng)地址空間所存儲(chǔ)的數(shù)據(jù),并且同樣在每次通信的過(guò)程中進(jìn)行嚴(yán)格的“握手程序”。
如果監(jiān)測(cè)網(wǎng)站要調(diào)取歷史記錄,當(dāng)Mega128接收到監(jiān)測(cè)網(wǎng)站通過(guò)WiFi模塊傳來(lái)的指令,如設(shè)備編號(hào)、所要讀取信息的日期,Mega128根據(jù)接收到的設(shè)備編號(hào)確定是否與本機(jī)號(hào)相符。如果編號(hào)符合,則根據(jù)所要讀取信息的日期查詢符合條件的數(shù)據(jù)并讀取出來(lái),然后將數(shù)據(jù)依次通過(guò)串口發(fā)送出去。
3.2 監(jiān)測(cè)網(wǎng)站的設(shè)計(jì)
監(jiān)測(cè)網(wǎng)站發(fā)送和接收數(shù)據(jù)是通過(guò)SOCKET套接字與WiFi模塊進(jìn)行傳輸?shù)?。監(jiān)測(cè)網(wǎng)站主要由網(wǎng)站監(jiān)測(cè)前臺(tái)、Windows服務(wù)程序和數(shù)據(jù)庫(kù)三部分組成。如圖5所示。
網(wǎng)站監(jiān)測(cè)前臺(tái)是使用ASP開(kāi)發(fā)平臺(tái)采用C#語(yǔ)言編寫(xiě)的B/S模式的網(wǎng)站,它主要通過(guò)SQL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。Windows服務(wù)程序是ASP開(kāi)發(fā)平臺(tái)編寫(xiě)的C/S模式的軟件,它通過(guò)SOCKET套接字來(lái)接收現(xiàn)場(chǎng)WiFi設(shè)備傳來(lái)的現(xiàn)場(chǎng)設(shè)備的信息,并使用SQL語(yǔ)句存入數(shù)據(jù)庫(kù)中[5]。這里采用SQL server2005數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)把從WiFi接收來(lái)的分類數(shù)據(jù)儲(chǔ)存起來(lái),使前臺(tái)網(wǎng)站能夠?qū)崟r(shí)訪問(wèn)更新的數(shù)據(jù)。
4 實(shí)驗(yàn)結(jié)果
本實(shí)驗(yàn)以學(xué)校實(shí)驗(yàn)室的電氣設(shè)備作為實(shí)驗(yàn)對(duì)象,對(duì)不同實(shí)驗(yàn)室的不同設(shè)備進(jìn)行編號(hào),同時(shí)進(jìn)行監(jiān)測(cè)。實(shí)驗(yàn)表明該系統(tǒng)能夠?qū)Χ鄠€(gè)設(shè)備的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),并且該系統(tǒng)具有良好的穩(wěn)定性。因?yàn)閷?shí)驗(yàn)條件所限并未對(duì)設(shè)備出現(xiàn)異常狀態(tài)的情況進(jìn)行試驗(yàn),所以未能驗(yàn)證系統(tǒng)對(duì)設(shè)備出現(xiàn)異常狀態(tài)的反應(yīng)。監(jiān)測(cè)信息在監(jiān)測(cè)網(wǎng)站網(wǎng)頁(yè)上的顯示如圖6所示。
5 結(jié)束語(yǔ)
本文論述了基于單片機(jī)信號(hào)采集和WiFi傳輸?shù)脑O(shè)備無(wú)線監(jiān)控系統(tǒng)的軟、硬件設(shè)計(jì)方法,利用單片機(jī)對(duì)設(shè)備的運(yùn)行情況進(jìn)行監(jiān)測(cè),并通過(guò)WiFi模塊進(jìn)行數(shù)據(jù)傳輸,最后由監(jiān)測(cè)網(wǎng)站用戶界面將信息顯示給用戶。經(jīng)過(guò)實(shí)驗(yàn),該方案能夠?qū)崿F(xiàn)設(shè)備運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)測(cè),并且檢測(cè)到的信息可長(zhǎng)期存儲(chǔ)在服務(wù)器中,解決了管理人員流動(dòng)監(jiān)測(cè)設(shè)備的滯后性,同時(shí)節(jié)約了成本。
參考文獻(xiàn)
[1] 霍宏偉,牛延超,黃吉瑩. ATmega 128/2560 系列單片機(jī)原理與高級(jí)應(yīng)用[M]. 北京:中國(guó)林業(yè)出版社, 2006.
[2] 張軍. AVR單片機(jī)應(yīng)用開(kāi)發(fā)典型實(shí)例[M]. 北京:中國(guó)電力出版社, 2005.
[3] 姚德法,張洪林. 串行時(shí)鐘芯片DS1302的原理與使用[J]. 信息技術(shù)與信息化, 2006(1):92-94.
[4] 楊學(xué)昭,馬彥霞,薛立. AT24C512存儲(chǔ)器在無(wú)線抄表器中的應(yīng)用[J]. 中原工學(xué)院學(xué)報(bào), 2004(4):5-7,13.
[5] 張躍廷,許文武,王小科. C#數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)完全手冊(cè)[M]. 北京:人民郵電出版社, 2006.