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