《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計應(yīng)用 > 基于ESP8266的充電樁數(shù)據(jù)采集器設(shè)計
基于ESP8266的充電樁數(shù)據(jù)采集器設(shè)計
2017年微型機與應(yīng)用第9期
朱浩翔1,郭為民2,楊寧1
1.上海電力學(xué)院 自動化工程學(xué)院,上海 200090; 2.國網(wǎng)河南省電力公司電力科學(xué)研究院,河南 鄭州 450052
摘要: 充電樁通常采用工業(yè)總線與后臺通信。針對工業(yè)總線布網(wǎng)復(fù)雜、擴展性差、易受干擾等缺點,通過無線模塊設(shè)計了一個充電樁數(shù)據(jù)采集器,以ESP8266作為核心通信模塊,將充電樁的數(shù)據(jù)進行采集并上傳到上位機。首先介紹了ESP8266硬件電路及其開發(fā)環(huán)境。接著根據(jù)采集數(shù)據(jù)的不同,提出了一種更高效率的采集方案。最后經(jīng)過實際應(yīng)用驗證了該采集器的可行性。所設(shè)計的采集器具有一定的通用性,通過簡單修改配置,可以將此采集器應(yīng)用于不同設(shè)備的數(shù)據(jù)采集。
Abstract:
Key words :

  朱浩翔1,郭為民2,楊寧1

 ?。?.上海電力學(xué)院 自動化工程學(xué)院,上海 200090;2.國網(wǎng)河南省電力公司電力科學(xué)研究院,河南 鄭州 450052)

  摘要充電樁通常采用工業(yè)總線與后臺通信。針對工業(yè)總線布網(wǎng)復(fù)雜、擴展性差、易受干擾等缺點,通過無線模塊設(shè)計了一個充電樁數(shù)據(jù)采集器,以ESP8266作為核心通信模塊,將充電樁的數(shù)據(jù)進行采集并上傳到上位機。首先介紹了ESP8266硬件電路及其開發(fā)環(huán)境。接著根據(jù)采集數(shù)據(jù)的不同,提出了一種更高效率的采集方案。最后經(jīng)過實際應(yīng)用驗證了該采集器的可行性。所設(shè)計的采集器具有一定的通用性,通過簡單修改配置,可以將此采集器應(yīng)用于不同設(shè)備的數(shù)據(jù)采集。

  關(guān)鍵詞:充電樁;無線通信;ESP8266;采集方案

  中圖分類號:TP23文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.027

  引用格式:朱浩翔,郭為民,楊寧.基于ESP8266的充電樁數(shù)據(jù)采集器設(shè)計[J].微型機與應(yīng)用,2017,36(9):92-94,99.

  0引言

  據(jù)國家發(fā)改委公布的數(shù)據(jù),截止到2016年,我國充電樁的數(shù)量不到 5 萬個,遠遠不能滿足國內(nèi)電動汽車發(fā)展的需要,明顯制約了電動汽車的普及。在“十三五”的規(guī)劃指導(dǎo)下,越來越多的汽車制造商和電力企業(yè)投入了大量的資源開展充電樁等電動汽車基礎(chǔ)設(shè)施的研究。但在積極推動電動汽車基礎(chǔ)設(shè)施建設(shè)的情況下,仍存在認識不統(tǒng)一、配套政策不完善、協(xié)調(diào)推進難度大、標準規(guī)范不健全等問題。其中充電樁后臺檢測是充電樁快速推廣發(fā)展的關(guān)鍵,要在充電站實現(xiàn)通信系統(tǒng),通常需要布置各類工業(yè)總線(RS485、RS232、CAN總線),其優(yōu)點是數(shù)據(jù)傳輸可靠、設(shè)計簡單[1];缺點是布網(wǎng)復(fù)雜、擴展性差、施工成本高、靈活性差、通信容量低,并且在一般的電力環(huán)境中都會存在很大的電磁干擾[2],普通線纜布置的總線網(wǎng)絡(luò)常常會出現(xiàn)問題,另外對于早期投入建設(shè)但無良好通信功能的充電樁來說,在現(xiàn)場地下重新布置工業(yè)總線既不經(jīng)濟也不現(xiàn)實。因此,本文基于無線通信模塊設(shè)計了一個充電樁數(shù)據(jù)采集器,該采集器的工作是將充電樁的數(shù)據(jù)上傳到上位機,具有成本低、擴展性好、靈活性好等優(yōu)點。

  工業(yè)常用的無線通信模塊有NRF905、CC1101、CC3200、SIM900、ESP8266等,前兩者通常需要額外的單片機對其進行控制和數(shù)據(jù)處理;ESP8266模塊自帶GPIO與SPI等接口,可以獨立作為產(chǎn)品不需要額外的單片機;而CC3200和SIM900模塊功能強大且包含了MCU,但其價格昂貴、功耗較大[36]。ESP8266不僅價格低廉,還有如下優(yōu)點:同類產(chǎn)品一般不帶Flash,ESP826612F的Flash為4 MB、內(nèi)存為80 KB;其兼容性非常好,支持AT指令、C、Python、Lua、Javascript、Arduino等開發(fā)語言。因此ESP8266是業(yè)界一款里程碑式的WiFi芯片。

