翁同洋, 劉大明, 畢忠勤
(上海電力學(xué)院 a.電子與信息工程學(xué)院, b.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上?!?00090)
?
電能能耗實(shí)時(shí)監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
翁同洋a,b, 劉大明b, 畢忠勤b
(上海電力學(xué)院 a.電子與信息工程學(xué)院, b.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海200090)
摘要:隨著智能電網(wǎng)的發(fā)展,用戶側(cè)對設(shè)備能耗的監(jiān)測要求越來越高.為了能實(shí)時(shí)監(jiān)測電能的使用情況,設(shè)計(jì)了一種電能能耗實(shí)時(shí)監(jiān)測系統(tǒng).結(jié)合無線傳感器網(wǎng)絡(luò)技術(shù),在硬件上采用RN8209G計(jì)量芯片+TelosB節(jié)點(diǎn),在軟件上使用TinyOS操作系統(tǒng)nesC編程語言+C#終端顯示.將節(jié)點(diǎn)實(shí)物設(shè)計(jì)成插座形式,完成了對用戶側(cè)電能的實(shí)時(shí)監(jiān)測.
關(guān)鍵詞:電能能耗; 實(shí)時(shí)監(jiān)測; 無線傳感器網(wǎng)絡(luò); TinyOS系統(tǒng)
當(dāng)今社會經(jīng)濟(jì)快速發(fā)展,電力需求量持續(xù)增加,而電力供需形勢卻持續(xù)緊張,用電形勢十分嚴(yán)峻.為此,根據(jù)我國國情,電力行業(yè)制定了堅(jiān)強(qiáng)智能電網(wǎng)發(fā)展規(guī)劃.隨著智能電網(wǎng)的發(fā)展,為了更好地服務(wù)用戶,需要提供更加精確和實(shí)時(shí)的用戶側(cè)用電設(shè)備能耗監(jiān)測.目前,國內(nèi)大多數(shù)家庭和企業(yè)使用單相式、電子式電能表,其顯示界面和信息存儲量小,處理能力有限,可操作性差,只能讀出每月的總用電量,無法對用電信息進(jìn)行完整的分析,無法方便用戶了解各用電器的耗能情況以改變用電習(xí)慣.
物聯(lián)網(wǎng)的發(fā)展為能耗監(jiān)測設(shè)計(jì)提供了新思路.繼計(jì)算機(jī)、互聯(lián)網(wǎng)與移動通信網(wǎng)之后,物聯(lián)網(wǎng)成為另一大重要的信息技術(shù),它融合了半導(dǎo)體、傳感器、計(jì)算機(jī)、通信網(wǎng)絡(luò)等多種技術(shù).物聯(lián)網(wǎng)技術(shù)發(fā)展的核心是無線傳感器網(wǎng)絡(luò),它是由大量低成本、低功耗的傳感器節(jié)點(diǎn)組成,以無線通信的方式形成多跳和自組織網(wǎng)絡(luò),目的是將采集并處理過的監(jiān)測對象的特定信息發(fā)送給用戶,以便進(jìn)行分析和監(jiān)控[1].本文設(shè)計(jì)的基于無線傳感器網(wǎng)絡(luò)的電能能耗實(shí)時(shí)監(jiān)測系統(tǒng),能實(shí)時(shí)采集每一個(gè)插孔上的電壓、電流等數(shù)據(jù),以規(guī)避風(fēng)險(xiǎn),并分析每一個(gè)用電器的用電信息,很好地解決了前述電能表存在的問題.
1硬件設(shè)計(jì)
本系統(tǒng)的硬件主要包括電源模塊、電能計(jì)量模塊、溫濕光傳感器、控制器、無線收發(fā)模塊和串口模塊6個(gè)部分.這些模塊之間的關(guān)系如圖1所示.
圖1 各模塊結(jié)構(gòu)示意
圖1中,電源模塊的功能是將市電轉(zhuǎn)化為直流電,為其他模塊供電;電能計(jì)量模塊采集用電器的電壓、電流、有功功率和用電量4組數(shù)據(jù);溫濕傳感器和光照傳感器采集節(jié)點(diǎn)的溫度、濕度和光照強(qiáng)度3組數(shù)據(jù);控制器是硬件系統(tǒng)的核心,讀取和處理數(shù)據(jù),并協(xié)調(diào)各模塊間的運(yùn)作;無線收發(fā)模塊完成無線通信和組網(wǎng)的功能;串口模塊負(fù)責(zé)節(jié)點(diǎn)與PC之間的通信.
系統(tǒng)中的電源模塊和電能計(jì)量模塊是自主設(shè)計(jì)的,溫濕光傳感器、控制器、無線收發(fā)模塊和串口模塊是集成在由CrossBow公司研發(fā)的TelosB節(jié)點(diǎn)上.
電源模塊設(shè)計(jì)將220 V交流電經(jīng)過變壓、整流和濾波后輸入系統(tǒng),然后通過三端穩(wěn)壓集成電路7805輸出直流5 V,最后通過LD1086D2M33低壓差線性穩(wěn)壓芯片實(shí)現(xiàn)5 V到3.3 V的轉(zhuǎn)換,以確保向其他模塊提供DC3.3 V和DC5 V穩(wěn)定電壓.
計(jì)量芯片選用RN8209G.該芯片可以測量有功功率和有功能量,并提供獨(dú)立的電流有效值和電壓有效值.提供SPI和UART兩個(gè)串行接口,方便與外部單片機(jī)通信.內(nèi)部電源監(jiān)控電路可以保證芯片在通斷電時(shí)可靠運(yùn)行[2].
溫濕度傳感器采用由Sensirion公司的SHT11芯片,其內(nèi)部包含了一個(gè)由能隙材料制成的溫度傳感元件和一個(gè)由電容式聚合體制成的濕度傳感元件[3].可以測量溫度范圍是-40~+120 ℃,濕度范圍為0~100%RH,提供電流輸出.光敏傳感器采用由Hamamatsu公司研發(fā)的S1087和S1087-01,它們是一種陶瓷封裝的光電測量計(jì),可以測量紅外光與可見光.兩傳感器輸出的電流信號通過大電阻轉(zhuǎn)換電壓信號,再送入控制器內(nèi)的A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換.
控制器采用TI公司生產(chǎn)的16位超低功耗單片機(jī)MSP430F1611.該單片機(jī)處理能力較強(qiáng),片內(nèi)外設(shè)豐富;具有支持在線編程和仿真的48KB FLASH存儲器;程序失控時(shí)看門狗能夠迅速復(fù)位;擁有16位定時(shí)器(Timer_A和Timer_B)可用于定時(shí)、計(jì)數(shù)等;多功能串口(USART)能實(shí)現(xiàn)一級或者多級同步、異步和12 C串口通信;I/O端口較多,其P1端口和P2端口能接受外部上升沿或下降沿中斷輸入;12位A/D轉(zhuǎn)換器轉(zhuǎn)換率高,可以滿足大部分?jǐn)?shù)據(jù)采集的應(yīng)用.
無線收發(fā)模塊采用Chipcon公司研發(fā)的無線收發(fā)芯片CC2420,它能夠兼容2.4GHz IEEE 802.15.4.該芯片將來自控制器的數(shù)據(jù)幀轉(zhuǎn)換為無線電波,采用半雙工通信,既可用于發(fā)送又可用于接收.MSP430F1611與CC2420通過SPI方式通信,其中MSP430F1611采用主模式,CC2420采用從模式.
串口模塊采用FTDI公司的FT232BM芯片.該芯片能夠通過UART實(shí)現(xiàn)USB與RS232,RS422/RS485串行數(shù)據(jù)協(xié)議雙向轉(zhuǎn)換[4].
系統(tǒng)節(jié)點(diǎn)設(shè)計(jì)成插座形式,圖2是其實(shí)物圖.
圖2 節(jié)點(diǎn)實(shí)物圖像
2軟件設(shè)計(jì)
電能能耗實(shí)時(shí)監(jiān)測系統(tǒng),使用TinyOS操作系統(tǒng).TinyOS系統(tǒng)是基于事件驅(qū)動的操作系統(tǒng),目前在無線傳感器網(wǎng)絡(luò)研究領(lǐng)域中應(yīng)用最為廣泛[5],其架構(gòu)方式組件化、設(shè)計(jì)模塊化,具有輕線程、主動消息等特點(diǎn),能夠快速實(shí)現(xiàn)各種代碼量小、耗能少、并發(fā)性高、魯棒性好的設(shè)計(jì)應(yīng)用[6].TinyOS系統(tǒng)、庫和應(yīng)用程序都采用nesC語言編寫.nesC語言的語法與C語言類似,是一種基于結(jié)構(gòu)化組件的應(yīng)用程序語言,支持TinyOS并發(fā)模型[7].
2.1軟件整體思路與初始化
軟件設(shè)計(jì)的整體思路是:節(jié)點(diǎn)上電后,先進(jìn)行初始化.接下來通過設(shè)定周期定時(shí)器以使節(jié)點(diǎn)周期性地讀取溫度、濕度、光照和采集電能信息.同時(shí)開啟天線,無線收發(fā)模塊接收子節(jié)點(diǎn)數(shù)據(jù)包以及將數(shù)據(jù)包發(fā)送至父節(jié)點(diǎn).
數(shù)據(jù)包在無線傳感器網(wǎng)絡(luò)中經(jīng)過一跳或者多跳到達(dá)匯聚節(jié)點(diǎn),PC通過匯聚節(jié)點(diǎn)接收這些信息,并處理、顯示到終端界面上.主程序流程圖如圖3所示.
圖3 主程序流程示意
為保證數(shù)據(jù)采集的實(shí)時(shí)性和簡化程序,采用多線程并發(fā)模式,使用多個(gè)定時(shí)器分別實(shí)現(xiàn)對各物理量的采集.為保證準(zhǔn)確性,每次啟動時(shí)計(jì)量模塊都需要初始化一次.因此,設(shè)計(jì)了節(jié)點(diǎn)上電主程序運(yùn)行時(shí),控制器首先通過串口向計(jì)量芯片的寄存器寫入一串初始化字節(jié)的機(jī)制.這些字節(jié)和其執(zhí)行的功能如表1所示.
2.2溫濕光采集
溫度、濕度、光照強(qiáng)度是節(jié)點(diǎn)所處地理位置的比較基礎(chǔ)也是比較重要的信息.獲取這些數(shù)據(jù)也有利于后期的分析判斷.例如,溫度可以判斷節(jié)點(diǎn)是否過熱,提醒是否需要關(guān)斷,也可以判斷出室內(nèi)是否開了空調(diào);濕度可以判斷室內(nèi)空氣是否干燥,提醒是否需要開加濕器;光照強(qiáng)度可以判斷是否開了燈等.
表1 初始化字節(jié)與執(zhí)行功能
由于溫濕傳感器是 Sensirion公司的SHT11,光敏傳感器是Hamamatsu公司的S1087和S1087-01,所以nesC語言編程用到的組件分別是SensirionSht11C()和HamamatsuS1087ParC().讀取傳感器數(shù)值都是使用Read()接口,要讀取對應(yīng)的傳感器數(shù)值只需將Read()線配到相應(yīng)組件.
設(shè)定了3個(gè)每4 s周期觸發(fā)一次的定時(shí)器Timer1,Timer2,Timer3,觸發(fā)后分別執(zhí)行讀溫度、讀濕度、讀光照強(qiáng)度的命令,讀取成功后分別賦給變量temp,hum,photo.
2.3電能信息采集
電壓、電流、有功功率、用電量這4組數(shù)據(jù)是系統(tǒng)設(shè)計(jì)的核心.由于TelosB節(jié)點(diǎn)無法直接讀取,因此設(shè)計(jì)了外接電能采集硬件電路,兩者之間通過UART串口通信.外接電路做到了TelosB給出一個(gè)命令,它會立即做出相應(yīng)的反饋,具體見表2.
由此,設(shè)計(jì)了單片機(jī)周期性向UART串口發(fā)送命令和接受來自串口數(shù)據(jù)的機(jī)制,圖3中的電能采集部分程序流程見圖4.
表2 電能數(shù)據(jù)字節(jié)
注:b[0],b[1],b[2],b[3]—該數(shù)據(jù)的第1個(gè)、第2個(gè)、第3個(gè)、第4個(gè)字節(jié).
圖4 電能采集程序流程示意
根據(jù)圖3和圖4,使用nesC編程語言實(shí)現(xiàn).此外,由于程序運(yùn)行過程中易受計(jì)量模塊等電磁干擾,因此加入了看門狗程序語句:
WDTCTL=WDT_ARST_1000
這樣可以使程序穩(wěn)定運(yùn)行.
2.4信息發(fā)送組網(wǎng)
程序?qū)⑺杉降臏囟?、濕度、光照、電壓、電流、有功功率和用電量以十六進(jìn)制字節(jié)組成數(shù)據(jù)幀.一幀共有55個(gè)字節(jié),還包括:開頭標(biāo)志位;目標(biāo)地址(這里是以廣播的方式發(fā)送);數(shù)據(jù)幀的長度;節(jié)點(diǎn)ID;發(fā)包次數(shù);父節(jié)點(diǎn)ID;固定字節(jié)(CA FE);經(jīng)過的跳數(shù);校驗(yàn)位;結(jié)尾標(biāo)志位等.舉例如圖5所示.
節(jié)點(diǎn)將采集到的數(shù)據(jù)封裝,并通過CC2420無線收發(fā)模塊向外發(fā)送,組成無線傳感器網(wǎng)絡(luò).本系統(tǒng)是面向家庭使用,采用比較簡單的CTP協(xié)議,以廣播方式傳送.末端節(jié)點(diǎn)采集到數(shù)據(jù)封裝發(fā)送給其父節(jié)點(diǎn);其父節(jié)點(diǎn)收到這條數(shù)據(jù)后將自己的ID寫入該數(shù)據(jù)的父節(jié)點(diǎn)ID位(第23位和第24位),并使跳數(shù)(第29位)加1,該父節(jié)點(diǎn)自己也將采集數(shù)據(jù),一并封裝后再發(fā)送給自己的父節(jié)點(diǎn),即父節(jié)點(diǎn)的父節(jié)點(diǎn);新的父節(jié)點(diǎn)對于子節(jié)點(diǎn)采集來的數(shù)據(jù)同樣寫入自己ID和增加跳數(shù),但是對于子節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù)(即子節(jié)點(diǎn)的子節(jié)點(diǎn))只增加跳數(shù).即每一條數(shù)據(jù)的父節(jié)點(diǎn)ID固定,而跳數(shù)隨轉(zhuǎn)發(fā)次數(shù)的增加而增加.如此,數(shù)據(jù)傳遞至與PC連接的匯聚節(jié)點(diǎn).
3終端顯示設(shè)計(jì)與調(diào)試
匯聚節(jié)點(diǎn)通過USB直接連接PC,其他節(jié)點(diǎn)產(chǎn)生的所有數(shù)據(jù)最終都將由它經(jīng)串口模塊傳遞至PC.這些信息全是一串串十六進(jìn)制數(shù)據(jù)幀,如圖5所示.用戶無法直接讀取這些信息,由此,本系統(tǒng)使用C#設(shè)計(jì)了終端顯示程序.
經(jīng)過多次校驗(yàn),得出字節(jié)與實(shí)際值的換算公式,見表2.
在匯聚節(jié)點(diǎn)已連接上PC時(shí),打開終端顯示程序,進(jìn)行監(jiān)控.主界面左邊以列表的形式顯示了各節(jié)點(diǎn)實(shí)時(shí)的溫度、濕度、光照、電壓、電流、功率、用電量、功率因數(shù)的數(shù)據(jù),右邊以按鈕的紅或綠色直觀顯示了各節(jié)點(diǎn)的通斷情況.增加了ZedGraph控件,點(diǎn)擊按鈕可以顯示一段時(shí)間內(nèi)溫度、濕度、光照、電壓、電流和功率6組數(shù)據(jù)的變化曲線圖.圖6為監(jiān)測系統(tǒng)主界面,其中的3組數(shù)據(jù)分別展示了飲水機(jī)(13,待機(jī))、節(jié)能燈(14)和空調(diào)(15,待機(jī))運(yùn)行狀態(tài).
此外可切換至地圖模式.在預(yù)先設(shè)定好經(jīng)緯度的情況下能夠在百度地圖上顯示各節(jié)點(diǎn)的位置情況,以及某一組數(shù)據(jù)(比如電壓,可切換)的實(shí)時(shí)數(shù)據(jù).根據(jù)上述的CTP協(xié)議的特性,設(shè)計(jì)以兩節(jié)點(diǎn)之間連接一條直線的形式實(shí)時(shí)顯示數(shù)據(jù)的傳輸路徑.
使用SQL Server 2005設(shè)計(jì)了數(shù)據(jù)庫以存儲歷史數(shù)據(jù),涵蓋了7組數(shù)據(jù)和時(shí)間、功率因數(shù)、節(jié)點(diǎn)ID共10個(gè)字段.
圖7展示了一定范圍內(nèi)少量節(jié)點(diǎn)組成的網(wǎng)絡(luò)和電壓數(shù)據(jù)情況.由圖7可以看出,系統(tǒng)能準(zhǔn)確反應(yīng)電器的的實(shí)際運(yùn)行狀態(tài),從而證明了系統(tǒng)的穩(wěn)定性與可靠性.
圖5 十六進(jìn)制數(shù)據(jù)幀舉例
圖6 監(jiān)測系統(tǒng)主界面
圖7 地圖模式下監(jiān)測系統(tǒng)界面
4結(jié)語
本文設(shè)計(jì)并實(shí)現(xiàn)了一種電能能耗實(shí)時(shí)監(jiān)測系統(tǒng),從硬件采集到軟件開發(fā)再到終端處理,均做了比較詳細(xì)的說明.所使用到的物聯(lián)網(wǎng),TinyOS,nesC,C#語言,RN8209G芯片,TelosB節(jié)點(diǎn)等軟硬件技術(shù)都是當(dāng)前比較熱門的技術(shù),也體現(xiàn)了它們的優(yōu)點(diǎn).通過組網(wǎng)調(diào)試,對系統(tǒng)的運(yùn)行及對輸出數(shù)據(jù)的觀測,驗(yàn)證了節(jié)點(diǎn)設(shè)計(jì)的有效性.
系統(tǒng)的設(shè)計(jì)工作還有需要完善的地方.下一步將對節(jié)點(diǎn)的無線路由協(xié)議進(jìn)行優(yōu)化,使其在通信過程中的能耗更低,更適宜在室內(nèi)通信.并將在節(jié)點(diǎn)中加裝繼電器,在PC上發(fā)布命令通過逆向傳輸路徑控制節(jié)點(diǎn)的關(guān)斷,實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)由單向數(shù)據(jù)傳輸變?yōu)殡p向數(shù)據(jù)交換.
參考文獻(xiàn):
[1]劉云浩.物聯(lián)網(wǎng)導(dǎo)論[M].北京:科學(xué)出版社,2010:4-5.
[2]深圳市銳能微科技有限公司.RN8209G用戶手冊[EB/OL].[2013-03-20].http://www.doc88.com/p-1098775775510.html.
[3]徐朋豪,馮玉光,奚文駿,等.基于ZigBee的無線溫濕度采集系統(tǒng)研究[J].國外電子測量技術(shù),2013,32(1):33-36.
[4]陳大征.基于TELOSB的無線傳感器網(wǎng)絡(luò)設(shè)計(jì)[D].西安:西安電子科技大學(xué),2009.
[5]LEVIS P.TinyOS programming[EB/OL].[2013-12-10].http://www.tinyos.net/tinyos-2.x/doc/pdf/tinyos-prog-ramming.pdf.
[6]林喜源.基于TinyOS的無線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(9):44-47.
[7]MCINNES A I.Modeling and analysis of TinyOS sensor node firm w are:a CSP approach[J].ACM Transactions on Embedded Computing Systems(TECS),2013,12(1):5.
(編輯白林雪)
Design and Implementation of Electricity Consumption Real-time Monitoring System
WENG Tongyanga,b, LIU Damingb, BI Zhongqinb
(a.SchoolofElectronicsandInformationEngineering,b.SchoolofComputerScienceandTechnology,ShanghaiUniversityofElectricPower,Shanghai200090,China)
Abstract:With the development of the smart grid,user side has a higher and higher requirement for the power consumption monitoring of device.In order to monitor the use of electric energy in real time,an electricity consumption real-time monitoring system is designed,which is based on Sensor Network Wireless(WSN)technology.Firstly the hardware of the system adopts the RN8209G metering chip + TelosB node,and then the C# terminal display + nesC programming language of TinyOS operating system are applied in the software.The node object is designed as a socket type,so that the real-time monitoring of the user’s power can be accomplished.
Key words:electricity consumption; real-time monitoring; wireless sensor networks; TinyOS system
DOI:10.3969/j.issn.1006-4729.2016.02.019
收稿日期:2015-09-21
作者簡介:通訊翁同洋(1991-),男,在讀碩士,安徽六安人.主要研究方向?yàn)殡娔鼙O(jiān)測無線傳感器網(wǎng)絡(luò)通信技術(shù).E-mail:wtyky@qq.com.
中圖分類號:
文獻(xiàn)標(biāo)志碼:A
文章編號:1006-4729(2016)02-0203-07