本項目是由山東科技大學張新慧開發完成。通過研制了一款基于物聯網的 SOC 單相智能電表,遵循國網公司電能表、集中器、服務器、客戶端體系架構,設計了以 SOC 芯片 HT5017 為核心的電能表,以STM32F103C8T6 芯片為核心的集中采集器,構建了以機智云物聯網為平臺的服務器,開發了基于 Android 平臺的客戶應用程序,并實現了數據傳輸、客戶遠程查看等功能。
01
引 言
近年來,我國現代化程度不斷深入,我國電網的智能化程度也不斷增加,而智能電表作為智能電網最為重要的一環在電網中扮演著重要的角色。智能電表作為智能電網的終端設備,相比于傳統的電表,智能電表可以實現自動抄表、故障診斷、參數檢測、數據發送等功能,可以大大節省人力物力,并且效率更高,對于提升電網的運行效率降低運行成本具有重要的意義。智能電表作為一種新型的智能家居設備,可以通過網絡與用戶進行連接,用戶可以實時檢測到本戶的用電情況、故障信息等。可以推薦用戶智能供電方案,對于引導用戶合理用電、購買電量具有重要的意義。同時可以設定分時計費方案,對于引導用戶錯峰用電,促進電網穩定運行具有重要的意義。
1.1 系統設計
通過對國內外研究狀況和對基于物聯網的智能電表系統的分析與研究,本次設計的目標是構建一套基于物聯網智能電表監控系統,主要分為三個層次:電能表、智能電表集中器、物聯網云平臺。電能表采用控制與采集芯片實現對電能參數的采集、上傳、終端顯示、故障報警、自動斷電等功能。智能電表集中器采用嵌入式控制器,能夠和多個電能表進行通信,讀取多個終端的監測數據并將數據打包上傳至物聯網云平臺,同時實現控制命令的下傳。基于物聯網云平臺搭建智能電表系統的遠程監控中心,能夠實現電能參數的顯示、電表狀態和故障的顯示等。
1.2 系統實現功能
基于物聯網的單相智能電表系統的設計,從電能表、智能電表集中器和物聯網云平臺三個部分開展設計。運用傳感器技術、物聯網技術以及嵌入式控制技術來進行設計。主要完成以下幾個方面的工作:
1)設計電能參數計量模塊實現對電能參數的測量;
2)通過互感器實現對電壓和電流參數的采樣;
3)通過合適的低功耗控制芯片構建電能表,并且搭配合適的 LCD 顯示模塊、故障報警模塊、緊急斷電模塊、通信模塊等實現監控終端的數據采集與發送;
4)設計嵌入式處理器控制電路構建智能電表集中器,實現對下級電表終端的數據通信并將數據上傳至物聯網云平臺;
5)通過物聯網開放云平臺,實現智能電表集中器與云平臺的連接,實現電表數據的集中存儲;
6)設計智能電表終端和集中器的軟件,實現故障檢測、數據采集、分段計費、盜電監測等功能;7)設計物聯網云平臺的手機端界面,開發智能電表顯示終端,實現電能數據的顯示和執行機構的控制。
02
系統方案設計
本系統設計采用高性能的電能計量SOC 芯片構建終端的監測中心。可以實現控制和監測功能,有效降低成本。通過高性能的嵌入式處理器芯片構建智能電表集中采集器,該集中器采集多個智能電表終端的數據而后將數據上傳至物聯網云平臺。基于設計要求和成本要求,本次設計選取專業的物聯網開放云平臺來實現服務器功能用以實現數據存儲并且搭建了智能電表手機 APP 實現電表的監控。大大降低了開發成本縮短了開發周期。整體結構框圖如圖2所示。
圖2 整體結構框圖本次設計方案采用了典型的物聯網三層架構,感知層包括智能電表集中器和多個智能電表實現電能參數的檢測和控制。終端還集成 LCD 顯示模塊,故障報警模塊和鍵盤輸入模塊等。智能電表集中器主要由嵌入式處理器芯片和外圍電路組成,集中器可以實現多個電表的數據采集與打包并且將數據上傳至物聯網云平臺。網絡層為廣域網,智能電表集中器將打包的數據上傳至路由器供物聯網云平臺進行采集。
基于互聯網的單相智能電表系統的總體結構圖如圖3所示。系統整體分為智能電表、集中采集器、物聯網云平臺三大部分。圖3系統總體結構圖智能電表計量安裝于用戶現場,由 SOC 計量芯片系統構成。終端可以實現對電網參數的采集,對數據進行預處理,故障時自動上報故障信息,接受云平臺下傳的控制命令,將預處理后的數據通過通信模塊上傳至智能電表集中采集器進行打包。
- 智能電表集中采集器由高性能的嵌入式操作系統構成,可以讀取下級電表的電能參數,并且可以根據機智云平臺的軟件協議將數據進行打包而后將數據通過通信模塊上傳至云平臺。同時還可以實現數據的雙向傳輸,下傳遠程監控中心的控制命令等。
- 云平臺可以提供免費的設備接入服務,可以自動匹配處理器上傳的數據流并且可以設置顯示控件進行顯示。同時還可以下傳控制命令。通過云平臺可以節約開發成本并且可以縮短開發時間。
遠程監控終端基于云平臺的存儲功能并且自行搭建人機界面,用戶和供電公司可以通過手機 APP 實現遠程監控。
03
系統硬件設計
智能電表系統的整體硬件電路設計方案如圖4所示,主要分為智能電表監測終端硬件設計和智能電表集中采集器硬件設計。智能電表監測終端核心為 HT5017 芯片,還包括外圍電路等。智能電表集中器主要包括 STM32 芯片及其硬件電路。圖4 系統整體結構圖3.1 電能表硬件設計電能表主要包括電能表的控制核心、芯片外圍電路、采樣電路、通信電路、顯示電路、輸入電路等。實現電能參數的采集、傳輸、預處理、終端顯示等功能。1) 芯片選擇通過對市場上常用的智能電表測控芯片選擇,本設計選定 HT5017 芯片作為本次設計的電能表的控制核心。其具有芯片高度集成,抗干擾能力大大增強,溫度、濕度等對其干擾影響小、可靠性高、性能良好。該芯片的引腳配置和實物圖如圖5所示。圖5 HT5017 芯片引腳定義圖和實物圖2)最小系統HT5017 芯片的最小系統電路如圖6 所示。主要包括復位電路、下載電路、外部晶振電路。通過這些外圍電路可以使芯片正常工作。由于芯片內部已經集成了兩個大小為 24pF 的電容,因此在設計時不需要再連接電容,如果外接電容的話,可能會影響芯片的 EMC 性能。圖6 HT5017 芯片最小系統電路3)電源模塊電能表的電源電路如圖7 所示,總體上電路通過變壓器取電,在變壓器二次側通過LM7805、DC-DC 和 AMS1117 芯片以及外圍電路實現對電路的供電。電路供電系統包含 5V、12V 以及 3.3V 供電。可以給單片機以及采集模塊、執行模塊和報警模塊等供電。同時通過多個電容實現對電源電路的濾波。圖7 電能表的電源電路4)采樣電路*電壓采樣電路電壓采樣電路選擇電阻分壓電路,通過采用多個電阻進行分壓的方式,提高了電路降壓性能,使電壓轉換成一定比例的弱電壓,滿足了計量芯片的輸入電壓要求,并有成本低的優點,又具備抗電磁干擾等條件。電壓分壓采樣電路如圖8所示。圖8 電壓分壓采樣電路*電流采樣電路電流采樣電路采用了電流互感器接入式,通過電流互感器進行降低電流,電流互感器可以將一次測的電流進行降低,從二次側輸出,可以保證電能表的安全,電流分壓采樣電路如圖9所示。圖9 電流分壓采樣電路5)液晶顯示電路從本智能電表的性能要求出發,并結合成本考慮,本設計選擇了字段型液晶顯示。由于芯片 HT5017 內部集成了 LCD 驅動電路,所以液晶顯示的電路設計比較簡單。LCD 顯示電路如圖10所示。LCD 的段位引腳直接連接到主控芯片 HT5017 的段位引腳上就可以了。圖10 LCD 顯示電路 6)通信模塊電能表通信模塊選取 AS32-TTL-1W 模塊,這是一款 433MHZ 具有高穩定性的工業級無線傳輸模塊。電路接口圖和實物圖如11所示。圖 11 無線模塊實物圖與電路圖7)報警單元電能表的防竊電報警電路如圖 12所示,當系統出現故障或者用戶缺電時單片機端口輸出高電壓使得三極管 Q1 閉合從而蜂鳴器鳴響實現報警。防竊電報警模塊電路圖如13所示。圖12 蜂鳴器報警電路圖13 防竊電報警電路8)自動斷電模塊系統選用動斷型繼電器 SRD-12VDC-SL-C,該繼電器驅動電壓為 12V。圖14為繼電器開關控制電路的原理圖。圖14 繼電器驅動電路9)鍵盤模塊裝置設計按鍵電路,使用戶能很方便的對電能表進行操控,可以對電能表進行切換顯示內容的操作。設計獨立按鍵電路如圖15所示。圖15 按鍵電路
3.2集中采集器的硬件設計1)控制芯片
集中采集器選用STM32F103C8T6 作為控制核心。該芯片引腳數量較少,成本低且能夠滿足本次設計的需求,實現對多個智能電表的電能參數讀取、處理和上傳。如圖 16為芯片的引腳定義和實物圖。圖16 芯片引腳定義圖和實物圖
2)最小系統電路
集中采集器主控芯片采用 STM32F103C8T6 芯片,系統電路圖如圖17所示。最小系統電路主要包括芯片的外部晶振電路、復位電路、下載電路和電源電路等。該最小系統電路可以滿足芯片的正常工作需求且設計簡單可靠。 圖17STM32F103C8T6 芯片系統電路
3)電源模塊
集中采集器模塊的供電需求主要是嵌入式處理器電路和通信電路。采用LM1117 三端芯片實現+3.3V 電壓的輸出供給芯片。同時通過MIC29302 芯片實現+3.9V 電壓的輸出供給通信模塊實現數據的傳輸。電路圖如18所示。
圖18電源電路
4)通信電路
采用EC20R2.1模塊實現數據的上傳,設計了基于MIC29302 芯片為核心的穩壓電路,輸出 3.9V 電壓為 EC20 模塊供電。此外集中采集器預留了 AS32-TTL-1W 無線串口模塊實現與電能表的數據通信。電路圖如19所示。 圖194G 模塊和 AS32 無線模塊接口圖
04
系統軟件設計
系統軟件設計主要完成電能表、集中采集器的軟件設計,物聯網云平臺的構建以及 Android 應用軟件的設計。4.1 電能表程序設計
通過電能表、集中采集器的軟件設計采用 C 語言的方式進行編程和調試,編譯軟件使用的是 Keil。主要內容包括電能表主程序、RTC 時鐘、計量單元、存儲單元、無線通信的軟件設計,集中采集器的主程序、數據接收以及數據發送的軟件設計。
1)電表主程序
電能表的主程序流程如圖20所示,主程序的主要任務就是完成對模塊單元的初始化設置以及協調各模塊單元有序運行。 圖20 主程序流程圖
在系統接入電源以后,首先就要對系統進行初始化。設置外部晶振為系統主時鐘,完成 I/O 口功能設置,包括 USART 串口、ADC 串口功能的設置,完成電能參數寄存器的初始化操作。系統從時鐘電路得到時鐘信號,進而處理器將會對采集來的電壓、電流信號的數據進行參數計算。有功功率通過電壓、電流相乘經過低通濾波器得到,無功功率先將電壓移相 90o,通過移相后電壓、電流相乘經過低通濾波器得到,將得到的電能參數數據儲存至電能寄存器中,最后通過無線通信模塊發送至集中采集器。
2)RTC 時鐘子程序設計
從 RTC 模塊讀取 TPS 輸出的溫度值,為了保證芯片在運行的過程中能夠根據環境溫度進行穩定補償,需要減小 TPS溫度數值的跳動,具體補償代碼如下。
Void RTC_compensate_initial(void){ uint8_t i; uint32_t ichecksum; //TPS config------------------------------- HT_TBS->TBSCON=0x0301; //Chop 都打開 8 次平均輸出 osr=64 HT_TBS->TBSIE=0x00; HT_TBS->TBSPRD=0x00;// //1s 打開 8 次 //RTC configure------------------------------------ HT_RTC->RTCIE=0x00; HT_RTC->RTCCON=0x00; HT_RTC->RTCCON|=0x06; //高頻補償 128Hz 之后輸出 1H HT_RTC->DFIH=((uint32_t)0>>16); HT_RTC->DFIL=(0); /*****讀取 Info 保存的 RTC 參數,并計算校驗和,檢查校驗和是否正確********/ /*****如果校驗和正確,加載 Info 參數到 RTC 相應 registers,否則寫入默認值參數********/}
RTC 時鐘校正的流程圖如圖 21所示。 圖21 RTC 時鐘校正流程圖3)計量模塊子程序設計
電能計量模塊主要功能就是將采樣得到的數據進行計算處理。首先智能電表先進行計量參數初始化。電能采樣數據每 0.5ms 刷新一次,在刷新的同時會設置一個標志信號,主程序接收到刷新信號后會執行電能計算,采樣的數據進入模數轉換通道轉換為數字量數據,然后在芯片的 EMU 模塊中進行電能計算,主要進行有功功率、無功功率、頻率等參數的計算。計算完成后將數據儲存在相應的 flash 寄存器,通過系統程序可以對數據進行輸出、調用。電能計量的程序圖如圖22所示。 圖22計量模塊程序流程圖
4)通信子程序
電能表的信息交互是通過通信功能來完成的,數據的接收和發送功能都是由USART 串口實現的。MCU 對電能數據進行采集,主要采集電流、電壓、有功功率等參數。數據幀通過串口接收中斷來獲取。接收后,對數據幀進行檢查,數據是否完整,地址是否吻合。最后,發送電能數據包。程序流程如圖23所示。圖23串口發送程序流程圖5)遠程預付費模塊程序設計
遠程預付費的控制流程如圖24所示,電能表接收物聯網云平臺發送的購電戶號、購電量告警電量等參數后,設置購電控制投入。計算剩余電量并判斷剩余購電量是否小于或等于告警電量。如果是,電能表發送警告信息,并切換控制狀態為非保電狀態。若判斷剩余購電量大于告警電量,進入保電狀態。圖24遠程預付費的控制流程圖
2)甲烷氣體傳感器電路甲烷、一氧化碳等有毒氣體檢測電路是整個系統電路的核心組成部分之一,核心部件 MQ-5 有毒氣體傳感器,具有靈敏度高、壽命長、穩定性好、電路結構簡單的優點,所以常用于家庭、工廠和公共場所的氣體安全檢測。而且 MQ-5 不僅能檢測甲烷,還能檢測氫氣、苯、天然氣等氣體的探測。所以相對準確地說,MQ-5 是個多種氣體檢測傳感器。4.2 集中采集器的程序設計
集中采集器需要接收多個電能表的計量數據信息,對數據進行打包處理,最后通過4G 模塊傳輸至物聯網云平臺中。系統主要由主程序、遠程數據采集以及數據發送物聯網程序組成。
1)系統主程序
集中采集器主程序需要完成電能表數據的召測采集與數據的發送任務。具體流程如圖25所示。采集器接通電源后,首先進行系統的初始化,主要完成USART 串口以及時鐘的初始化。然后,無線采集模塊、4G 通訊進行初始化設置,并對所連接電能表發送召測數據命令,如有異常,則記錄異常信息。最后,接收電能表發送的數據信息,處理、打包數據并通過 4G 模塊上傳至物聯網云平臺中。 圖25主程序流程圖
2)數據遠程采集子程序的設計
數據遠程采集主要通過定時器中斷觸發串口命令發送,進而完成電能表數據的采集任務。具體流程如圖26所示,完成定時器、串口初始化設置。圖26數據采集流程圖
然后,集中采集器向電能表發送數據召測命令,電能表發送計量數據。進而,將接收的數據進行 CRC 校驗。部分程序如下:
unsigned int CRC16 (unsigned char * puchMsg, unsigned int usDataLen) /* The function returns the CRC as a unsigned short type */{ unsigned char uchCRCHi = 0xFF ; unsigned char uchCRCLo = 0xFF ; unsigned uIndex ; while (usDataLen--) { uIndex = uchCRCLo ^ *puchMsg++ ; uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex] ; uchCRCHi = auchCRCLo[uIndex] ; } return (uchCRCHi << 8 | uchCRCLo) ;}
數據校驗有誤,重新進行數據采集;數據校驗正確,將數據存儲。3)數據遠程發送子程序的設計
數據遠程發送子程序主要完成數據打包處理,網絡連接以及數據的上傳等任務。具體流程如圖27所示。圖274G 模塊數據上傳流程圖
首先,系統初始化串口引腳,完成 4G 模塊自檢以及設置 4G模塊工作模式,部分代碼如下:
void EC20_Init(void){ Uart2_SendStr("AT+QGPS=1\r\n"); Clear_Buffer(); Uart2_SendStr("AT+CPIN?\r\n"); delay_ms(500); strx=strstr((const char*)AtRxBuffer,(const char*)"+CPIN: READY"); while(strx==NULL) { Clear_Buffer(); Uart2_SendStr("AT+CPIN?\r\n"); delay_ms(500); strx=strstr((const char*)AtRxBuffer,(const char*)"+CPIN: READY"); } Clear_Buffer(); Uart2_SendStr("AT+CSQ\r\n"); Clear_Buffer(); Uart2_SendStr("AT+CGREG?\r\n"); strx=strstr((const char*)AtRxBuffer,(const char*)"+CGREG: 0,1"); extstrx=strstr((const char*)AtRxBuffer,(const char*)"+CGREG: 0,5");}
然后,連接物聯網云平臺,將遠程召測的數據進行打包,完成發送,數據采用Json 格式,如下所示:
{ “data”: { “id”:”Volage”, “datapoints”: { “at”:”2019-12-22T2212”, “Volage”:”220.5” } }}
4.3 物聯網云平臺的軟件設計系統采用機智云物聯網云平臺作為平臺,實現數據云存儲。機智云平臺軟件設計流程如圖28所示。 圖28機智云平臺軟件設計流程圖機智云平臺軟件設計主要包括:創建賬號、創建智能電表設備、創建數據流并完成應用程序接口參數配置。首先創建賬戶,登錄開發者界面,創建一個智慧電能管理系統的產品平臺,選擇 WI-FI 或移動網絡,選用 SOC 方案,云平臺會為所創建的產品自動分配產品標識碼與產品密鑰等信息,具體如圖29所示。圖29產品信息示意圖
進而,需要向所創建的產品下面添加相應的數據點,數據點分為顯示名稱、標識名等,且具有只讀、可寫、故障、報警以及數值、枚舉、布爾值等屬性,根據用戶的需要靈活設置。根據本系統需要,設置電壓、電流、功率以及電能等數據點,并分別設置其屬性,具體信息如圖30所示。圖30數據點添加及修改示意圖
最后,利用機智云提供的應用接口,對系統的應用程序進行配置,用戶端采用 Android 平臺進行開發,機智云平臺將自動分配 APPID、APPSecret 等參數,具體設置界面如圖31所示。圖31APP 配置界面信息
4.4 Android 客戶端的軟件設計
用戶應用程序基于Android 平臺,采用Java 語言進行開發。本系統開發選用 Eclipse 開發環境完成 Android 軟件開發設計。
用戶應用程序主要包括用戶登錄、網絡連接、數據讀取以及用戶界面等,具體程序框架如圖32所示。用戶登錄主要實現不同客戶的登錄功能,電網公司為客戶分配了用戶電表戶號,通過登錄戶號,進入客戶專屬的電能管理應用系統。 圖32用戶應用程序框架結構
網絡部分采用 Socket 編程方式,引用 java.net.Socket 包,創建一個 Socket 對象,連接到機智云物聯網云平臺。具體代碼如下:
mSocket = new Socket(ip,port);OutputStream outputStream = mSocket.getOutputStream();in = mSocket.getInputStream();showInfo("連接成功!");
數據傳輸采用 Http 協議,應用 Get 命令讀取機智云平臺中的數據,例如獲取實時電壓數據指令為:
GET http:// www.gizwits.com/devices/datapoints?datastream_id=Volageapi-key: bmj14LsfVIU4jViOzyZRKxHost: api.gizwits.com
機智云平臺返回 json 格式的數據,需要將 json 格式的數據轉換成 java 面向對象的實體類,并應用 Google 提供的 google.gson.Gson 包進行數據的解析,部分解析代碼如下:
public class JsonRootBean{ private int errno; private Data data; private String error; public void setErrno(int errno) { this.errno = errno; } public int getErrno() { return errno; } public void setData(Data data) { this.data = data; } public Data getData() { return data; } public void setError(String error) { this.error = error; } public String getError() { return error; }}
以用戶登錄界面為例進行用戶界面的設計,首先創建一個用戶登錄的活動界面,在界面中插入圖片、文本、按鍵等控件,并設置其屬性。設計完成的用戶登錄界面如圖33所示,界面包括應用程序Logo、用戶號輸入文本框以及登錄按鈕。
05
系統調試
5.1 試驗平臺
根據之前對硬件電路圖的設計,采用 Altium Designer 軟件對智能電表和集中采集器的硬件 PCB 進行了設計制作。并根據設計的技術規范進行測試。主要進行準確度和功耗的驗證。為了進行該驗證搭建了電能表測試平臺。
5.2 通信驗證
本次智能電表系統的通信模塊主要包括集中采集器與電能表的無線通信模塊驗證和集中采集器與物聯網云平臺的通信驗證。為了更加直觀的了解計量終端的通信命令,本次使用串口調試助手對電能表進行了通信驗證,串口調試助手與電能表成功通信的示意圖如35所示。圖35 電能表串口調試示意圖
下面進行集中采集器與物聯網云平臺的通信調試,物聯網云平臺的配置圖如36所示。通過機智云平臺的計入步驟進行配置,可以看到本設備的接入信息等。成功連接后可以實現數據的遠程存儲。圖36 機智云平臺連接示意圖
之后通過自行搭建的智能電表監控手機 APP 對物聯網云平臺的數據進行讀取并在人機界面進行了顯示。如圖38為智能手機對電能參數的顯示示意圖,可以看到電能參數可以正常顯示在 APP 上方便用戶和供電公司進行讀取。圖37手機 APP 顯示示意圖
此外,系統通過物聯網平臺實現了數據的存儲,可以對歷史數據進行分析和顯示,方便供電公司和用戶對自己的歷史用電數據進行分析,可以通過對數據的分析來判定系統是否正常并且可以指導用戶合理用電。歷史數據顯示界面如圖38所示。 電能表同時還可以通過 LCD 模塊實現終端數據的顯示,方便現場人員進行調試與檢測。LCD 模塊顯示電能參數如圖39所示。
圖39 電能表 LCD 顯示示意圖
06
總 結
為了進一步滿足智能電表領域的要求,本研究設計了這套基于物聯網的單相智能電表裝置。整套系統的特點如下:
1)遵循國網公司“電能表、集中器、服務器、客戶端”體系架構,借助于物聯網,完成了單相智能電表系統的設計,整套系統運行穩定、成本較低。
2)基于 HT5017 的 SOC 芯片完成了電能表的設計,既能實現數據處理、數據傳輸以及顯示等功能,也能實現電能采集功能,較傳統“控制芯片+計量芯片”的架構更為簡單,穩定性更高。
3)基于 STM32F103 嵌入式處理芯片構建了集中采集器,實現對下級電能參數的打包并將打包后的數據上傳至遠程物聯網云平臺,“雙無線傳輸”的方式,使系統現場安裝方便快捷,成本降低。
4)通過免費的物聯網云平臺機智云實現數據的存儲,大大降低了系統的運行維護成本,并且設計了手機 APP 實現電能參數的監控,人機交互更加方便。在實驗室完成了系統樣機的調試與驗證。結果表明,系統運行可靠、測量精確度高,滿足多功能電表的監測需求。
-
物聯網
+關注
關注
2913文章
44923瀏覽量
377006 -
soc
+關注
關注
38文章
4204瀏覽量
219091 -
智能電表
+關注
關注
25文章
940瀏覽量
109349 -
機智云
+關注
關注
2文章
591瀏覽量
26459
發布評論請先 登錄
相關推薦
評論