1原理設(shè)計

  選擇ESP8266作為無線通信模塊,通過RS485串口與充電樁連接,將ESP8266連接到WiFi與上位機處在同一局域網(wǎng),實現(xiàn)局域網(wǎng)內(nèi)通信。上位機通過下發(fā)查詢報文采集充電樁的數(shù)據(jù)。充電樁只需轉(zhuǎn)發(fā)報文采集電能表數(shù)據(jù)。

  1.1通信協(xié)議選擇

  系統(tǒng)總體框圖如圖1所示。

001.jpg

  ESP8266內(nèi)置了完整的TCP/IP協(xié)議棧,可以作為TCP的客戶端。固件提供了接口函數(shù),用戶可以不管TCP/IP底層代碼的實現(xiàn)。為了確保數(shù)據(jù)傳輸?shù)目煽亢桶踩?,選擇MODBUSTCP協(xié)議與上位機通信。其中上位機作為TCP服務(wù)器。

  由于充電樁的數(shù)據(jù)由電能表提供,因此選擇電能表協(xié)議DLT6452007與ESP8266通信。

  1.2硬件設(shè)計

  由于ESP8266集成了射頻電路,內(nèi)置32位MCU,使得外圍電路設(shè)計十分容易。其硬件電路圖如圖2所示。

  

002.jpg

  由圖2可以看出ESP8266的外圍電路非常簡單,ESP8266對電源穩(wěn)定性要求非常高,因此只需幾個電容用于電源濾波。3.3 V的電壓可以直接用LiPo電池供電。本采集器使用的型號是ESP826612E,該型號是ESP8266系列中最穩(wěn)定、最成熟的模塊。

  充電樁的核心控制板M287是飛思卡爾的一塊工控核心板,M287通過RS485串口與ESP8266連接。

  1.3軟件設(shè)計

  1.3.1ESP8266 SDK與ESP8266 IDEEclipse IDE:它是由安可信發(fā)布的一款用于ESP8266二次開發(fā)的軟件平臺,由Eclipse集成了相關(guān)插件,相對于官方開發(fā)環(huán)境配置。Eclipse IDE簡易、方便,最重要的是可以在Windows下直接運行[7],編譯過后能夠直接生成bin文件,通過燒寫工具ESP8266Flasher將bin文件燒入ESP8266即可。

  ESP8266 SDK(Software Development Kit):用戶根據(jù)自己的ESP8266型號在樂鑫官網(wǎng)上下載需要的SDK。SDK包含了所有驅(qū)動,為用戶提供了一個非常簡單易用的平臺,雖然其底層代碼對用戶不透明,但都提供了接口函數(shù),用戶根據(jù)編程手冊可以直接調(diào)用[3]。

  1.3.2采集程序設(shè)計

  用戶應(yīng)用的初始化功能在user_init()實現(xiàn),user_init()是程序的入口函數(shù), ESP8266開機從該函數(shù)開始執(zhí)行。ESP8266主程序流程框圖如圖3所示。

