陳德富,劉小湖,邱寶象,吳華君,屈亮亮
(1.浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310023,2.萬(wàn)向錢(qián)潮股份有限公司,浙江 杭州 311215)
目前,“碳達(dá)峰”和“碳中和”已成為我國(guó)重要的戰(zhàn)略發(fā)展方向,其中能源的合理分配和有效利用是實(shí)現(xiàn)這一目標(biāo)的重要手段[1]。電能是當(dāng)前社會(huì)中重要的能源表現(xiàn)形式,它在為生產(chǎn)生活帶來(lái)便利的同時(shí),也面臨著巨大的浪費(fèi)。因此,如果能監(jiān)測(cè)設(shè)備的實(shí)時(shí)用電情況,那么就能進(jìn)行科學(xué)合理的調(diào)控,從而避免電能浪費(fèi)。然而,由于各種用電設(shè)備分布廣泛,導(dǎo)致獲取每個(gè)設(shè)備運(yùn)行時(shí)的精確電能數(shù)據(jù)非常困難,而物聯(lián)網(wǎng)技術(shù)的出現(xiàn)則成功解決了這一難題,利用廉價(jià)的物聯(lián)網(wǎng)模組和物聯(lián)網(wǎng)平臺(tái),方便人們輕松獲得設(shè)備運(yùn)行時(shí)的實(shí)時(shí)數(shù)據(jù),并在后續(xù)對(duì)這些數(shù)據(jù)進(jìn)行分析,制定高效的電能分配方案。
針對(duì)上述關(guān)鍵問(wèn)題,目前已有大量學(xué)者進(jìn)行了研究。吳玉鵬等人針對(duì)高桿燈照明系統(tǒng)的電能浪費(fèi)問(wèn)題,使用計(jì)量芯片CS5460A對(duì)電能參數(shù)進(jìn)行實(shí)時(shí)采集,并通過(guò)ZigBee模組進(jìn)行無(wú)線傳輸,實(shí)現(xiàn)對(duì)燈光亮度的智能控制[2]。范大勇設(shè)計(jì)了一種基于STM32和ATT7022EU的電能測(cè)量系統(tǒng),但該方案通過(guò)RS 485總線傳輸數(shù)據(jù),無(wú)法滿(mǎn)足無(wú)線傳輸?shù)男枨骩3]。黃豐磊等人設(shè)計(jì)了基于STM32和LabVIEW的電參數(shù)測(cè)量系統(tǒng),但該方案只適用于現(xiàn)場(chǎng)電參數(shù)采集,沒(méi)有考慮到遠(yuǎn)程測(cè)量的場(chǎng)景[4]。鄭爭(zhēng)兵等人設(shè)計(jì)了一種基于STM32的高精度電能采集系統(tǒng),使用WiFi模組將數(shù)據(jù)上傳到云服務(wù)器[5]。但在實(shí)際場(chǎng)景中,WiFi網(wǎng)絡(luò)并沒(méi)有實(shí)現(xiàn)大面積覆蓋,因此該方案不能被廣泛部署。為了克服上述方案存在的問(wèn)題,文中設(shè)計(jì)了一種基于NB-IoT和STM32的精確電能測(cè)量物聯(lián)系統(tǒng),使用計(jì)量芯片RN8209進(jìn)行設(shè)備用電功率的精確測(cè)量[6]。采用NB-IoT實(shí)現(xiàn)無(wú)線通信,NB-IoT由于覆蓋范圍廣、占用帶寬小、成本低,因此能很好解決設(shè)備的部署問(wèn)題,在能源領(lǐng)域的應(yīng)用研究中非常重要[7-8]。
系統(tǒng)的核心硬件主要由電能采集電路組成。使用電壓互感器和電流互感器對(duì)實(shí)際電壓、電流進(jìn)行轉(zhuǎn)換。RN8209芯片對(duì)轉(zhuǎn)換后的電壓、電流進(jìn)行采樣,然后芯片將采樣數(shù)據(jù)通過(guò)SPI總線傳輸?shù)絊TM32處理器。由處理器對(duì)原始數(shù)據(jù)進(jìn)行處理,得到實(shí)際的電流有效值和電壓有效值。最后,處理器將數(shù)據(jù)通過(guò)NB-IoT發(fā)送到阿里云。
系統(tǒng)的硬件設(shè)計(jì)方案如圖1所示。
圖1 系統(tǒng)硬件設(shè)計(jì)
由于用電設(shè)備的運(yùn)行都是由220 V交流電供電,對(duì)于高電壓、大電流信號(hào),RN8209芯片無(wú)法進(jìn)行直接測(cè)量,通過(guò)互感器可以將該類(lèi)信號(hào)直接轉(zhuǎn)換成芯片可以測(cè)量的范圍。除了起到感應(yīng)的作用外,互感器還具有隔離作用,能夠有效抑制交流電信號(hào)對(duì)芯片工作電路的干擾,提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性。系統(tǒng)采用ZMPT107電壓互感器對(duì)220 V交流電壓實(shí)現(xiàn)1∶1轉(zhuǎn)換。電壓互感電路設(shè)計(jì)如圖2所示。
圖2 電壓互感電路
為了將用電設(shè)備運(yùn)行時(shí)產(chǎn)生的大電流信號(hào)轉(zhuǎn)換為芯片可以測(cè)量的范圍,采用精密電流互感器TA1410實(shí)現(xiàn)對(duì)電流進(jìn)行5 A∶2.5 mA的比例轉(zhuǎn)換。電流互感電路設(shè)計(jì)如圖3所示。
圖3 電流互感電路
RN8209是一款單相多功能專(zhuān)用計(jì)量芯片,能測(cè)量電流有效值、電壓有效值、有功功率及無(wú)功功率等電能參數(shù);同時(shí)提供兩路獨(dú)立的有功功率有效值、電壓有效值、線頻率和過(guò)零中斷;支持全數(shù)字增益、相位和直流偏置校正,芯片支持SPI和UART兩種通信接口;內(nèi)嵌電源監(jiān)測(cè)電路,保證上電和斷電時(shí)芯片工作的可靠性。因此,選用RN8209芯片作為系統(tǒng)電能計(jì)量傳感器可滿(mǎn)足設(shè)計(jì)要求。RN8209傳感電路設(shè)計(jì)如圖4所示。
圖4 RN8209傳感電路設(shè)計(jì)
系統(tǒng)的軟件部分主要由電能采集軟件設(shè)計(jì)、NB-IoT初始化軟件設(shè)計(jì)和NB-IoT連接云平臺(tái)軟件設(shè)計(jì)組成。
系統(tǒng)上電后,首先由STM32處理器通過(guò)SPI總線向RN8209芯片的特殊命令寄存器發(fā)送寫(xiě)使能指令,之后,再向特殊命令寄存器發(fā)送復(fù)位指令對(duì)芯片進(jìn)行軟件復(fù)位。復(fù)位成功后,為提高測(cè)量的精確性,還需校準(zhǔn)電流有效值寄存器。校準(zhǔn)后關(guān)閉芯片的寫(xiě)使能功能,初始化流程結(jié)束。在主程序中讀取芯片電流有效值寄存器和電壓有效值寄存器中的值,再乘以對(duì)應(yīng)的比例系數(shù),得到負(fù)載設(shè)備運(yùn)行時(shí)真實(shí)的電壓和電流有效值。通過(guò)實(shí)驗(yàn)得出,電流有效值的比例系數(shù)約為0.000 6,電壓有效值的比例系數(shù)為0.000 12。電能采集端的軟件設(shè)計(jì)流程如圖5所示。
圖5 電能采集軟件設(shè)計(jì)流程
本系統(tǒng)中,STM32處理器通過(guò)串口發(fā)送特定AT指令給NB-IoT模塊,實(shí)現(xiàn)對(duì)模塊的初始化配置。主要過(guò)程如下:
(1)處理器發(fā)送字符串“AT ”,若模塊返回的字符串為“OK ”,則說(shuō)明模塊響應(yīng)正常;若為“ERROR ”,則說(shuō)明模塊工作異常,初始化失敗。
(2)處理器通過(guò)串口發(fā)送字符串“AT+CFUN=1 ”,打開(kāi)模塊的射頻功能。
(3)處理器發(fā)送字符串“AT+CIMI ”,該指令會(huì)查詢(xún)模塊的SIM卡號(hào),如果模塊返回“ERROR ”,則說(shuō)明未插入SIM卡或者模塊異常,初始化失敗。
(4)處理器發(fā)送字符串“AT+CGATT=1 ”,該指令是配置模塊的自動(dòng)入網(wǎng)指令,若返回“OK ”,則說(shuō)明模塊成功連接基站。
(5)處理器發(fā)送字符串“AT+CGPADDR ”,該指令會(huì)獲取基站分配的IP地址。如果模塊返回“OK ”,則說(shuō)明成功獲取IP地址,入網(wǎng)成功,否則模塊初始化失敗。
模塊入網(wǎng)初始化成功后,就可以對(duì)模塊進(jìn)行下一步配置使模塊連接到云平臺(tái)。系統(tǒng)使用NB-IoT模塊內(nèi)置的消息隊(duì)列遙測(cè)傳輸協(xié)議(Message Queuing Telemetry Transport,MQTT)連接阿里云的物聯(lián)網(wǎng)平臺(tái),MQTT作為一種輕量級(jí)消息傳輸協(xié)議,廣泛應(yīng)用于物聯(lián)網(wǎng)場(chǎng)景中[8]。模塊連接阿里云前首先需要在阿里云上創(chuàng)建對(duì)應(yīng)支持MQTT協(xié)議的設(shè)備,創(chuàng)建成功后會(huì)得到3個(gè)關(guān)鍵參數(shù):產(chǎn)品密鑰(ProductKey)、設(shè)備名稱(chēng)(DeviceName)和設(shè)備密鑰(DeviceSecret)。處理器結(jié)合這3個(gè)參數(shù),向NB-IoT模塊發(fā)送特定的AT指令,即可與云平臺(tái)建立連接。連接過(guò)程如下:
(1)首先,處理器需要對(duì)基本的連接參數(shù)進(jìn)行配置,參數(shù)為創(chuàng)建設(shè)備時(shí)得到的關(guān)鍵參數(shù),指令為“AT+QMTCFG="ALIAUTH",0,ProductKey,DeviceName,DeviceSecret ”。
(2) 處 理 器 發(fā) 送 指 令“AT+QMTOPEN=0,"203.107.45.14",1883”,模塊通過(guò)該指令連接阿里云服務(wù)器對(duì)應(yīng)端口,與服務(wù)器建立連接。
(3) 處 理 器 發(fā) 送 指 令“AT+QMTCONN=0,DeviceName”,通過(guò)該指令實(shí)現(xiàn)與云平臺(tái)上所創(chuàng)建的設(shè)備對(duì)接,該指令執(zhí)行成功后,云平臺(tái)上創(chuàng)建的設(shè)備會(huì)顯示為在線。設(shè)備在線后,即可將傳感器采集的數(shù)據(jù)封裝為JSON格式,然后發(fā)送給云平臺(tái)。在云平臺(tái)上可以觀察到模塊實(shí)時(shí)上傳的數(shù)據(jù)。
系統(tǒng)主要由計(jì)量芯片RN8209、STM32處理器和NB-IoT模塊構(gòu)成。實(shí)驗(yàn)時(shí),將零線和火線接在電路板的兩個(gè)接線端子上,經(jīng)電壓互感器和電路互感器連接到計(jì)量芯片的對(duì)應(yīng)引腳,系統(tǒng)接入白熾燈作為電路負(fù)載。計(jì)量芯片的SPI通信接口與STM32的管腳相連,處理器使用GPIO口模擬SPI工作時(shí)序?qū)崿F(xiàn)與計(jì)量芯片通信,NB-IoT模塊與處理器的串口2管腳相連。經(jīng)上電測(cè)試后,各模塊工作正常,能實(shí)現(xiàn)對(duì)負(fù)載設(shè)備的電參數(shù)測(cè)量和數(shù)據(jù)上傳。系統(tǒng)實(shí)物如圖6所示。
圖6 系統(tǒng)實(shí)物
接通220 V交流電后,系統(tǒng)對(duì)負(fù)載設(shè)備工作時(shí)的電壓電流有效值進(jìn)行測(cè)量。在主程序中每10 s測(cè)量一次負(fù)載當(dāng)前的電壓和電流有效值,將數(shù)據(jù)通過(guò)串口顯示在PC端,并控制NB-IoT使用MQTT協(xié)議將數(shù)據(jù)上傳至阿里云平臺(tái)。其中,云平臺(tái)上顯示的電流有效值的變化曲線如圖7所示??梢钥闯?,系統(tǒng)各部分工作正常,達(dá)到了設(shè)計(jì)要求。
圖7 云平臺(tái)顯示數(shù)據(jù)
圖7中電流的變化曲線表明了電路中負(fù)載的工作狀態(tài)。實(shí)驗(yàn)開(kāi)始時(shí),電路中未接入負(fù)載,測(cè)試的電流有效值在0附近。然后接入220 V/3 W的白熾燈,此時(shí)負(fù)載正常工作,電流顯示約53 mA。斷開(kāi)白熾燈后,電流有效值回到0附近。最后再接入220 V/5 W的白熾燈,顯示的電流有效值約65 mA。
實(shí)驗(yàn)結(jié)果表明,該電能監(jiān)測(cè)物聯(lián)系統(tǒng)通過(guò)RN8209計(jì)量芯片對(duì)負(fù)載的工作電流和電壓實(shí)現(xiàn)了精確采集,并使用NBIoT模塊將數(shù)據(jù)實(shí)時(shí)上傳,實(shí)現(xiàn)了對(duì)用電設(shè)備使用狀態(tài)的遠(yuǎn)程監(jiān)測(cè)。適用于各種場(chǎng)景下的用電設(shè)備電能數(shù)據(jù)采集,為后續(xù)優(yōu)化電能分配策略提供了有力的數(shù)據(jù)支撐。相信這類(lèi)電能監(jiān)測(cè)物聯(lián)系統(tǒng)未來(lái)將在能源優(yōu)化分配中發(fā)揮關(guān)鍵作用,實(shí)現(xiàn)能源的有效利用和智能分配[9-10]。
物聯(lián)網(wǎng)技術(shù)2022年12期