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

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

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

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

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

  中圖分類(lèi)號(hào):TP23文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.027

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

  0引言

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

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

1原理設(shè)計(jì)

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

  1.1通信協(xié)議選擇

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

001.jpg

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

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

  1.2硬件設(shè)計(jì)

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

  

002.jpg

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

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

  1.3軟件設(shè)計(jì)

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

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

  1.3.2采集程序設(shè)計(jì)

  用戶(hù)應(yīng)用的初始化功能在user_init()實(shí)現(xiàn),,user_init()是程序的入口函數(shù), ESP8266開(kāi)機(jī)從該函數(shù)開(kāi)始執(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客戶(hù)端信息,這里需要注意連接TCP服務(wù)器時(shí)必須確保WiFi已成功連接,,因此設(shè)定了一個(gè)定時(shí)器test_timer,,該定時(shí)器的作用是通過(guò)WiFi狀態(tài)接口函數(shù)wifi_station_get_connect_status()循環(huán)檢測(cè)WiFi是否連接成功,當(dāng)WiFi連接成功后配置TCP客戶(hù)端信息,。下面為建立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);//遠(yuǎn)程IP設(shè)定

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

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

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

  }

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

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

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

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

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

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

  2.1采集方案A

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

004.jpg

005.jpg

  2.2采集方案B

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

006.jpg

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

  2.3采集方案比較

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

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

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

3結(jié)論

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

  參考文獻(xiàn)

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

 ?。?] 劉嘉慧.我國(guó)可插電式電動(dòng)汽車(chē)充電設(shè)備行業(yè)研究報(bào)告[D].成都:西南財(cái)經(jīng)大學(xué), 2014.

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

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

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

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

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


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