,,
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
隨著我國(guó)經(jīng)濟(jì)的迅速發(fā)展,用電設(shè)備得到廣泛使用,用電設(shè)備高效管理成為了重要的課題。由于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的高速發(fā)展,尤其是Internet/Intranet技術(shù)的廣泛應(yīng)用,為基于網(wǎng)絡(luò)的設(shè)備管理系統(tǒng)的實(shí)施提供了堅(jiān)實(shí)的技術(shù)基礎(chǔ)[1-3]。目前用電設(shè)備管理系統(tǒng)大多是對(duì)設(shè)備信息的靜態(tài)管理,實(shí)現(xiàn)設(shè)備基本信息的添加、刪除、記錄等管理功能,對(duì)用電設(shè)備工作狀態(tài)實(shí)時(shí)管理的系統(tǒng)卻不多見(jiàn)[4-6]。工作電流是用電設(shè)備重要的運(yùn)行數(shù)據(jù),通過(guò)電流能反映設(shè)備開(kāi)關(guān)機(jī)狀況和運(yùn)行狀況,可準(zhǔn)確記錄設(shè)備利用率等[7]。本文提出并設(shè)計(jì)了一種基于電流檢測(cè)的用電設(shè)備運(yùn)行狀態(tài)監(jiān)控系統(tǒng)。
系統(tǒng)由采集節(jié)點(diǎn)、路由、云服務(wù)器等組成,整體結(jié)構(gòu)框圖如圖1所示。通過(guò)在用電設(shè)備的電源側(cè)安裝電流采集節(jié)點(diǎn),獲取設(shè)備工作電流,通過(guò)WiFi收發(fā)模塊傳輸?shù)皆品?wù)器??紤]到WiFi和云服務(wù)器之間通訊距離可能較遠(yuǎn)(超出WiFi的最大傳輸范圍),因此以路由作為橋梁,數(shù)據(jù)經(jīng)過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)跨地域遠(yuǎn)距離傳輸。云服務(wù)器中部署的監(jiān)控系統(tǒng)獲取到采集節(jié)點(diǎn)數(shù)據(jù)時(shí),根據(jù)預(yù)設(shè)的監(jiān)控策略進(jìn)行實(shí)時(shí)顯示或者報(bào)警,并將處理后的數(shù)據(jù)保存至數(shù)據(jù)庫(kù),以便日后查詢(xún)和統(tǒng)計(jì)等。系統(tǒng)采用B/S架構(gòu)網(wǎng)絡(luò)管理模式,支持多用戶(hù)機(jī)制。用戶(hù)可以通過(guò)計(jì)算機(jī)、手機(jī)中的瀏覽器,在任何時(shí)間,不受地域限制地對(duì)用電設(shè)備的實(shí)時(shí)運(yùn)行狀態(tài)進(jìn)行查看。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
采集節(jié)點(diǎn)選用意法半導(dǎo)體公司生產(chǎn)的STM32F411芯片作為主控芯片,該微處理器具有功耗低,工作穩(wěn)定等特點(diǎn)[8],能滿(mǎn)足整個(gè)系統(tǒng)的需求。系統(tǒng)中使用USART1獲取設(shè)備電流值,USART2打印參數(shù)信息,方便查看調(diào)試信息,USART6與WiFi收發(fā)模塊進(jìn)行數(shù)據(jù)通訊。硬件邏輯如圖2所示。外圍電路包括電源穩(wěn)壓模塊,電流采集模塊,WiFi收發(fā)模塊等。
圖2 采集節(jié)點(diǎn)硬件邏輯框圖
電流采集模塊的設(shè)計(jì)是本文的重點(diǎn),是獲取設(shè)備電流值精確的關(guān)鍵,主要由HLW8032電流檢測(cè)芯片和采樣電阻等構(gòu)成,電路原理圖如圖3所示。HLW8032是深圳合力為科技有限公司推出的單相功率計(jì)量芯片,是一款高精度的電能計(jì)量IC,內(nèi)置了晶振和參考電源,不需使用復(fù)雜的設(shè)計(jì)電路和編寫(xiě)復(fù)雜的軟件,具有外圍電路簡(jiǎn)單、體積小、價(jià)格便宜的優(yōu)點(diǎn)。在1000:1的動(dòng)態(tài)范圍內(nèi)有效電流的測(cè)量誤差僅僅為0.5%[9]。采樣電阻使用錳銅電阻(成本低、精度高、溫度特性好)采樣設(shè)備電流,將獲取的電流信號(hào)通過(guò)芯片內(nèi)部的ADC以及串口的轉(zhuǎn)換,實(shí)現(xiàn)將電流值模擬量轉(zhuǎn)化為數(shù)字量輸出。
圖3 電流采集模塊原理圖
HLW8032芯片引腳1接電源穩(wěn)壓模塊提供的5 V工作電壓,增加的電容主要起濾波作用。為防止出現(xiàn)電壓浮空而燒壞芯片的現(xiàn)象,將電路中的GND和AC220V-N作為同一個(gè)參考點(diǎn)。根據(jù)手冊(cè)最大采樣電流=最大壓差/采樣電阻阻值可知,當(dāng)芯片引腳2和3承受39 mV最大壓差時(shí),能測(cè)量設(shè)備最大電流為19.8 A,如果設(shè)備的電流超過(guò)此測(cè)量范圍,可以通過(guò)改變采集模塊的采用電阻大小來(lái)測(cè)量更大電流的用電設(shè)備。引腳4實(shí)現(xiàn)用電設(shè)備電壓采集,采用連續(xù)4個(gè)相同電阻來(lái)消除單個(gè)電阻耐壓不足和電網(wǎng)電壓波動(dòng)問(wèn)題,并通過(guò)由R33和C38組成的RC網(wǎng)絡(luò)進(jìn)行濾波。引腳7為串口發(fā)送,實(shí)現(xiàn)和STM32F411中USART1接收引腳之間數(shù)據(jù)通訊。
STM32F411與HLW8032以4800bps(波特率)通訊,并獲取存放在HLW8032芯片寄存器的電流數(shù)據(jù),流程圖如圖4所示。當(dāng)程序進(jìn)入U(xiǎn)SART1中斷,通過(guò)對(duì)接收的數(shù)據(jù)進(jìn)行判斷,當(dāng)連續(xù)四個(gè)字節(jié)數(shù)據(jù)依次為0x5A,0x02,0xD8,0x20時(shí),判定為接收到正確的電流數(shù)據(jù),根據(jù)HLW8032芯片手冊(cè)可知需一次性連續(xù)接收24字節(jié)數(shù)據(jù),將接收到的這些數(shù)據(jù)經(jīng)過(guò)函數(shù)處理。在處理函數(shù)中判斷HLW8032芯片中狀態(tài)寄存器的數(shù)據(jù)大小,當(dāng)狀態(tài)寄存器為0x55時(shí),此時(shí)芯片誤差修正功能正常,電流參數(shù)寄存器可用,且電流寄存器未溢出,根據(jù)數(shù)據(jù)更新?tīng)顟B(tài)寄存器狀態(tài)得出電流系數(shù)和電流周期,最終根據(jù)電流值的計(jì)算公式得到設(shè)備的電流值。
圖4 微處理器獲取設(shè)備電流值流程圖
電流值的計(jì)算方式為I=(電流寄參數(shù)寄存器/電流寄存器)*電流系數(shù)。由于選用2毫歐錳銅電阻采集設(shè)備電流,R=0.002 Ω,則電流系數(shù)=1/(R*1000)=0.5。
電流數(shù)據(jù)經(jīng)由WiFi收發(fā)模塊上傳到云服務(wù)器前需要對(duì)數(shù)據(jù)進(jìn)行處理??紤]到設(shè)備啟動(dòng)電流有可能幾倍于工作電流,故從設(shè)備穩(wěn)定工作后開(kāi)始采集電流數(shù)據(jù)。將得到的電流數(shù)據(jù)以三種不同頻率上傳:當(dāng)電流值在額定電流值的一定范圍內(nèi)(1.2倍)內(nèi)波動(dòng)時(shí),數(shù)據(jù)以一定頻率(0.1 Hz)上傳;當(dāng)電流值在額定電流值的一定范圍內(nèi)(1.2倍~2倍)內(nèi)波動(dòng)時(shí),數(shù)據(jù)以較快頻率(0.2 Hz)上傳; 當(dāng)電流值超過(guò)額定電流值 (2倍)時(shí),數(shù)據(jù)以更快頻率(1 Hz)上傳。處理電流數(shù)據(jù)策略如圖5所示。
圖5 微處理器處理電流數(shù)據(jù)策略流程圖
WiFi收發(fā)模塊是連接各個(gè)電流采集模塊與云服務(wù)器的紐帶。相比zigbee組網(wǎng)復(fù)雜,成本較高,傳輸速率低等不足,本系統(tǒng)采用ESP8266型號(hào)的WiFi收發(fā)模塊對(duì)微處理器處理的設(shè)備數(shù)據(jù)進(jìn)行獲取,同時(shí)和云服務(wù)的通訊也通過(guò)該模塊。ESP8266是樂(lè)鑫公司的一款WiFi產(chǎn)品,其價(jià)格低廉,具有高性?xún)r(jià)比,是目前市面上非常流行的一款WiFi芯片。其具有不同工作模式,且支持透明傳輸。本設(shè)計(jì)采用透明傳輸模式(數(shù)據(jù)不發(fā)生任何形式的改變,傳輸過(guò)程透明)傳輸數(shù)據(jù),為使WiFi收發(fā)模塊與云服務(wù)器遠(yuǎn)距離通訊,需進(jìn)行聯(lián)網(wǎng)配置,傳統(tǒng)的配網(wǎng)方式中采集節(jié)點(diǎn)連接新路由時(shí)需要修改底層代碼中路由的SSID和PSW,本系統(tǒng)使用網(wǎng)頁(yè)配網(wǎng)方式將SSID和PSW動(dòng)態(tài)存入EEPROM中使設(shè)備數(shù)據(jù)經(jīng)過(guò)路由接入云服器。網(wǎng)頁(yè)配網(wǎng)數(shù)據(jù)傳輸流程如圖6所示。
圖6 網(wǎng)頁(yè)配網(wǎng)數(shù)據(jù)傳輸流程圖
WiFi收發(fā)模塊讀取到正確的SSID和PSW連接路由成功后,需要對(duì)其進(jìn)行如下配置:WiFi模塊重啟操作,AT+RST; 配置數(shù)據(jù)加密方式,網(wǎng)絡(luò)訪(fǎng)問(wèn)密碼,AT +WSKEY=WPA2PSK,配置ESP8266當(dāng)前WiFi模式為station模式,AT+CWMODE=STA,STA組網(wǎng)方式是系統(tǒng)中由一個(gè)路由器作為無(wú)線(xiàn)網(wǎng)絡(luò)的中心節(jié)點(diǎn),采集節(jié)點(diǎn)作為無(wú)線(xiàn)站點(diǎn)的組網(wǎng)方式;設(shè)置WiFi模塊為單連接模式, AT+CIPMUX=DISABLE;創(chuàng)建TCP連接(Socket客戶(hù)端),配置云服務(wù)器名稱(chēng)(IP地址),80端口和第5通道進(jìn)行數(shù)據(jù)傳輸,AT+CIPSTART=”TCP”,“47.106.204.25”,”80”,”5”;在透?jìng)髂J较?,發(fā)送設(shè)備電流數(shù)AT+CIPSEND=”>”,進(jìn)入透?jìng)髂J桨l(fā)送數(shù)據(jù),每包數(shù)據(jù)以20 ms間隔區(qū)分。Socket客戶(hù)端配置云服務(wù)器名稱(chēng)的目的在于socket客戶(hù)端對(duì)云服務(wù)器的尋址,云服務(wù)器打開(kāi)80端口則是客戶(hù)端和服務(wù)器端數(shù)據(jù)交互通道,無(wú)需通過(guò)防火墻。
WiFi收發(fā)模塊與云服務(wù)器之間的通訊方式為RestFul API。其基于HTTP協(xié)議和json數(shù)據(jù)格式,適合平臺(tái)資源管理,平臺(tái)與平臺(tái)之間數(shù)據(jù)對(duì)接,使用短連接上報(bào)終端數(shù)據(jù)及時(shí)間序列化數(shù)據(jù)存儲(chǔ)等場(chǎng)景。其RestFul API應(yīng)用程序設(shè)計(jì)的提出,改善了用戶(hù)接口跨多個(gè)平臺(tái)的可移植性,通過(guò)分離用戶(hù)接口和數(shù)據(jù)存儲(chǔ),使得不同用戶(hù)終端與單一服務(wù)器數(shù)據(jù)交互成為了可能。方案中WiFi收發(fā)模塊作為T(mén)CP客戶(hù)端(socket)以RestFul API請(qǐng)求方式實(shí)現(xiàn)與云服務(wù)器數(shù)據(jù)交互。
文獻(xiàn)[10]中設(shè)備運(yùn)行狀態(tài)監(jiān)測(cè)系統(tǒng)以智能網(wǎng)關(guān)為中心,以一定場(chǎng)所為單點(diǎn),采用局域網(wǎng)的形式和服務(wù)器進(jìn)行數(shù)據(jù)交互,用戶(hù)無(wú)法實(shí)現(xiàn)外網(wǎng)遠(yuǎn)程訪(fǎng)問(wèn)服務(wù)器中數(shù)據(jù);本設(shè)計(jì)采用局域網(wǎng)與互聯(lián)網(wǎng)相結(jié)合的方式,以云服務(wù)器為中心,進(jìn)行數(shù)據(jù)接收和處理,從而實(shí)現(xiàn)外網(wǎng)遠(yuǎn)程訪(fǎng)問(wèn)。云服務(wù)器采用騰訊云服務(wù)器,是一種處理性能優(yōu)越、安全可靠的計(jì)算服務(wù),方便用戶(hù)建立數(shù)據(jù)中心,可實(shí)現(xiàn)數(shù)據(jù)的靈活訪(fǎng)問(wèn)和數(shù)據(jù)存儲(chǔ)計(jì)算[11]。云服務(wù)器的系統(tǒng)配置如表1所示。
表1 系統(tǒng)配置
云服務(wù)器分為控制臺(tái)、后臺(tái)服務(wù)和數(shù)據(jù)庫(kù)三部分,控制臺(tái)的功能相當(dāng)于云服務(wù)器與外部應(yīng)用進(jìn)行溝通的橋梁,控制臺(tái)向下與采集節(jié)點(diǎn)通訊,采集節(jié)點(diǎn)中WiFi收發(fā)模塊作為socket客戶(hù)端向云服務(wù)器的控制臺(tái)傳輸設(shè)備電流數(shù)據(jù)。數(shù)據(jù)庫(kù)服務(wù)器主要是存儲(chǔ)采集的電流數(shù)據(jù),以便用戶(hù)通過(guò)網(wǎng)頁(yè)隨時(shí)進(jìn)行查詢(xún)?cè)O(shè)備運(yùn)行狀態(tài)。WEB服務(wù)器端程序部署在Tomcat容器中,用Java語(yǔ)言編寫(xiě),采用MVC分層設(shè)計(jì)模型。數(shù)據(jù)庫(kù)采用Mysql數(shù)據(jù)庫(kù)。
在WEB服務(wù)器端程序設(shè)計(jì)中,為了同時(shí)接收多個(gè)用電設(shè)備的數(shù)據(jù),使用Java多線(xiàn)程的方式來(lái)處理socket客戶(hù)端傳過(guò)來(lái)的json格式數(shù)據(jù)(key-value鍵值對(duì)),具體流程如下:服務(wù)器根據(jù)socket類(lèi)型創(chuàng)建socket,服務(wù)器為socket綁定對(duì)應(yīng)的IP地址和端口號(hào)(80),服務(wù)器接收到了用戶(hù)發(fā)來(lái)的socket連接請(qǐng)求時(shí),被動(dòng)打開(kāi)socket,開(kāi)始接收客戶(hù)端請(qǐng)求,直到socket客戶(hù)端返回連接信息。這時(shí)候服務(wù)器socket進(jìn)入堵塞狀態(tài),接收客戶(hù)端連接信息后返回,然后開(kāi)始接收下一個(gè)用戶(hù)端請(qǐng)求。服務(wù)器端啟動(dòng)socket.getInputstream()與客戶(hù)端建立連接,獲取WiFi收發(fā)模塊輸入的json數(shù)據(jù),將其轉(zhuǎn)化為數(shù)組類(lèi)型,調(diào)用socket.substring()方法解析數(shù)據(jù),將這些數(shù)據(jù)經(jīng)過(guò)加載mysql的 jdbc驅(qū)動(dòng),建立與mysql數(shù)據(jù)庫(kù)連接,執(zhí)行insert語(yǔ)句后存入數(shù)據(jù)庫(kù)進(jìn)行長(zhǎng)期保存。
云服務(wù)器主要分4個(gè)功能:用戶(hù)管理、實(shí)時(shí)運(yùn)行狀態(tài)、電流數(shù)據(jù)查詢(xún)、日志記錄,如圖7所示。
圖7 云服務(wù)器功能結(jié)構(gòu)示意圖
云服務(wù)器使用XMLHttpRequest對(duì)象異步讀取數(shù)據(jù)庫(kù)中數(shù)據(jù),采用異步AJAX技術(shù)(不重新加載整個(gè)頁(yè)面的情況下,可以與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)內(nèi)容)對(duì)獲取的數(shù)據(jù)進(jìn)行頁(yè)面實(shí)時(shí)顯示。
圖8 WiFi連接協(xié)議圖 圖9 傳輸協(xié)議圖
以實(shí)驗(yàn)室的電風(fēng)扇、電腦、電熱壺作為實(shí)驗(yàn)對(duì)象。實(shí)驗(yàn)步驟:采集節(jié)點(diǎn)上電后,微處理器初始化,WiFi模塊切換為STA模式,接收網(wǎng)頁(yè)發(fā)送連接路由的SSID和PSW,和云服務(wù)器建立連接,將采集節(jié)點(diǎn)獲取的此三種設(shè)備電流值傳輸?shù)皆品?wù)器上。如圖8所示,通過(guò)USART2查看具體連接協(xié)議和電流值(此為電風(fēng)扇第一次傳輸數(shù)據(jù))。如圖9所示,通過(guò)協(xié)議實(shí)時(shí)將設(shè)備數(shù)據(jù)經(jīng)由網(wǎng)絡(luò)寫(xiě)入到云服務(wù)器數(shù)據(jù)庫(kù)(Mysql)中,傳輸協(xié)議中前四位表示的是設(shè)備的電流值,第五位表示的是設(shè)備的當(dāng)前狀態(tài),第六位和第七位分別表示的是設(shè)備號(hào)和實(shí)驗(yàn)室號(hào)。
對(duì)不同設(shè)備電流的實(shí)時(shí)檢測(cè),選取不同次數(shù)的電流采集模塊測(cè)量值和電流表測(cè)量值進(jìn)行比較計(jì)算,如表2所示誤差在2%以?xún)?nèi)。
表2 實(shí)驗(yàn)測(cè)量結(jié)果
為模擬微處理器處理電流數(shù)據(jù)策略的準(zhǔn)確性,以實(shí)驗(yàn)室(研究室)的4臺(tái)相同功率的電風(fēng)扇作為實(shí)驗(yàn)對(duì)象,模擬設(shè)備正常工作,不同報(bào)警的狀態(tài)。在實(shí)驗(yàn)時(shí),設(shè)定電風(fēng)扇的閾值(定于0.13 A),開(kāi)啟電風(fēng)扇1處于正常檔(一檔),電風(fēng)扇2處于較大風(fēng)力檔(二檔),電風(fēng)扇3處于更大風(fēng)力檔(三檔),電風(fēng)扇4處于關(guān)機(jī)。
通過(guò)實(shí)驗(yàn)室用電設(shè)備運(yùn)行狀態(tài)監(jiān)測(cè)系統(tǒng)的界面可以查看4臺(tái)電風(fēng)扇的運(yùn)行狀態(tài),綠色表示設(shè)備正常,灰色表示設(shè)備關(guān)機(jī),黃色(一級(jí)報(bào)警)表示設(shè)備電流值超過(guò)設(shè)定閾值的20%,紅色(二級(jí)報(bào)警)表示設(shè)備電流值超過(guò)設(shè)定閾值的兩倍。如圖10所示。
圖10 電風(fēng)扇運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控界面
根據(jù)設(shè)備運(yùn)行狀態(tài),查看數(shù)據(jù)庫(kù)中實(shí)時(shí)的運(yùn)行信息,如圖11所示。其中eid字段為設(shè)備id號(hào),ename為設(shè)備的名稱(chēng),elstarttime為設(shè)備開(kāi)始工作的時(shí)間,elendtime為設(shè)備停止工作的時(shí)間,eltime為設(shè)備從開(kāi)始運(yùn)行到停止運(yùn)行所經(jīng)歷的時(shí)長(zhǎng),lid為設(shè)備所處實(shí)驗(yàn)室id號(hào),lname為設(shè)備所處實(shí)驗(yàn)室名稱(chēng),elvalue為設(shè)備關(guān)機(jī)之前最新一次電流值,estate為設(shè)備當(dāng)前所處的狀態(tài)(0表示設(shè)備當(dāng)前狀態(tài)為正常,1表示一級(jí)報(bào)警,2表示二級(jí)報(bào)警,3表示關(guān)機(jī))。根據(jù)設(shè)定電風(fēng)扇電流值閾值,獲取運(yùn)行狀態(tài),電風(fēng)扇在數(shù)據(jù)庫(kù)中
電流值在設(shè)定閾值的相應(yīng)倍數(shù)范圍內(nèi)。與微處理器處理電流數(shù)據(jù)策略設(shè)定一致。
圖11 設(shè)備的運(yùn)行信息
本文設(shè)計(jì)的用電設(shè)備運(yùn)行狀態(tài)監(jiān)控系統(tǒng),節(jié)點(diǎn)利用新型數(shù)字型電流采集芯片HLW8032來(lái)對(duì)設(shè)備電流進(jìn)行獲取,解決了傳統(tǒng)電流檢測(cè)方法中存在的調(diào)理電路復(fù)雜問(wèn)題。利用WiFi收發(fā)模塊實(shí)現(xiàn)設(shè)備的遠(yuǎn)程聯(lián)網(wǎng)。云服務(wù)器系統(tǒng)的構(gòu)建,使用戶(hù)通過(guò)瀏覽器可遠(yuǎn)程查詢(xún)存儲(chǔ)在云服務(wù)器中設(shè)備運(yùn)行狀態(tài)、設(shè)備過(guò)載報(bào)警信息等。系統(tǒng)通過(guò)測(cè)試可穩(wěn)定運(yùn)行。下一步工作將主要集中在云服務(wù)器的功能完善,增加預(yù)警短信發(fā)送功能。