003.jpg

  主程序user_init()部分代碼如下:

  void user_init()

  {

  uart_init(BIT_RATE_115200,BIT_RATE_115200);

  //串口初始化

  user_set_station_config();

  //esp8266 WiFi信息配置

  }

  void user_set_station_config()

  {

  struct station_config stationconfig;

  os_memset(&stationconfig.ssid, 0, 32);

  os_memset(&stationconfig.password, 0, 64);

  os_memcpy(&stationconfig.ssid, "WIFINAME", 8); //設(shè)定連接的WiFi

  os_memcpy(&stationconfig.password, "passward.", 8); //WiFi密碼

  stationconfig.bssid_set=0;

  wifi_station_set_config(&stationconfig);

  os_timer_disarm(&test_timer);

  os_timer_setfn(&test_timer,(os_timer_func_t*)user_check_ip, NULL);

  os_timer_arm(&test_timer, 2000, 1);

  }

  最后配置TCP客戶端信息,這里需要注意連接TCP服務(wù)器時必須確保WiFi已成功連接,因此設(shè)定了一個定時器test_timer,該定時器的作用是通過WiFi狀態(tài)接口函數(shù)wifi_station_get_connect_status()循環(huán)檢測WiFi是否連接成功,當WiFi連接成功后配置TCP客戶端信息。下面為建立TCP連接的程序:

  user_check_ip()

  {

  tcpclient.type=ESPCONN_TCP;//tcp連接方式

  tcpclient.state = ESPCONN_NONE;

  tcp_server_ip.addr = 0;

  const char esp_server_ip[4] = {x,x,x,x};

  os_memcpy(tcpclient.proto.tcp->remote_ip, esp_server_ip, 4);//遠程IP設(shè)定

  tcpclient.proto.tcp->remote_port = 8888; // 遠程端口設(shè)定

  tcpclient.proto.tcp->local_port = espconn_port(); //本地端口設(shè)定

  espconn_connect(&tcpclient);//連接tcp 服務(wù)器

  }

  remote_ip可以選擇自動分配或固定IP,遠程端口remote_port根據(jù)上位機選擇,通常選擇比較大的,小的端口通常被上位機一些系統(tǒng)服務(wù)占據(jù)。

2數(shù)據(jù)采集方案

  根據(jù)充電樁電能表協(xié)議,需要采集的數(shù)據(jù)有變量數(shù)據(jù)、電能量數(shù)據(jù)、最大需量及發(fā)生時間數(shù)據(jù)、時間記錄數(shù)據(jù)。

  根據(jù)采集頻率和是否需要實時顯示,將數(shù)據(jù)分為兩類,分別采用不同的方案采集。

  第一類數(shù)據(jù):電能量數(shù)據(jù)、最大需量及發(fā)生時間數(shù)據(jù)、時間記錄數(shù)據(jù),比如:A相電壓失壓總次數(shù)和時間。此類數(shù)據(jù)非常多,并且是不需要實時顯示的,采集頻率很低,采用方案A。

  第二類數(shù)據(jù):變量數(shù)據(jù),比如:A、B、C三相電壓、電流、功率等,此類數(shù)據(jù)是需要實時顯示的,其采集頻率很高。采用方案B。

  2.1采集方案A

  針對非實時更新數(shù)據(jù):比如事件記錄數(shù)據(jù)中的某條報文:A相失壓總次數(shù)和時間。上位機下發(fā)該條查詢報文,ESP8266解析該報文并下發(fā)給電能表,電能表響應(yīng)該報文并回復(fù)報文給ESP8266,ESP8266解析回復(fù)報文再上傳給上位機。采集方案A如圖4所示。具體程序流程圖如圖5所示。

