步驟1:項(xiàng)目范圍分析
簡(jiǎn)介
鑒于電力成本的不斷上漲以及旨在減少一般用電量的全球變暖運(yùn)動(dòng),人們對(duì)分析家庭用電量的興趣日益濃厚。通過(guò)分別分析每個(gè)電器的用電量,可以得出有關(guān)其效率和更換需求的更準(zhǔn)確的結(jié)論。此外,這還可以確定設(shè)備在關(guān)閉時(shí)是否正在消耗大量電能,以及是否應(yīng)該拔掉電源。這樣可以減少電力消耗和成本。
問(wèn)題說(shuō)明
當(dāng)前安裝在家庭中的大多數(shù)傳統(tǒng)預(yù)付費(fèi)電表僅顯示實(shí)時(shí)總使用量的電量和可用電量。無(wú)法查看這些電表的日,周或月消耗量,并且這些電表通常放置在不方便的位置,這使得定期查看變得有些困難。這些功率計(jì)還缺乏單獨(dú)監(jiān)視設(shè)備的能力。因此,隱藏了有關(guān)單個(gè)電器的重要信息。
項(xiàng)目目標(biāo)和范圍
需要一個(gè)智能電表系統(tǒng),該系統(tǒng)可以分析家庭中的多個(gè)電器以獲取諸如如電壓,電流,有功功率,視在功率,無(wú)功功率,功率因數(shù)和頻率。借助有線/無(wú)線連接,設(shè)備可以連接到中央網(wǎng)關(guān),并且網(wǎng)關(guān)管理系統(tǒng)可以上載和處理收集的信息。然后,數(shù)據(jù)可以顯示在平臺(tái)的基于android的圖形用戶界面上。該平臺(tái)允許用戶從任何啟用Android的設(shè)備訪問(wèn)數(shù)據(jù)。為了降低成本,系統(tǒng)需要能量計(jì)量節(jié)點(diǎn),該能量計(jì)量節(jié)點(diǎn)可以通過(guò)網(wǎng)關(guān)以無(wú)線方式或有線方式與網(wǎng)關(guān)通信,這樣對(duì)于包含許多受監(jiān)視設(shè)備的家庭來(lái)說(shuō),僅需要一個(gè)Wi-Fi接入點(diǎn)。此外,還要求關(guān)于電器的當(dāng)前信息也可以通過(guò)菜單界面在本地顯示器上查看。如果滿足以下條件,則遠(yuǎn)程電能計(jì)量節(jié)點(diǎn)將被視為成功:
?節(jié)點(diǎn)與網(wǎng)關(guān)之間的有線/無(wú)線通信
?正確測(cè)量電壓,電流和功率
?網(wǎng)關(guān)上具有顯示和菜單的工作用戶界面
?網(wǎng)關(guān)和遠(yuǎn)程儀表節(jié)點(diǎn)之間可靠的有線/無(wú)線通信。
如果時(shí)間允許,可能會(huì)添加以下附加功能以改進(jìn)項(xiàng)目,請(qǐng)記住,省略這些功能不會(huì)影響操作:
?建立安全的機(jī)械結(jié)構(gòu)來(lái)包裝網(wǎng)關(guān)站
?建立安全的機(jī)械結(jié)構(gòu)以隔離能量計(jì)量節(jié)點(diǎn)
?在設(shè)備關(guān)閉時(shí)提高設(shè)備的電源效率并最小化功耗
智能電表和智能電表系統(tǒng)
智能電表是公用事業(yè)用于交流信息的電子測(cè)量設(shè)備為客戶開(kāi)帳單并操作其電氣系統(tǒng)。十五年來(lái),電表已被公用事業(yè)公司有效地用于為其至少一部分客戶群提供準(zhǔn)確的賬單數(shù)據(jù)。
最初,由于技術(shù)原因,該技術(shù)已應(yīng)用于商業(yè)和工業(yè)客戶對(duì)更復(fù)雜的費(fèi)率和更精細(xì)的計(jì)費(fèi)數(shù)據(jù)需求的需求。電子表的使用已為公用事業(yè)的最大客戶服務(wù),并隨著時(shí)間的流逝逐漸擴(kuò)展到所有客戶類別。通過(guò)降低技術(shù)成本和所有客戶類別的高級(jí)計(jì)費(fèi)要求,可以實(shí)現(xiàn)這種遷移。電子儀表與用于信息,監(jiān)視和控制的雙向通信技術(shù)的結(jié)合通常被稱為高級(jí)儀表基礎(chǔ)架構(gòu)(AMI)。利用單向通信收集電表數(shù)據(jù)的先前系統(tǒng)稱為AMR(自動(dòng)電表讀?。┫到y(tǒng)。 AMI已隨著時(shí)間的流逝而發(fā)展,從最初的抄表替代品(AMR)到如今的雙向通訊和數(shù)據(jù)系統(tǒng)。
盡管智能電表在公用事業(yè)行業(yè)中相對(duì)較新,但它們卻受到與電子電表和較舊的機(jī)電產(chǎn)品相同的盡職調(diào)查和審查。這些儀表在儀表精度和設(shè)計(jì)上一直達(dá)到或超過(guò)國(guó)家標(biāo)準(zhǔn),例如美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)C12.1。此外,用于認(rèn)證儀表性能的設(shè)備必須可追溯到美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院(NIST),這是與行業(yè)合作以正確應(yīng)用技術(shù)和測(cè)量的聯(lián)邦機(jī)構(gòu)。智能電表安裝使用的其他標(biāo)準(zhǔn)包括用于家庭電氣布線的國(guó)家電氣法規(guī)(NEC),用于外殼和設(shè)備的國(guó)家電氣制造商協(xié)會(huì)(NEMA)和Underwriters Laboratories(UL),以及用于公用設(shè)施布線的國(guó)家電氣安全法規(guī)(NESC) 。通過(guò)公用事業(yè)計(jì)量專業(yè)人士和計(jì)量制造商的領(lǐng)導(dǎo),這些固態(tài)電子測(cè)量設(shè)備的精心開(kāi)發(fā)使得計(jì)量表產(chǎn)品具有先進(jìn)的功能,穩(wěn)定的精度和更嚴(yán)格的精度公差,并且比先進(jìn)的功能更具成本效益。
步驟2:系統(tǒng)設(shè)計(jì)簡(jiǎn)介
系統(tǒng)由三個(gè)主要部分組成。網(wǎng)關(guān),能源節(jié)點(diǎn)和android應(yīng)用程序界面。下面的圖1顯示了這些部分之間如何相互作用。
能量計(jì)量節(jié)點(diǎn)
能量節(jié)點(diǎn)單元負(fù)責(zé)在請(qǐng)求時(shí)進(jìn)行功率測(cè)量然后將它們發(fā)送到網(wǎng)關(guān)。它等待通過(guò)UART(有線連接)從網(wǎng)關(guān)發(fā)出的請(qǐng)求。收到請(qǐng)求后,它會(huì)從EMIC讀取測(cè)量值,然后將此信息發(fā)送回網(wǎng)關(guān)。
網(wǎng)關(guān)單元
網(wǎng)關(guān)負(fù)責(zé)收集數(shù)據(jù),然后將其發(fā)送到android應(yīng)用程序界面。它還具有控制臺(tái)訪問(wèn)權(quán)限,可以顯示所有相關(guān)信息以及一個(gè)小的界面。通過(guò)有線通信從能量節(jié)點(diǎn)請(qǐng)求信息。然后,能量節(jié)點(diǎn)將信息發(fā)送回網(wǎng)關(guān)。然后,網(wǎng)關(guān)將此信息轉(zhuǎn)發(fā)到android應(yīng)用程序界面。此過(guò)程以固定的間隔進(jìn)行,可以在菜單界面中進(jìn)行設(shè)置。因?yàn)榫W(wǎng)關(guān)和能量節(jié)點(diǎn)是分開(kāi)的,所以單個(gè)系統(tǒng)可以包含許多能量節(jié)點(diǎn)。這樣做的優(yōu)點(diǎn)是,由于僅需要購(gòu)買能源節(jié)點(diǎn),因此監(jiān)視其他附加設(shè)備的成本較低。
Android應(yīng)用程序界面
設(shè)計(jì)了android應(yīng)用程序,該應(yīng)用程序負(fù)責(zé)讀取每個(gè)連接的能源節(jié)點(diǎn)的網(wǎng)關(guān),還負(fù)責(zé)設(shè)置各種網(wǎng)關(guān)配置和參數(shù)(例如各種閾值等)。
步驟3:能源節(jié)點(diǎn)設(shè)計(jì)簡(jiǎn)介
能量節(jié)點(diǎn)單元負(fù)責(zé)讀取EMIC的測(cè)量值,并在收到網(wǎng)關(guān)請(qǐng)求后中繼此信息。能量節(jié)點(diǎn)單元由三個(gè)主要部分組成–能量測(cè)量IC本身,感測(cè)電路和隔離電路。能源節(jié)點(diǎn)的設(shè)計(jì)方式使其可以通過(guò)電線直接連接到基站,以作為獨(dú)立系統(tǒng)運(yùn)行。
能源測(cè)量前端(EMIC)
來(lái)自cirrus邏輯的CS5490用作能量測(cè)量的前端。從文獻(xiàn)回顧中可以明顯看出,一種簡(jiǎn)單的功率測(cè)量方法是使用EMIC,因?yàn)椴恍枰M(jìn)一步的計(jì)算,也不需要考慮其他任何因素。僅需要設(shè)置和校準(zhǔn)EMIC,然后可以讀取寄存器以獲取相關(guān)信息。正在考慮一些EMIC,例如微芯片的MCP3903。它使用SPI通信,共有8個(gè)專用于通信的引腳(SCK,SDO,SDI,CS,復(fù)位和3個(gè)數(shù)據(jù)就緒線)。大多數(shù)EMIC使用SPI通信。然而,最引人注目的邏輯芯片是CIRRUS LOGIC的CS5490。它使用UART進(jìn)行通信,并且似乎比其他EMIC更強(qiáng)大。該IC具有的一些功能包括:
?能量測(cè)量精度為0.1%
?支持分流電阻和CT
?片上測(cè)量/計(jì)算:
–有功,無(wú)功和視在功率
– RMS電壓和電流
–功率因數(shù)和線路頻率
–瞬時(shí)電壓,電流和功率
?過(guò)電流,電壓驟降和電壓驟升檢測(cè)
?超快速片上數(shù)字校準(zhǔn)
?UART串行接口
?片上溫度傳感器
?3.3 V單電源
?低功耗:13 mW
CS5490集成了獨(dú)立的四階Delta-Sigma模數(shù)轉(zhuǎn)換器,用于通道,參考電路和成熟的EXL信號(hào)處理內(nèi)核,可提供有功,無(wú)功和視在能量測(cè)量。此外,RMS和功率因數(shù)計(jì)算可用。計(jì)算結(jié)果通過(guò)可配置的能量脈沖輸出,或直接通過(guò)UART串行訪問(wèn)片上寄存器。串行端口上還提供瞬時(shí)電流,電壓和功率測(cè)量。兩線制UART可在需要時(shí)最大程度地降低隔離成本。
CS5940總共僅需要3個(gè)引腳來(lái)接收,接收和復(fù)位。 EMIC通常連接到電源以獲取電壓讀數(shù),因此需要將IC與與其通信的微處理器隔離。該項(xiàng)目中使用光耦合器在網(wǎng)關(guān)(Beaglebone黑色)和IC之間建立隔離連接。光耦合器在使用光傳輸數(shù)據(jù)時(shí)可以將兩個(gè)電路彼此隔離,并且其光敏晶體管全部封裝在一個(gè)小封裝中。方便的是,它還可以用作電平轉(zhuǎn)換器,因?yàn)锽eaglebone black在3.3V電壓下工作,某些部件在5V邏輯下工作,而電能計(jì)量IC僅在3.3V邏輯下解決了一個(gè)設(shè)備的兩個(gè)問(wèn)題。
可配置的數(shù)字輸出提供能量脈沖,過(guò)零,能量方向或中斷功能。在各種情況下都可能產(chǎn)生中斷,包括電壓驟降或驟升,過(guò)電流等等。通過(guò)校驗(yàn)和和寫(xiě)保護(hù)來(lái)確保片上寄存器的完整性。 CS5490旨在與各種電壓和電流傳感器接口,包括分流電阻器,電流互感器和Rogowski線圈。
EMIC確實(shí)需要一些電路來(lái)進(jìn)行測(cè)量。為了進(jìn)行電壓測(cè)量,在兩根線之間使用了一個(gè)分壓器,為了進(jìn)行電流測(cè)量,使用了一個(gè)分流電阻器。該IC在電壓測(cè)量和電流測(cè)量輸入上的最大峰峰值為250mV,因此CT或并聯(lián)電阻和分壓器的選擇必須使最大值不會(huì)達(dá)到最大值,否則IC會(huì)斷裂
第4步:能量節(jié)點(diǎn)電路說(shuō)明
選擇了并聯(lián)電阻,因?yàn)樗然魻栃?yīng)傳感器更穩(wěn)定。并且比電流互感器小。分流電阻器必須處于這樣的范圍內(nèi):如果從設(shè)備汲取最大允許電流,則分流電阻器上的電壓降峰峰值之間小于250mV,因?yàn)檫@是EMIC的最大電流電壓輸入。
Vmax = Imax * Rshunt
因此,Rshunt = Vmax/Imax
選擇Imax為17A,Vmax為250mV
R = 10mΩ
因此此處將使用一個(gè)小于10mΩ的并聯(lián)電阻。 EMIC具有50倍的內(nèi)部可調(diào)增益,因此可以使用更小的分流電阻器,并且還具有減小電阻器功耗的優(yōu)勢(shì)。
高壓交流線路通過(guò)分壓器進(jìn)行衰減。傳感器由1.76Mohm和1Kohm電阻組成,然后提供給CS5490電壓通道輸入。分壓比取決于CS5490電壓通道的最大輸入范圍(176mVRMS)和最大線路電壓。分壓比由下面的公式確定。
Vout = Vin *(R2/(R1 + R2))《176mV RMS
對(duì)于線路電壓,Vin = 260 Vrms,并且R2 = 1K,則可以求解R1。參見(jiàn)下面的公式:
R1 = [1000 * {(260V/176mV)– 1}] = 1.47Mohm
給出120%的裕度,為了選擇公共電阻值,選擇了R1 = 120%* 1.47M = 1.76Mohm電阻。電壓檢測(cè)電阻(R2)的參考電位必須與電流傳感器和CS5490電源(位于線路或中性線)相同。
微處理器和繼電器電路的邏輯電平為3.3 V和5V,而EMIC具有3.3V邏輯電平,因此需要一個(gè)電平轉(zhuǎn)換器。此外,電能計(jì)量IC連接到電源,但是必須將微處理器芯片與電源隔離,因?yàn)閬?lái)自電源的噪聲會(huì)損壞微處理器,尤其是其他組件的可靠性。因此,需要一種能夠同時(shí)進(jìn)行隔離和電平轉(zhuǎn)換的設(shè)備。幸運(yùn)的是,光耦合器可以做到這一點(diǎn)。當(dāng)光耦合器中的一個(gè)信號(hào)傳輸?shù)剿鼤r(shí),它的光源就會(huì)打開(kāi)。該光源激活連接接收側(cè)兩端的晶體管。光耦合器的選擇主要是由于可用性和尺寸。另一個(gè)重要因素是在光耦合器之間傳輸信號(hào)的上升和下降時(shí)間。
EMIC的默認(rèn)波特率設(shè)置為600。由于波特率非常低,因此光耦合器可以處于微秒范圍。該項(xiàng)目的光耦合器是MCT2E。它的上升和下降時(shí)間分別為3和4 us,因此以600的波特率可靠地通信是可以接受的。還選擇它的原因是它易于獲得并且具有僅6針的小型封裝。
步驟5:EMIC校準(zhǔn),縮放和補(bǔ)償
電表是配電網(wǎng)絡(luò)的一部分,用于測(cè)量電力消耗。在配電網(wǎng)中使用電表要求電表適應(yīng)各種配置。這取決于配電網(wǎng)的一部分以及安裝了電表的最終用戶的類型。這些配置包括廣泛的電壓和電流范圍,根據(jù)規(guī)格,電表應(yīng)能正常工作。上述要求要求計(jì)量引擎具有適應(yīng)性,以便根據(jù)規(guī)格可選擇轉(zhuǎn)換輸入信號(hào)的換能器,同時(shí)仍記錄輸入線路信號(hào)的實(shí)際值。
電表設(shè)計(jì)是由許多組件組成,由于電表設(shè)計(jì)中的各種因素,其特性可能會(huì)有所不同。構(gòu)成電路一部分的組件包括:
?用作電流傳感器的電流互感器(CT)或分流器
?用作電壓傳感器的電阻分壓器
?電阻器
?電容器
?電感器
這些特性的變化會(huì)影響測(cè)量信號(hào),可能會(huì)導(dǎo)致
偏移增加,幅度改變和信號(hào)相位變化。考慮到以上所有因素,需要進(jìn)行標(biāo)準(zhǔn)值校準(zhǔn)以實(shí)現(xiàn)儀表輸出。校準(zhǔn)是將線路參數(shù)設(shè)置為已知值,并計(jì)算各種信號(hào)調(diào)節(jié)參數(shù)(例如增益,偏移補(bǔ)償和相位補(bǔ)償因子)的過(guò)程。
校準(zhǔn)在CS5490中是獨(dú)立的,并且所有計(jì)算均由器件執(zhí)行,并存儲(chǔ)在內(nèi)部寄存器中。補(bǔ)償要求MCU執(zhí)行一些計(jì)算,然后將結(jié)果存儲(chǔ)回CS5490寄存器。由于CS5490沒(méi)有非易失性存儲(chǔ)器(NVM),因此必須將永久性的校準(zhǔn)和補(bǔ)償存儲(chǔ)放在MCU NVM中,并在任何AFE復(fù)位條件后重新加載。通常,每次校準(zhǔn)和補(bǔ)償都需要執(zhí)行以下步驟:
?1.配置CS5490的初始條件
?2.將模擬輸入與來(lái)自精確源的激勵(lì)相結(jié)合
》
?3.啟用所需的校準(zhǔn)
?4.執(zhí)行校準(zhǔn)
?5.讀取結(jié)果
?6.計(jì)算新寄存器補(bǔ)償值
?7.將結(jié)果存儲(chǔ)在AFE和NVM中
通常同時(shí)執(zhí)行校準(zhǔn)和補(bǔ)償。例如,由于AC增益校準(zhǔn)和相位補(bǔ)償需要將類似的輸入信號(hào)施加到電流和電壓通道,因此校準(zhǔn)和補(bǔ)償是同時(shí)執(zhí)行的。
1。正常操作過(guò)程(在現(xiàn)場(chǎng)每次復(fù)位時(shí)執(zhí)行)
以下過(guò)程概述了將儀表置于正常操作模式所需的步驟。圖2.3顯示了現(xiàn)場(chǎng)常規(guī)操作的簡(jiǎn)化流程圖。
1。重置CS5490。
2?;謴?fù)配置和控制寄存器。
3。從非易失性存儲(chǔ)器中恢復(fù)VGAIN和IGAIN寄存器。
4。如果需要,請(qǐng)從NVM恢復(fù)偏移量寄存器。
5。如果需要,請(qǐng)從NVM恢復(fù)相位補(bǔ)償寄存器。
6。如果需要,請(qǐng)從NVM恢復(fù)空載補(bǔ)償?shù)絇OFF和QOFF寄存器。
7。將單個(gè)轉(zhuǎn)換命令發(fā)送到CS5490。
8。確認(rèn)寄存器校驗(yàn)和有效,或返回到步驟1。
9。將連續(xù)轉(zhuǎn)換命令發(fā)送到CS5490。
10。啟用并清除DRDY。
11。投票DRDY。
12。如果設(shè)置了DRDY,請(qǐng)清除DRDY。
13。讀取IRMS,VRMS和PAVG。通過(guò)以下方法將IRMS,VRMS和PAVG縮放回真實(shí)值:
安培= Full_Scale_Current *(IRMS/0.6)
電壓= Full_Scale_Voltage *(VRMS/0.6)
瓦數(shù)= Full_Scale_Power *(PAVG/0.36)
14。循環(huán)回到“輪詢DRDY”步驟。
2。完整的校準(zhǔn)和補(bǔ)償過(guò)程(執(zhí)行一次)
以下過(guò)程顯示了執(zhí)行校準(zhǔn)和補(bǔ)償所需的步驟。圖2.4顯示了完整校準(zhǔn)過(guò)程的流程圖。
圖2.4主要校準(zhǔn)過(guò)程
1。接通CS5490設(shè)備的電源。
2。重置CS5490設(shè)備。
3。驗(yàn)證寄存器校驗(yàn)和以確認(rèn)重置成功。
4?;謴?fù)配置和控制寄存器。
5。將參考線電壓和負(fù)載電流連接到電表,電流相滯后角為60o。
6。如果參考負(fù)載電流不是滿負(fù)載,則將比例寄存器設(shè)置為0.6 x 223x參考負(fù)載電流÷滿量程電流的比率。如果參考線電壓低于最大線電壓,請(qǐng)參閱非滿量程增益校準(zhǔn)。
7。連續(xù)轉(zhuǎn)換(0xD5命令)2秒鐘。
8。停止連續(xù)轉(zhuǎn)換(0xD8指令)。
9。讀取IRMS,VRMS,PAVG和PF,并通過(guò)驗(yàn)證IRMS,VRMS,PAVG和PF是否在合理范圍內(nèi)來(lái)確認(rèn)參考電壓和電流信號(hào)是否正確連接。
10。清除DRDY狀態(tài)位。
11。將交流增益校準(zhǔn)命令(0xFE)發(fā)送到CS5490。
12。等待設(shè)置DRDY。
13。如果需要,請(qǐng)執(zhí)行相位補(bǔ)償,交流偏移校準(zhǔn)和功率偏移校正。
14。發(fā)送連續(xù)轉(zhuǎn)換(0xD8命令)。
15。驗(yàn)證測(cè)量精度。如果精度不在規(guī)格范圍內(nèi),請(qǐng)檢查設(shè)置或使儀表失靈。
16。讀取VGAIN,IGAIN,IACOFF,POFF,QOFF,PC,然后注冊(cè)校驗(yàn)和并將其保存到閃存/EEPROM中。
17。校準(zhǔn)完成。
3。系統(tǒng)縮放比例
硬件縮放比例:CS5490輸入使用衰減電路進(jìn)行縮放,衰減電路的最大輸入幅度為176mVRMS或35mVRMS,這取決于AFE增益設(shè)置為增益分別為10倍或50倍。
AFE刻度: AFE寄存器記錄輸入電平,這些電平顯示為最新測(cè)量值與最大RMS電壓和RMS電流的比率。 。 RMS寄存器的最大值使用0.6的比率生成。寄存器值讀取為24位十六進(jìn)制數(shù)字,該數(shù)字按比例表示0.6VRMS滿量程。在最大電壓(0.6)和最大電流(0.6)時(shí),最大功率為PMAX = VRMSMAX×IRMSMAX = 0.6×0.6 = 0.36。
MCU比例尺:讀取所有寄存器并根據(jù)滿載條件解釋24位十六進(jìn)制數(shù)。知道最大硬件縮放比例和與滿量程輸入有關(guān)的最新AFE寄存器值后,MCU例程便能夠計(jì)算實(shí)際功率測(cè)量值。
步驟6:網(wǎng)關(guān)設(shè)計(jì)
網(wǎng)關(guān)負(fù)責(zé)收集數(shù)據(jù),然后將其發(fā)送到android應(yīng)用程序界面。它還具有控制臺(tái)訪問(wèn)權(quán)限,可以顯示所有相關(guān)信息以及一個(gè)小的界面。通過(guò)有線通信從能量節(jié)點(diǎn)請(qǐng)求信息。然后,能量節(jié)點(diǎn)將信息發(fā)送回網(wǎng)關(guān)。然后,網(wǎng)關(guān)將此信息轉(zhuǎn)發(fā)到android應(yīng)用程序界面。此過(guò)程以固定的間隔進(jìn)行,可以在菜單界面中進(jìn)行設(shè)置。因?yàn)榫W(wǎng)關(guān)和能量節(jié)點(diǎn)是分開(kāi)的,所以單個(gè)系統(tǒng)可以包含許多能量節(jié)點(diǎn)。這樣做的好處是,由于只需要購(gòu)買能源節(jié)點(diǎn),因此監(jiān)視其他附加設(shè)備的成本較低。
網(wǎng)關(guān)的應(yīng)用程序完全使用C語(yǔ)言設(shè)計(jì)。該應(yīng)用程序的流程圖如右圖所示。該應(yīng)用程序使用“ sys”文件系統(tǒng)初始化Beaglebone黑板的GPIO引腳開(kāi)始。然后設(shè)置GPIO引腳的方向以適應(yīng)該引腳上使用的功能。例如,選擇連接繼電器的引腳作為輸出,而選擇連接開(kāi)關(guān)的引腳作為輸入。
在GPIO引腳初始化之后,我們打開(kāi)了兩個(gè)串行端口節(jié)點(diǎn)。在Linux文件系統(tǒng)中以“/dev/ttyOx”訪問(wèn),其中x是UART號(hào)。這兩個(gè)串行端口是我們的電能計(jì)量節(jié)點(diǎn)使用UART直接連接的端口。因此,只有在打開(kāi)這些端口之后,我們才能訪問(wèn)這些端口。之后,我們閱讀串行端口的先前配置,并設(shè)置一個(gè)新的端口以匹配我們的EMIC功能。成功設(shè)置串行端口后,我們將校準(zhǔn)常數(shù)加載到兩個(gè)EMIC板上,從而初始化兩個(gè)CS5490 EMIC,準(zhǔn)備進(jìn)行能量測(cè)量。
成功加載校準(zhǔn)常數(shù)后,我們?cè)O(shè)置了一個(gè)信號(hào)處理程序,用于緊急停止網(wǎng)關(guān)服務(wù)器應(yīng)用程序。在這里,我們對(duì)資源進(jìn)行了所有的明智分配,例如服務(wù)器文件描述符,串行端口以及我們?cè)趹?yīng)用程序中使用的所有資源。
由于網(wǎng)關(guān)還負(fù)責(zé)將電表讀數(shù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,因此我們使用sqlite數(shù)據(jù)庫(kù),用于以結(jié)構(gòu)化格式存儲(chǔ)儀表的讀數(shù)。初始化信號(hào)處理程序后,我們打開(kāi)/創(chuàng)建名為“ METERx”的對(duì)應(yīng)儀表的數(shù)據(jù)庫(kù)文件,其中x是儀表編號(hào)。如果數(shù)據(jù)庫(kù)文件最初不存在,則創(chuàng)建該文件,否則將其打開(kāi)?,F(xiàn)在,以“ month_year”格式創(chuàng)建/打開(kāi)對(duì)應(yīng)月份和年份的表。對(duì)于新的月份/年份,應(yīng)用程序會(huì)自動(dòng)在數(shù)據(jù)庫(kù)中創(chuàng)建相應(yīng)的表。
現(xiàn)在要在網(wǎng)關(guān)應(yīng)用程序中實(shí)現(xiàn)并行性,我們實(shí)現(xiàn)了三個(gè)線程,它們運(yùn)行三種不同的應(yīng)用程序功能。在這里,我們初始化三個(gè)線程。第一個(gè)是“計(jì)時(shí)器線程”,它負(fù)責(zé)維護(hù)程序中的參考時(shí)間延遲,以定期更新數(shù)據(jù)庫(kù)和用于儀表讀數(shù)的用戶界面。下一個(gè)線程“開(kāi)關(guān)輪詢線程”負(fù)責(zé)連續(xù)監(jiān)視開(kāi)關(guān)是否被按下,從而執(zhí)行相應(yīng)的負(fù)載開(kāi)關(guān)功能。第三個(gè)線程“服務(wù)器線程”負(fù)責(zé)與Android客戶端應(yīng)用程序創(chuàng)建,綁定,偵聽(tīng)和維護(hù)TCP/IP連接,以進(jìn)行數(shù)據(jù)更新和檢索。
為進(jìn)行原型演示,我們選擇了Beaglebone black ,這是德州儀器(TI)的開(kāi)發(fā)板作為網(wǎng)關(guān)處理器。它配備了最少的功能集,以允許用戶體驗(yàn)處理器的功能,并且不打算用作完整的開(kāi)發(fā)平臺(tái),因?yàn)锽eagleBone Black無(wú)法通過(guò)板載訪問(wèn)處理器提供的許多功能和接口。支持某些接口。 BeagleBone Black并非旨在執(zhí)行任何特定功能的完整產(chǎn)品。它是實(shí)驗(yàn)和學(xué)習(xí)如何對(duì)處理器進(jìn)行編程以及如何通過(guò)創(chuàng)建自己的軟件和硬件來(lái)訪問(wèn)外圍設(shè)備的基礎(chǔ)。它還提供對(duì)許多接口的訪問(wèn),并允許使用稱為capes的附加板來(lái)添加許多不同的功能組合。用戶還可以開(kāi)發(fā)自己的電路板或添加自己的電路。
電路板功能包括:
1。 AM335x 1GHzARM?Cortex-A8
3。 4GB 8位eMMC板載閃存存儲(chǔ)器
4。 3D圖形加速器
5。 NEON浮點(diǎn)加速器
連接性:
1。用于電源和通信的USB客戶端
2。 USB主機(jī)
4。 HDMI
5。 2個(gè)46針接頭插座
軟件兼容性:
1。 Debian的
2。的Android
3。 Ubuntu的
4。 Cloud9 IDE
步驟7:ANDRIOD應(yīng)用程序設(shè)計(jì)
簡(jiǎn)介
此應(yīng)用程序?qū)⒇?fù)責(zé)通過(guò)Wi-Fi從網(wǎng)關(guān)進(jìn)行通信。首先,它將要求登錄名和密碼,以便未經(jīng)授權(quán)的用戶將無(wú)法使用它。然后它會(huì)根據(jù)用戶要求發(fā)送特定數(shù)據(jù)的命令,然后以不同的形式顯示網(wǎng)關(guān)發(fā)送的數(shù)據(jù)。有各種用于顯示各種類型數(shù)據(jù)的按鈕,每次單擊都會(huì)發(fā)送特定命令,以便網(wǎng)關(guān)將識(shí)別出要從數(shù)據(jù)庫(kù)發(fā)送給用戶的數(shù)據(jù)。還提供了根據(jù)用戶需求從應(yīng)用中打開(kāi)和關(guān)閉電表的措施。從我們可以在電表將限制發(fā)送到網(wǎng)關(guān)的應(yīng)用程序中設(shè)置能耗限制的角度來(lái)看,該電表很聰明,網(wǎng)關(guān)將在達(dá)到該限制時(shí)跟蹤能耗,并自動(dòng)關(guān)閉設(shè)備。
在上圖中,我們看到啟用了Meter1,而未啟用Meter2,因此我們只能使用儀表1的按鈕;與儀表2相關(guān)的按鈕被禁用,以防止它們被意外使用。還有三個(gè)按鈕,用于發(fā)送命令以檢索當(dāng)前使用情況數(shù)據(jù),當(dāng)月前幾周的數(shù)據(jù)使用情況以及前一天的數(shù)據(jù)使用情況。每個(gè)電表都有一個(gè)開(kāi)關(guān),可以將其打開(kāi)和關(guān)閉,這將使電器根據(jù)我們的意愿打開(kāi)/關(guān)閉。當(dāng)前使用情況將顯示在同一屏幕上,并且將顯示的數(shù)據(jù)是功率,電壓,電流和能量。其他命令將導(dǎo)致數(shù)據(jù)以圖形的形式顯示在不同的活動(dòng)上。文本框底部是設(shè)置每月消耗量的限制,下面的按鈕將顯示上個(gè)月的能耗。
為了以圖表形式顯示數(shù)據(jù),我們使用了Achartengine庫(kù),我們必須復(fù)制到項(xiàng)目的libs文件夾中,我們必須在mainfest文件中添加其圖形活動(dòng)。我們之所以使用Achartengine是因?yàn)樗敲赓M(fèi)的,精簡(jiǎn)的并且支持各種類型的圖形。
為了發(fā)送命令和接收數(shù)據(jù),我們使用了Stream Sockets,因?yàn)樵赨DP套接字的情況下,數(shù)據(jù)可能會(huì)被丟失,這將導(dǎo)致應(yīng)用程序行為異常。數(shù)據(jù)發(fā)送和接收是一個(gè)耗時(shí)的過(guò)程,因此對(duì)于每個(gè)通信,都會(huì)創(chuàng)建一個(gè)線程,通信將在其處理程序中進(jìn)行,結(jié)果將由其在主線程中的運(yùn)行狀態(tài)發(fā)布。在每個(gè)線程關(guān)閉時(shí),其套接字也將關(guān)閉。我們還使用了一些背景圖片,需要將其復(fù)制到/bin/res/drawable-mdpi文件夾中。
-
智能家居
+關(guān)注
關(guān)注
1926文章
9486瀏覽量
183950 -
能源監(jiān)控
+關(guān)注
關(guān)注
0文章
8瀏覽量
1423
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論