基于Android平臺(tái)的節(jié)能監(jiān)管系統(tǒng)實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
“物聯(lián)網(wǎng)”的概念最早于1999年提出,即把所有物品通過(guò)信息傳感設(shè)備與互聯(lián)網(wǎng)連接起來(lái),實(shí)現(xiàn)智能化識(shí)別和管理。2005年11月17日,在突尼斯舉行的信息社會(huì)世界峰會(huì)(WSIS)上,國(guó)際電信聯(lián)盟(ITU)發(fā)布《ITU互聯(lián)網(wǎng)報(bào)告2005:物聯(lián)網(wǎng)》,正式提出了“物聯(lián)網(wǎng)”的概念。報(bào)告指出:無(wú)所不在的“物聯(lián)網(wǎng)”通信時(shí)代即將來(lái)臨,世界上所有的物體從輪胎到牙刷、從房屋到紙巾都可以通過(guò)因特網(wǎng)主動(dòng)進(jìn)行信息交換。
作為物聯(lián)網(wǎng)概念的一個(gè)能源分支,節(jié)能監(jiān)管也提上了新的日程。隨著科技的不斷進(jìn)步,工業(yè)生產(chǎn)自動(dòng)化也跟著蓬勃發(fā)展,自動(dòng)化提高了生產(chǎn)力,同時(shí)也消耗了大量的能源,當(dāng)能源需求量不斷激增時(shí),能源制造成本也將跟著大幅攀升。各行各業(yè)都面臨激烈的市場(chǎng)競(jìng)爭(zhēng),生產(chǎn)設(shè)備運(yùn)行電費(fèi)已經(jīng)成為重要的成本支出,面臨著低利潤(rùn)以及高成本的雙重壓力,紛紛尋求各種高效的節(jié)能技術(shù)降低用電成本,透過(guò)監(jiān)控手段自動(dòng)監(jiān)測(cè)并管理能源使用狀況,以提高能源利用率,降低單位生產(chǎn)成本,除了可直接提升競(jìng)爭(zhēng)力外,還能兼顧節(jié)能減碳的環(huán)保責(zé)任。
1節(jié)能監(jiān)控系統(tǒng)的架構(gòu)
Android平臺(tái)的節(jié)能監(jiān)管系統(tǒng)提供校園日常使用能耗的實(shí)時(shí)數(shù)據(jù)查詢監(jiān)測(cè)、校園各種能源系統(tǒng)進(jìn)行集中管理的功能。校園節(jié)能監(jiān)控平臺(tái)和Android移動(dòng)手持設(shè)備可實(shí)現(xiàn)校園電能的實(shí)時(shí)在線監(jiān)測(cè)及自動(dòng)化監(jiān)控和數(shù)據(jù)自動(dòng)采集與存貯、數(shù)據(jù)統(tǒng)計(jì)與分析、數(shù)據(jù)遠(yuǎn)程傳輸和數(shù)據(jù)顯示,使學(xué)校管理部門(mén)對(duì)能源系統(tǒng)進(jìn)行有效的監(jiān)控與管理,為校園節(jié)能降耗研究提供了真實(shí)數(shù)據(jù)。
本系統(tǒng)是一個(gè)基于Android智能終端的智能校園能源管理系統(tǒng),它是集電能監(jiān)測(cè)與控制于一體,通過(guò)ARM嵌入式網(wǎng)關(guān)、ZigBee通信模塊、電力監(jiān)測(cè)儀表及Android智能終端構(gòu)成整個(gè)校園電能的監(jiān)管系統(tǒng),主要綜合了電能電量的實(shí)時(shí)監(jiān)控監(jiān)督、電器開(kāi)關(guān)控制、危險(xiǎn)報(bào)警等功能。本系統(tǒng)基于局域網(wǎng),以TCP/IP協(xié)議Modbus規(guī)約傳輸多種控制信號(hào),易于Internet連接和訪問(wèn)。Android節(jié)能監(jiān)管系統(tǒng)框圖如圖1所示。
2節(jié)能監(jiān)管系統(tǒng)的研究?jī)?nèi)容
2.1采用無(wú)線通信技術(shù)
節(jié)能監(jiān)控系統(tǒng)應(yīng)用的主要技術(shù)包括智能監(jiān)測(cè)技術(shù)、ZigBee通信技術(shù)、ARM嵌入式網(wǎng)關(guān)技術(shù)和Android智能終端技術(shù)。智能監(jiān)測(cè)儀表接入電路中用于收集電能的相關(guān)信息及相關(guān)電器控制;ZigBee通信模塊通過(guò)TTL接口與智能檢測(cè)儀表相連構(gòu)成下層子網(wǎng);ARM網(wǎng)關(guān)與下層子網(wǎng)間通過(guò)ZigBee進(jìn)行數(shù)據(jù)交換實(shí)現(xiàn)控制;Android智能終端通過(guò)局域網(wǎng)(實(shí)際應(yīng)用時(shí)是通過(guò)Internet)與ARM網(wǎng)關(guān)進(jìn)行數(shù)據(jù)交換從而獲取對(duì)下層子網(wǎng)的控制及信息的采集顯示等。Android移動(dòng)終端的用戶程序提供給用戶進(jìn)行遠(yuǎn)程操作,ARM網(wǎng)關(guān)主要在Linux操作系統(tǒng)上通過(guò)QT程序?qū)崿F(xiàn)上下層的操作及電能的功能操作,ARM網(wǎng)關(guān)端的觸摸板供客戶操作控制。
目前所有的產(chǎn)品無(wú)外乎兩種數(shù)據(jù)傳輸?shù)姆绞剑河芯€方式和無(wú)線方式。有線方式即總線控制方式,如EIB、C-Bus、H-Bus、LonWorks、SCS、RS485等,有線方式由于因?yàn)樾枰M(jìn)行布置復(fù)雜的線路,對(duì)原有建筑造成不同程度的破壞,而且維護(hù)、擴(kuò)展有很多局限性,所以,采用有線通信方式的產(chǎn)品正在被逐漸淘汰。
無(wú)線方式包括射頻、載波、Wi-Fi、ZigBee、藍(lán)牙等。本文設(shè)計(jì)的節(jié)能監(jiān)管系統(tǒng)采用ZigBee組網(wǎng)方式,而目前國(guó)內(nèi)僅有個(gè)別廠家采用ZigBee組網(wǎng)方式,表1所列是對(duì)各種無(wú)線組網(wǎng)方式的節(jié)能監(jiān)管系統(tǒng)進(jìn)行的比較。
ZigBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無(wú)線通信技術(shù),主要適合于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備中,同時(shí)支持地理定位功能。相對(duì)于現(xiàn)有的各種無(wú)線通信技術(shù),ZigBee技術(shù)是最低功耗和成本的技術(shù),這些特點(diǎn)決定了在節(jié)能監(jiān)管系統(tǒng)中采用ZigBee組網(wǎng)是非常合適的。
ZigBee網(wǎng)絡(luò)中的設(shè)備可分為協(xié)調(diào)器(Coordinator),匯聚節(jié)點(diǎn)(Router)、傳感器節(jié)點(diǎn)(EndDevice)三種角色??稍诠?jié)能監(jiān)控系統(tǒng)中實(shí)現(xiàn)1個(gè)協(xié)調(diào)器和多個(gè)節(jié)點(diǎn)之間的串口透明傳輸。圖2所示是協(xié)調(diào)器和多節(jié)點(diǎn)透明傳輸?shù)慕Y(jié)構(gòu)圖。
系統(tǒng)中采用一個(gè)ZigBee模塊充當(dāng)ZigBee協(xié)調(diào)器,通過(guò)串口與ARM嵌入式網(wǎng)關(guān)相連,接收網(wǎng)關(guān)發(fā)來(lái)的數(shù)據(jù),當(dāng)協(xié)調(diào)器收到數(shù)據(jù)后通過(guò)ZigBee廣播發(fā)給各個(gè)電表,報(bào)文中包含設(shè)備地址,對(duì)應(yīng)地址的電表做出動(dòng)作。
協(xié)調(diào)器處理多節(jié)點(diǎn)機(jī)制,為了記錄這個(gè)短地址我定義了一個(gè)結(jié)構(gòu)體來(lái)記錄每個(gè)節(jié)點(diǎn)的短地址,廣播時(shí)通過(guò)短地址循環(huán)發(fā)送給各個(gè)節(jié)點(diǎn),處理反饋時(shí),通過(guò)反饋的短地址,給對(duì)應(yīng)的節(jié)點(diǎn)單獨(dú)發(fā)送。
數(shù)據(jù)發(fā)送有超時(shí)和防丟包機(jī)制。每次都會(huì)進(jìn)行計(jì)數(shù)比較,監(jiān)聽(tīng)報(bào)文計(jì)數(shù),如果計(jì)數(shù)不對(duì),就表明出現(xiàn)了丟包現(xiàn)象,函數(shù)就會(huì)給以丟包狀態(tài),調(diào)用重發(fā)機(jī)制,同時(shí)通過(guò)字節(jié)數(shù)比較,監(jiān)聽(tīng)串口是否發(fā)送超時(shí),如果超時(shí)給一定的延時(shí),讓其穩(wěn)定發(fā)完。
2.2 Modbus規(guī)約
Modbus規(guī)約是國(guó)際工業(yè)標(biāo)準(zhǔn)通信協(xié)議,Modbus安全可靠、通俗易懂,作為本系統(tǒng)的通信方式,保證整個(gè)系統(tǒng)更加穩(wěn)定可靠。
Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(如以太網(wǎng))和其它設(shè)備之間通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了控制器請(qǐng)求訪問(wèn)其它設(shè)備的過(guò)程,如何回應(yīng)來(lái)自其它設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。
Modbus通信規(guī)約主要有以下3個(gè)特點(diǎn):
(1) 標(biāo)準(zhǔn)、開(kāi)放,用戶可以免費(fèi)、放心地使用Modbus協(xié)議,不需要交納許可證費(fèi),也不會(huì)侵犯知識(shí)產(chǎn)權(quán);
(2) 支持多種電氣接口,如RS232、RS485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無(wú)線等。
(3) Modbus的幀格式簡(jiǎn)單、緊湊,通俗易懂,表2所列為Modbus規(guī)約的信息結(jié)構(gòu)。
2.3 SQLite3數(shù)據(jù)庫(kù)
SQLite是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前很多嵌入式產(chǎn)品已經(jīng)在使用,它占用資源非常低,在嵌入式設(shè)備中,可能只需要幾百KB的內(nèi)存就夠了。它能夠支持Windows、Linux、Unix等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如TCL、C#、PHP、Java等,還有ODBC接口,同時(shí)比MySQL、PostgreSQL的處理速度更快。
在嵌入式網(wǎng)關(guān)和智能終端程序中使用了SQLite3數(shù)據(jù)庫(kù),在此數(shù)據(jù)庫(kù)中,主要定義3個(gè)表,即:電表的檔案表、電表歷史數(shù)據(jù)表、定時(shí)控制繼電器狀態(tài)表。
表3所列為電表的檔案表,表中對(duì)每個(gè)電表的一些信息進(jìn)行了記錄。
表4為電表歷史數(shù)據(jù)表,記錄了由檔案表中的interval字段而決定的獲取時(shí)間間隔數(shù)據(jù),由此來(lái)實(shí)現(xiàn)歷史數(shù)據(jù)的存儲(chǔ)。
表5為定時(shí)控制繼電器狀態(tài)表,記錄了每塊電表的兩個(gè)繼電器所需要的開(kāi)通時(shí)間和關(guān)閉時(shí)間,分別指的是:在關(guān)的時(shí)間段之后,繼電器狀態(tài)需由服務(wù)器發(fā)送關(guān)指令讓其關(guān)閉,達(dá)到節(jié)能效果,避免無(wú)故浪費(fèi)電能;在開(kāi)的時(shí)間段內(nèi),就不需要再主動(dòng)控制繼電器的狀態(tài),根據(jù)當(dāng)天需要手動(dòng)通電即可。
3ARM嵌入式網(wǎng)關(guān)的設(shè)計(jì)
ARM嵌入式網(wǎng)關(guān)采用三星S2C2440,內(nèi)嵌Linux2.6操作系統(tǒng)和USB、SD卡、以太網(wǎng)、串口等驅(qū)動(dòng),實(shí)現(xiàn)電能數(shù)據(jù)的監(jiān)測(cè)、開(kāi)關(guān)的通斷、數(shù)據(jù)管理等功能。在網(wǎng)關(guān)系統(tǒng)中采用C/S軟件架構(gòu),有服務(wù)器和可視化軟件客戶端(QT界面),服務(wù)器與多功能電表的串口設(shè)備通信實(shí)現(xiàn)監(jiān)測(cè)和控制,服務(wù)器采用多線程架構(gòu)和使用TCP數(shù)據(jù)通信實(shí)現(xiàn)與智能終端通信的功能,多線程架構(gòu)解決了多客戶端與服務(wù)器鏈接所弓起的并發(fā)問(wèn)題,很好地解決了并發(fā)所帶來(lái)的弊端,實(shí)現(xiàn)多客戶端同時(shí)鏈接和同時(shí)請(qǐng)求的功能。
3.1服務(wù)器程序流程
該系統(tǒng)的服務(wù)器程序流程如下:
(1) 串口設(shè)備的初始化
在Linux系統(tǒng)中,先對(duì)串口設(shè)備1(/dev/ttySACl)初始化,保證后面的所有代碼能夠調(diào)用這個(gè)設(shè)備進(jìn)行讀寫(xiě)操作;
(2) 自動(dòng)獲取電表實(shí)時(shí)數(shù)據(jù)線程的啟動(dòng)
啟動(dòng)一個(gè)線程,再根據(jù)數(shù)據(jù)庫(kù)中的ammeterfiletable表中的interval字段設(shè)置自動(dòng)采集每塊電表的實(shí)時(shí)數(shù)據(jù),并保存在數(shù)據(jù)庫(kù)中;
(3)定時(shí)控制多功能電表繼電器狀態(tài)線程的啟動(dòng)
啟動(dòng)一個(gè)線程,然后根據(jù)數(shù)據(jù)庫(kù)中的ammeterrelaycontroltable繼電器控制表中的各個(gè)繼電器的字段來(lái)實(shí)現(xiàn)定時(shí)套接字的初始化,監(jiān)聽(tīng)網(wǎng)卡上的所有IP地址,并創(chuàng)建服務(wù)器線程等待客戶端鏈接,當(dāng)有客戶端鏈接后,創(chuàng)建一個(gè)線程與客戶端進(jìn)行Socket通信,實(shí)時(shí)維護(hù)客戶端的請(qǐng)求。
3.2程序使用的機(jī)制
3.2.1實(shí)行多線程機(jī)制
程序中要實(shí)現(xiàn)諸多功能,自動(dòng)定時(shí)獲取每塊多功能電表的實(shí)時(shí)數(shù)據(jù),定時(shí)控制電表的繼電器狀態(tài)(實(shí)現(xiàn)智能監(jiān)控大樓的電的通與斷),實(shí)時(shí)接收客戶端的鏈接請(qǐng)求,實(shí)時(shí)處理客戶端的數(shù)據(jù)、功能請(qǐng)求等功能。多線程機(jī)制實(shí)現(xiàn)了同時(shí)處理多個(gè)任務(wù)或客戶端的請(qǐng)求,增加了服務(wù)器對(duì)某些任務(wù)處理的實(shí)時(shí)性。
3.2.2共享資源的多線程之間的互斥機(jī)制
在服務(wù)器這個(gè)系統(tǒng)中,每一個(gè)客戶端線程和自動(dòng)獲取實(shí)時(shí)數(shù)據(jù)線程,都有可能在同一個(gè)時(shí)刻或同一個(gè)時(shí)段去使用一個(gè)資源,即串口設(shè)備(ttySACl),當(dāng)多個(gè)線程對(duì)這個(gè)設(shè)備進(jìn)行訪問(wèn)時(shí),就會(huì)出現(xiàn)數(shù)據(jù)紊亂,每個(gè)線程得到的大多不是自己的數(shù)據(jù),為了解決這個(gè)問(wèn)題,使用了線程之間的互斥機(jī)制,使用一把鎖(mutex),如果一個(gè)線程在申請(qǐng)獲得這把鎖時(shí),發(fā)現(xiàn)鎖已被其他線程所擁有,則須等待其他線程釋放后,再一起和其他線程競(jìng)爭(zhēng)這把鎖,有效解決了數(shù)據(jù)紊亂的現(xiàn)象。
4Android智能終端軟件的設(shè)計(jì)
4.1Android智能終端軟件的主要功能
(1)大樓的管理
包括修改、查看、刪除、還有添加功能,主要針對(duì)大樓的名稱、IP地址、端口號(hào)、大樓的層數(shù)以及地址碼進(jìn)行操作。
(2)電表的管理包括修改、查看、刪除、還有添加功能,主要針對(duì)電表的地址碼進(jìn)行操作。
(3) 大樓的電能分析
大樓中的電表分為總表和分表,針對(duì)每一個(gè)表的功率和電量進(jìn)行分析,以餅狀圖的形式表現(xiàn)出來(lái),讓用戶直觀地看到電能量的分析;計(jì)算了總表和分表的電量差,可以判斷偷電漏電情況;根據(jù)電量算出了損耗率。
(4) 電表的電能量實(shí)時(shí)顯示
點(diǎn)擊抄表按鈕可以獲取當(dāng)前表的電能量分析,主要包括:A相電壓、B相電壓、C相電壓;A相電流、B相電流、C相電流;AC相電壓、BC相電壓、AC相電壓;有功功率、無(wú)功功率、功率因素、頻率等信息。
繼電器的開(kāi)關(guān)控制
每個(gè)電表上有兩個(gè)繼電器,可以通過(guò)相關(guān)的按鈕來(lái)實(shí)時(shí)控制其開(kāi)關(guān),通過(guò)設(shè)置繼電器的開(kāi)關(guān)時(shí)間來(lái)節(jié)約電能。
(5) 電表電能量曲線圖
曲線圖每隔15s獲取一次當(dāng)前表的實(shí)時(shí)信息,其中包括:A相電壓、B相電壓、C相電壓;A相電流、B相電流、C相電流并通過(guò)曲線圖的方式顯示出來(lái),讓用戶直觀地看到電壓、電流的變換。
4.2智能終端軟件的實(shí)現(xiàn)
4.2.1界面顯示模塊的實(shí)現(xiàn)
主要實(shí)現(xiàn)對(duì)接收到的報(bào)文數(shù)據(jù)進(jìn)行圖形化顯示功能:利用按鈕、曲線圖、餅狀圖等圖形化工具來(lái)更加直觀高效地顯示數(shù)據(jù),圖3所示是其界面流程圖。
4.2.2報(bào)文處理模塊的實(shí)現(xiàn)
主要是對(duì)報(bào)文進(jìn)行校驗(yàn)和解析,并且對(duì)解析后的數(shù)據(jù)進(jìn)行處理,最終轉(zhuǎn)化成可以顯示給用戶的信息。圖4所示是該系統(tǒng)中的報(bào)文解析流程圖。
4.2.3大樓與電表的管理模塊
通過(guò)數(shù)據(jù)庫(kù)來(lái)管理大樓,主要實(shí)現(xiàn)對(duì)大樓信息和電表信息的添加、刪除、修改、查詢等功能。
5系統(tǒng)主要特點(diǎn)
本系統(tǒng)采用ZigBee技術(shù),功耗低、可靠性高、自組網(wǎng)、網(wǎng)絡(luò)容量大、成本低、數(shù)據(jù)安全性高、通用性好;
該系統(tǒng)采用了嵌入式網(wǎng)關(guān)技術(shù),具有服務(wù)器和QT客戶端功能,手機(jī)連接服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的采集和通信功能,QT客戶端實(shí)現(xiàn)參數(shù)的設(shè)定、數(shù)據(jù)的顯示和曲線的查詢等功能;
系統(tǒng)采用移動(dòng)終端技術(shù),可通過(guò)手機(jī)平臺(tái)對(duì)校園用電情況進(jìn)行實(shí)時(shí)監(jiān)控與管理,防止意外事故發(fā)生,增強(qiáng)了校園的安全性,創(chuàng)建和諧校園。
本系統(tǒng)以智能、節(jié)能、遠(yuǎn)程、便捷、科學(xué)管理的理念為主要設(shè)計(jì)思想,擁有遠(yuǎn)程和本地兩個(gè)用戶操作平臺(tái),可以讓用戶更方便實(shí)時(shí)地掌握校園用電情況,實(shí)時(shí)監(jiān)測(cè)用電,實(shí)時(shí)控制用電,動(dòng)態(tài)分析用電,并且具有定時(shí)開(kāi)關(guān)功能,給用戶提供更方便、更智能的服務(wù),體現(xiàn)了科學(xué)管理的思想。
6結(jié)語(yǔ)
本文對(duì)基于Android平臺(tái)的節(jié)能監(jiān)管系統(tǒng)進(jìn)行了研究與探討,在分析了節(jié)能監(jiān)管系統(tǒng)的架構(gòu)、Modbus規(guī)約和SQLite3數(shù)據(jù)庫(kù)層次后,提出了一套基于ZigBee和Android平臺(tái)的節(jié)能監(jiān)管系統(tǒng),該系統(tǒng)采用ZigBee技術(shù)和移動(dòng)終端技術(shù),該技術(shù)應(yīng)用在節(jié)能監(jiān)管系統(tǒng)中具有諸多顯著特點(diǎn)。本文通過(guò)對(duì)通信方式比較后,在節(jié)能監(jiān)管系統(tǒng)中選擇ZigBee通信技術(shù),在自動(dòng)化通信領(lǐng)域具有很好的優(yōu)勢(shì);在應(yīng)用中選擇移動(dòng)終端技術(shù),具有基于移動(dòng)互聯(lián)網(wǎng)和可靠的嵌入式等特點(diǎn),使節(jié)能監(jiān)控系統(tǒng)具有智能化和可移動(dòng)性;基于Android平臺(tái)的節(jié)能監(jiān)管系統(tǒng)在學(xué)校中的應(yīng)用和實(shí)現(xiàn),使學(xué)校管理部門(mén)對(duì)能源管理有了高效的監(jiān)管手段。