004.jpg

005.jpg

  2.2采集方案B

  針對實時更新數(shù)據(jù):比如瞬時電壓、電流、功率。由ESP8266向電能表循環(huán)發(fā)送N條報文,電能表響應(yīng)每一條報文,ESP8066解析N條報文,得到數(shù)據(jù)存入自身內(nèi)存。上位機向ESP8266循環(huán)下發(fā)N條查詢報文,ESP8266取出內(nèi)存中的數(shù)據(jù)回復(fù)上位機。采集方案B如圖6所示。

006.jpg

  具體程序流程圖如圖7所示。

  2.3采集方案比較

  對比分析方案A和方案B,由于方案B中的ESP8266與上位機和充電樁的通信是相互獨立的,因此在程序上更容易實現(xiàn)。并且由于方案B相互間的通信是同時進行的,需要實時更新的數(shù)據(jù)已經(jīng)被采集并存放在ESP8266內(nèi)

  存中,上位機在下發(fā)查詢報文時,ESP8266只需取出內(nèi)存中的數(shù)據(jù)直接回復(fù)即可,無需將MODBUSTCP報文格式轉(zhuǎn)化為DLT6452007報文格式,再下發(fā)到充電樁,最后才將充電樁回復(fù)的數(shù)據(jù)上傳到上位機。綜上所述,方案B的采集效率更高,因此數(shù)據(jù)的實時性也得到了提高。

  兩套流程交替運行,如果上位機準備查詢的是非實時數(shù)據(jù),此時ESP8266通過判斷上位機下發(fā)的查詢報文,停止A方案,開始B方案。由于非實時數(shù)據(jù)采集頻率通常非常低,所以待一條非實時數(shù)據(jù)的報文得到正常響應(yīng)后,重新開始A方案,停止B方案。

3結(jié)論

  本文基于ESP8266設(shè)計的無線數(shù)據(jù)采集器,成功地實現(xiàn)了充電樁的數(shù)據(jù)采集,針對不同數(shù)據(jù)類型使用不同采集方案提高了充電樁的數(shù)據(jù)采集效率。與傳統(tǒng)的充電樁有線數(shù)據(jù)采集器相比,該采集器具有方便安裝、易于維護、靈活擴展等特點。該采集器具有一定的通用性,通過修改配置文件并增加所需通信協(xié)議,即可以作為通用的數(shù)據(jù)采集產(chǎn)品。

  參考文獻

 ?。?] 周春喜.電動汽車充電站遠程監(jiān)管網(wǎng)絡(luò)系統(tǒng)研究[D].杭州:浙江大學(xué), 2012.

  [2] 劉嘉慧.我國可插電式電動汽車充電設(shè)備行業(yè)研究報告[D].成都:西南財經(jīng)大學(xué), 2014.

 ?。?]  霍濤, 賈振堂. 基于STM32和SIM900A的無線通信模塊設(shè)計與實現(xiàn)[J]. 電子設(shè)計工程, 2014, 22(17):106-110.

  [4] 李美蓮. 基于SIM900B家用電器遠程監(jiān)控系統(tǒng)的研究[J]. 微型機與應(yīng)用, 2013,32(24):31-33.

 ?。?] 齊華, 王秋娟, 劉軍. 基于CC2430的無線條碼數(shù)據(jù)采集器的設(shè)計[J]. 電子技術(shù)應(yīng)用, 2011, 37(2):120-122.

 ?。?] 李春杰,劉瑞霞.基于一種新型嵌入式系統(tǒng)級芯片的無線數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù), 2006, 29(3):36-38.

  [7] 范興隆. ESP8266在智能家居監(jiān)控系統(tǒng)中的應(yīng)用[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2016, 16(9):52-56.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。