薛家祥,葉 興,吳 堅(jiān)
(華南理工大學(xué) 機(jī)械與汽車工程學(xué)院,廣州 510640)
隨著化石能源的消耗和環(huán)保觀念的深入人心,尋找可再生、綠色的能源代替化石能源已經(jīng)成為必然的趨勢(shì)。光伏發(fā)電是一種綠色、安全、取之不盡的新能源,然而,光伏發(fā)電功率極易受到溫度、濕度、太陽能輻射等因素的影響而出現(xiàn)波動(dòng)[1]。近年來隨著云計(jì)算技術(shù)快速的發(fā)展,云計(jì)算已經(jīng)廣泛地運(yùn)用到各行業(yè)。為了方便用戶獲取實(shí)時(shí)監(jiān)控發(fā)電狀況以及維修人員快速排除故障,因此開發(fā)基于阿里云平臺(tái)的光伏發(fā)電監(jiān)控系統(tǒng)對(duì)于當(dāng)前的光伏發(fā)電監(jiān)控具有極大的應(yīng)用價(jià)值。
在此所提出的云平臺(tái)智能監(jiān)控系統(tǒng)采用阿里云ECS服務(wù)器,以STM32為主控芯片的通信模塊作為云平臺(tái)監(jiān)控系統(tǒng)的通信網(wǎng)關(guān),使用Java語言搭建了后臺(tái)服務(wù)器并且開發(fā)了Android系統(tǒng)移動(dòng)端監(jiān)控App。
基于云平臺(tái)的光伏發(fā)電智能監(jiān)控系統(tǒng)包括:太陽能板、光伏發(fā)電逆變器以及電池組、太陽能輻射采集模塊、通信網(wǎng)關(guān)、智能移動(dòng)設(shè)備端、阿里云服務(wù)器。系統(tǒng)結(jié)構(gòu)如圖1所示,該系統(tǒng)可對(duì)光發(fā)電參數(shù)、太陽能輻射強(qiáng)度、天氣狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控。用戶可以直觀地獲取每日以及歷史發(fā)電量,檢修人員可以遠(yuǎn)程在線監(jiān)測(cè)電參數(shù)。
圖1 光伏監(jiān)控總體框架Fig.1 Overall frame of PV monitoring
所設(shè)計(jì)的通信網(wǎng)關(guān)模塊具有WiFi以及ZigBee兩種無線通信方式。通信網(wǎng)關(guān)模塊以STM32F103為主控芯片,ZigBee通信模塊選用廣州致遠(yuǎn)公司的ZM5168模塊,WiFi無線通信選用深圳安信可公司基于樂鑫ESP8266模塊開發(fā)的ESP-12F。兩者均通過與主控芯片串口端相連接。通信網(wǎng)關(guān)模塊通過RS-232總線與光伏逆變器通信,逆變器主控芯片采集光伏電站各組成部分的狀態(tài)數(shù)據(jù),傳輸?shù)骄W(wǎng)關(guān)模塊進(jìn)行解析和重新打包,然后通過WiFi模塊(STA+AP模式)上傳到云端服務(wù)器中。網(wǎng)關(guān)模塊通過Zig-Bee模塊與輻射傳感器模組通信,采集太陽輻射強(qiáng)度數(shù)據(jù),再通過WiFi上傳到云端服務(wù)器中。云端服務(wù)器讀取通信網(wǎng)關(guān)數(shù)據(jù)包,解析數(shù)據(jù)包并將數(shù)據(jù)存入云數(shù)據(jù)庫。網(wǎng)關(guān)通信如圖2所示。
圖2 網(wǎng)關(guān)通信示意圖Fig.2 Gateway communication schematic diagram
采用MySQL 5.7數(shù)據(jù)庫。MYSQL占用體積小,操作簡(jiǎn)單,提供多種編程接口,通過自身的權(quán)限訪問控制機(jī)制限制用戶訪問,保證所存儲(chǔ)數(shù)據(jù)的安全;以表格的形式存儲(chǔ)數(shù)據(jù),訪問速度較快,靈活度較高,有效地防止數(shù)據(jù)冗余。因此,選用MYSQL作為本監(jiān)控系統(tǒng)的數(shù)據(jù)庫并將其部署到阿里云ECS服務(wù)器,并將其部署到阿里云ECS服務(wù)器,作為監(jiān)控系統(tǒng)的后端數(shù)據(jù)庫,云數(shù)據(jù)庫作為監(jiān)控系統(tǒng)的數(shù)據(jù)中心,至關(guān)重要,不僅起到了存儲(chǔ)數(shù)據(jù)的作用,還可提供邏輯計(jì)算。
光伏監(jiān)控系統(tǒng)數(shù)據(jù)庫創(chuàng)建 pvindata,grid,battery,history表格。pvdata表格存儲(chǔ)光伏組件工作數(shù)據(jù),記錄光伏組件的實(shí)時(shí)發(fā)電的電壓、電流等數(shù)據(jù)。grid表存儲(chǔ)實(shí)時(shí)電網(wǎng)數(shù)據(jù),記錄電網(wǎng)的電壓、電流等參數(shù)。battery表格記錄電池組的電壓、電流、功率以及電池電量。history表格記錄光伏發(fā)電的歷史數(shù)據(jù),包括年發(fā)電量、月發(fā)電量。
云服務(wù)器采用阿里云ECS服務(wù)器。阿里云ECS是基于阿里云飛天操作系統(tǒng)的云服務(wù)器,可根據(jù)用戶需求提供彈性可伸縮的計(jì)算服務(wù)。在阿里云后臺(tái)部署Windows系統(tǒng),并且安裝Java環(huán)境以及TOMCAT 8.5軟件,開放服務(wù)器訪問端口。
移動(dòng)端采用Android系統(tǒng)智能手機(jī)或者平板作為監(jiān)控客戶端。
光伏監(jiān)控系統(tǒng)中,通信網(wǎng)關(guān)是信息交換的關(guān)鍵,承擔(dān)著逆變器與云服務(wù)、太陽能輻射模組傳感器與云服務(wù)器之間的通信。目前在物聯(lián)網(wǎng)應(yīng)用上多采用esp8266 WiFi模塊進(jìn)行聯(lián)網(wǎng)通信。WiFi通信模塊具有 AP(access point)工作模式、STA(station)工作模式、AP+STA模式[2-3]。WiFi模塊通過連接廣域網(wǎng),即可與部署于云端平臺(tái)的遠(yuǎn)程服務(wù)器進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)設(shè)備數(shù)據(jù)上云以及云端智能控制。
由于ZigBee模塊的價(jià)格相對(duì)較便宜,而且功耗低,自組網(wǎng)的能力強(qiáng)大,使得ZigBee通信技術(shù)在小型局域網(wǎng)通信中具有明顯優(yōu)勢(shì)[4-5]。故選用了ZigBee通信技術(shù)作為無線網(wǎng)關(guān)與太陽能輻射強(qiáng)度采集系統(tǒng)通信。
通信網(wǎng)關(guān)主要包括:網(wǎng)關(guān)與逆變器的串口通信、網(wǎng)關(guān)與太陽能輻射采集模塊的ZigBee通信、網(wǎng)關(guān)與云服務(wù)器通信。綜上所述選取以ARM核心的STM32F103作為網(wǎng)關(guān)的主控芯片。網(wǎng)關(guān)主控電路如圖3所示。
圖3 網(wǎng)關(guān)模塊主控電路Fig.3 Main control circuit of gateway module
網(wǎng)關(guān)模塊通過STM32串口USART2與逆變器RS232總線相連接,接入光伏逆變器實(shí)現(xiàn)通信。
網(wǎng)關(guān)與太陽能輻射模組傳感器通過ZigBee通信。ZigBee通信選用ZM5168模塊,ZM5158模塊內(nèi)集成了射頻電路以及復(fù)雜的通信協(xié)議,而且具有UART,SPI等通信接口,具有開發(fā)難度低、可靠性高、功耗低、性能高等特點(diǎn)。根據(jù)ZM5168模塊的電氣特性及管腳功能,設(shè)計(jì)其外圍電路,如圖4a所示。其中,TXD,RXD管腳分別與 MCU的 USART1的U1TX,U1RX相連接,通過與太陽能輻射采集模塊的ZigBee通信。
WiFi模塊ES-12F內(nèi)集成了完整的TCP/IP網(wǎng)絡(luò)協(xié)議,支持IEEE802.11 b/g/n協(xié)議和實(shí)時(shí)操作系統(tǒng)(RTOS),可通過二次開發(fā)后接入云端服務(wù),并支持云端進(jìn)行OTA固件升級(jí)。據(jù)ESP-12F模塊管腳功能,設(shè)計(jì)電路如圖4b所示。其中,CH_PD管腳外接10 kΩ的上拉電阻,使能ESP-12F模塊;TXD,RXD管腳分別與MCU串口USART3的U3RX,U3TX相連接;RST管腳外接按鍵復(fù)位電路。
圖4 模塊外圍電路Fig.4 Module peripheral circuit
由于傳統(tǒng)的ARM程序燒寫方式需要配備仿真器,且需要人工手動(dòng)設(shè)置啟動(dòng)方式即ISP燒寫,ARM燒寫程序需要配備相對(duì)昂貴的仿真器以及特定的JTAG電路,ISP燒寫可利用STM32芯片USART1(使用跳線帽與ZigBee模塊隔離)進(jìn)行燒寫。一鍵下載電路即在硬件層次的對(duì)ISP燒寫進(jìn)行改進(jìn),無需手動(dòng)設(shè)置啟動(dòng)方式,便于實(shí)現(xiàn)程序下載。
一鍵下載電路如圖5所示。圖中,USB轉(zhuǎn)TTL電平采用CH340G芯片。該芯片不僅實(shí)現(xiàn)電平轉(zhuǎn)換還可由下載軟件控制DTR#,RTS#引腳輸出的高低電平。當(dāng)DTR#輸出高電平,RTS#輸出低電平,則 Q1,Q2被導(dǎo)通,BOOT0被拉低,RST復(fù)位引腳也被拉低,實(shí)現(xiàn)S復(fù)位。緊接著DTR#輸出高電平,RTS#輸出低電平,芯片進(jìn)入ISP模式,從而實(shí)現(xiàn)一鍵下載。
圖5 USB一鍵下載電路Fig.5 USB one-click download circuit
光伏監(jiān)控系統(tǒng)的軟件開發(fā)主要由通信網(wǎng)關(guān)軟件設(shè)計(jì)、云服務(wù)器后臺(tái)軟件設(shè)計(jì)、監(jiān)控移動(dòng)端軟件設(shè)計(jì)三大部分組成。
通信網(wǎng)關(guān)部分軟件,主要是將光伏逆變器的數(shù)據(jù)和太陽能輻射的數(shù)據(jù)進(jìn)行打包,上傳到云服務(wù)器。軟件流程如圖6所示。
首先初始化主控芯片,判斷云服務(wù)器是否下達(dá)指令,定時(shí)向云服務(wù)器發(fā)送數(shù)據(jù)查詢指令,通信正常則將數(shù)據(jù)打包為JSON(JavaScript object notation)數(shù)據(jù)包上傳至云服務(wù)器,如果通訊超時(shí)則報(bào)錯(cuò)[6]。
所設(shè)計(jì)的網(wǎng)絡(luò)通信數(shù)據(jù)格式為JSON數(shù)據(jù)格式,需要在STM32工程文件中導(dǎo)入cJSON庫。cJSON數(shù)據(jù)占用的STM32的堆內(nèi)存,需要開辟充足的內(nèi)存空間進(jìn)行cJSON數(shù)據(jù)打包,以及時(shí)釋放內(nèi)存,避免內(nèi)存溢出。
圖6 網(wǎng)關(guān)通信流程Fig.6 Gateway communication flow chart
阿里云云端部署Linux操作系統(tǒng),開放公網(wǎng)訪問安全組,部署MySQL 5.7即可對(duì)云服務(wù)器進(jìn)行公網(wǎng)訪問。
所用云服務(wù)器后臺(tái)程序采用Java語言編寫。基于SSM(Spring+SpringMVC+MyBatis)框架搭建云端后臺(tái)服務(wù)器,SSM框架是由Spring,MyBatis兩個(gè)開源框架整合而成的,常用于數(shù)據(jù)源較為簡(jiǎn)單的Web項(xiàng)目框架。云端后臺(tái)代碼采用Eclipse進(jìn)行編譯,將編譯成功的工程打包,發(fā)布到云端Tomcat 8.5服務(wù)器下,即完成云端部署。
網(wǎng)關(guān)通信模塊通過HTTP(HyperText transfer protocol)通信請(qǐng)求,將數(shù)據(jù)推送到云服務(wù)器。云服務(wù)器解析數(shù)據(jù)包,并將數(shù)據(jù)寫入云端數(shù)據(jù)庫。云服務(wù)器根據(jù)智能移動(dòng)端的HTTP請(qǐng)求,服務(wù)器后臺(tái)從數(shù)據(jù)庫讀取相應(yīng)的數(shù)據(jù),并將數(shù)據(jù)打包發(fā)送到智能移動(dòng)端[7]。
移動(dòng)端光伏監(jiān)控應(yīng)用的界面主要包括登陸界面、監(jiān)控主界面、交易界面、光伏發(fā)電歷史數(shù)據(jù)界面以及App設(shè)置界面。光伏發(fā)電監(jiān)控界面不僅顯示逆變器電參數(shù),還顯示電池容量、天氣情況,讓用戶以最直觀的方式獲得光伏發(fā)電實(shí)時(shí)情況。歷史發(fā)電界面統(tǒng)計(jì)了月發(fā)電量以及年發(fā)電量。所設(shè)計(jì)的App已經(jīng)成功地應(yīng)用于實(shí)驗(yàn)室光伏發(fā)電監(jiān)控系統(tǒng)。
通信網(wǎng)關(guān)進(jìn)行通信測(cè)試時(shí),需要重新將WiFi模塊燒寫固件并且調(diào)成STA模式,并接入路由器。通過內(nèi)置的軟件自動(dòng)與光伏云端服務(wù)器建立TCP/IP連接后,隨即開始每隔1 s對(duì)光伏電站采集1次數(shù)據(jù)的循環(huán)過程,并對(duì)所采集數(shù)據(jù)包進(jìn)行分段,然后傳輸?shù)焦夥贫朔?wù)器。登陸服務(wù)器的數(shù)據(jù)庫后臺(tái)查看光伏發(fā)電數(shù)據(jù)。
用戶賬戶登錄頁面如圖8所示。要求用戶正確輸入賬戶和密碼,云端服務(wù)器驗(yàn)證賬戶和密碼正確后,方可登錄成功進(jìn)入監(jiān)控頁面。用戶登錄后,進(jìn)入“監(jiān)控”主界面,界面中只顯示部分最直接反應(yīng)光伏電站工作狀態(tài)的數(shù)據(jù),如光伏發(fā)電功率、發(fā)電量等。遠(yuǎn)程監(jiān)控App可通過4G網(wǎng)絡(luò)從云端服務(wù)器獲取光伏電站發(fā)電數(shù)據(jù),同時(shí)也驗(yàn)證了云端服務(wù)器可實(shí)現(xiàn)預(yù)定功能。
圖7 通信網(wǎng)關(guān)測(cè)試結(jié)果Fig.7 Test results of communication gateway
圖8 App測(cè)試結(jié)果Fig.8 App test results
采用基于阿里云服務(wù)器部署了MySQL5.7數(shù)據(jù)庫、Tomcat 8.5,Java語言,編寫了云端后臺(tái)服務(wù)器代碼以及安卓監(jiān)控App,開發(fā)了以STM32為主控芯片下的多種協(xié)議下的通信網(wǎng)關(guān),構(gòu)成了完整的光伏發(fā)電監(jiān)控系統(tǒng)。經(jīng)過測(cè)試表明,以STM32為主控系統(tǒng)的通信網(wǎng)關(guān)與逆變器、太陽能模組傳感器、云端服務(wù)器通信正常穩(wěn)定,通信模塊工作狀態(tài)良好。監(jiān)控App能夠保持正常的運(yùn)行狀態(tài)同時(shí)與云端服務(wù)器能夠?qū)崟r(shí)交互,界面顯示良好。試驗(yàn)結(jié)果表明,基于阿里云平臺(tái)的智能監(jiān)控系統(tǒng),能夠滿足光伏發(fā)電的實(shí)時(shí)監(jiān)控要求。