浅析ESP8266的充电桩数据采集方案论文_薛坤余,张旭星,廖琴英

广州南方电力集团科技发展有限公司 广东广州 510000

摘要:ESP8266不仅价格低廉而且兼容性非常好,是业界一款里程碑式的WiFi芯片,本文基于无线通信模块提出了一种更高效率的采集方案,即一个充电桩数据采集器,最后经过实际应用验证了该采集器具有可行性。

关键词:充电桩;无线通信;ESP8266;采集方案

引言

随着国内电动汽车的发展,越来越多的汽车制造商和电力企业投人了大量的资源开展充电桩等电动汽车基础设施的研究。但在积极推动电动汽车基础设施建设的情况下,仍存在认识不统一、配套政策不完善、协调推进难度大、标准规范不健全等问题。中充电桩后台检测是充电桩快速推广发展的关键,因此,应加强对ESP8266的充电桩数据采集器设计的应用。

1 原理设计

选择ESP8266作为无线通信模块,通过RS485串口与充电桩连接,将ESP8266连接到WiFi与上位机处在同一局域网,实现局域网内通信。上位机通过下发查询报文采集充电桩的数据。充电桩只需转发报文采集电能表数据。

1.1 通信协议选择

系统总体框图如图1所示。

ESP8266内置了完整的TCP/IP协议栈,可以作为TCP的客户端。固件提供了接口函数,用户可以不管TCP/IP底层代码的实现。为了确保数据传输的可靠和安全,选择MODBUS-TCP协议与上位机通信。其中上位机作为TCP服务器。

由于充电粧的数据由电能表提供,因此选择电能表协议DLT645-2007与ESP8266通信。

1.2 硬件设计

由于ESP8266集成了射频电路,内置32位MCU,使得外围电路设计十分容易。其硬件电路图如图2所示。

由图2可以看出ESP8266的外围电路非常简单,ESP8266对电源稳定性要求非常高,因此只需几个电容用于电源滤波。3.3V的电压可以直接用LiPo电池供电。本采集器使用的型号是ESP8266-12E,该型号是ESP8266系列中最稳定、最成熟的模块。

充电粧的核心控制板M287是飞思卡尔的一块工控核心板,M287通过RS485串口与ESP8266连接。

1.3软件设计

1.3.1 ESP8266 SDK与ESP8266 IDE

Eclipse IDE:它是由安可信发布的一款用于ESP8266二次开发的软件平台,由Eclipse集成了相关插件,相对于官方开发环境配置。Eclipse IDE简易、方便,最重要的是可以在Windows下直接运行,编译过后能够直接生成bin文件,通过烧写工具ESP8266Flasher将bin文件烧入ESP8266即可。

ESP8266 SDK(Software Development Kit):用户根据自己的ESP8266型号在乐鑫官网上下载需要的SDK。SDK包含了所有驱动,为用户提供了一个非常简单易用的平台,虽然其底层代码对用户不透明,但都提供了接口函数,用户根据编程手册可以直接调用。

1.3.2 采集程序设计

用户应用的初始化功能在user_init()实现,user_init()是程序的入口函数,ESP8266开机从该函数开始执行。ESP8266主程序流程框图如图3所示。

主程序uSer_init()部分代码如下:

void user_init()

{

Uart_init(BIT_RATE_115200,BIT_RATE_115200);

//串口初始化

User_set_staion_config();

//esp8266 WiFi信息配置

}

void_user_set_staion_config()

{

Struct staion_config syationconfig;

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

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

os_memcpy(&stationconfig.ssid,“WIFINAME”,8); //设定连接的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服务器时必须确保WiFi已成功连接,因此设定了一个定时器test_timer,该定时器的作用是通过WiFi状态接口函数wifi_station_get_connect_status()循环检测WiFi是否连接成功,当WiFi连接成功后配置TCP客户端信息。下面为建立TCP连接的程序:

user_check_ip()

{

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

tcpclient.state=ESPCONN_NONE;

tcp_server_ip.addr=0;

constcharesp_server_ip[4]=|x,x,x,x|;

os_memcpy(tcpclient.proto.tcp->remote_ip,esp_server_ip,4);//远程IP设定

tcpclient.proto,tcp->remote_port=8888;//远程端口设定

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

espconn_connect(&tcpclient);//连接tcp服务器

}

remote_ip可以选择自动分配或固定IP,远程端口re-mote_port根据上位机选择,通常选择比较大的,小的端口通常被上位机一些系统服务占据。

2 数据采集方案

根据充电桩电能表协议,需要采集的数据有变量数据)电能量数据、最大需量及发生时间数据、时间记录数据。

根据采集频率和是否需要实时显示,将数据分为两类,分别采用不同的方案采集。

第一类数据:电能量数据、最大需量及发生时间数据、时间记录数据,比如:A相电压失压总次数和时间。此类数据非常多,并且是不需要实时显示的,采集频率很低,采用方案A。

第二类数据:变量数据,比如:A、B、C三相电压、电流、功率等,此类数据是需要实时显示的,其采集频率很高。采用方案B。

2.1 采集方案A

针对非实时更新数据:比如事件记录数据中的某条报文:A相失压总次数和时间。上位机下发该条查洵报文,ESP8266解析该报文并下发给电能表,电能表响应该报文并回复报文给ESP8266,ESP8266解析回复报文再上传给上位机。采集方案A如图4所示。具休程序流程图如图5所示。

2.2 采集方案B

针对实时更新数据:比如瞬时电压、电流、功率。由ESP8266向电能表循环发送N条报文,电能表响应每一条报文,ESP8066解析N条报文,得到数据存人自身内存。上位机向ESP8266循环下发N条查询报文,ESP8066取出内存中的数据回复上位机。采集方案]如图6所示。具体程序流程图如图7所示。

2.3 采集方案比较

对比分析方案A和方案B,由于方案B中的ESP8266与上位机和充电桩的通信是相互独立的,因此在程序上更容易实现。并且由于方案]相互间的通信是同时进行的,需要实时更新的数据已经被采集并存放在ESP8266内存中,上位机在下发查询报文时,ESP8266只需取出内存中的数据直接回复即可,无需将MODBUS-TCP报文格式转化为DLT645-2007报文格式,再下发到充电桩,最后才将充电桩回复的数据上传到上位机。综上所述,方案]的采集效率更高,因此数据的实时性也得到了提高。

两套流程交替运行,如果上位机准备查询的是非实时数据,此时ESP8266通过判断上位机下发的查洵报文,停止A方案,开始B方案。由于非实时数据采集频率通常非常低,所以待一条非实时数据的报文得到正常响应后,重新开始A方案,停止B方案。

3 结论

综上所述,ESP8266模块自带GPI0与SPI等接口,可以独立作为产品不需要额外的单片机,与传统的充电桩有线数据采集器相比,该采集器具有具有成本低、扩展性好、灵活性好等优点。因此,ESP8266还可以广泛应用于智能家居、工业无线控制、无线传感器等领域.

参考文献:

[1]罗伟,刘赐恩,倪有顺,彭瑞.基于ESP8266EX的无线寻物装置的设计[J].科技视界. 2016(23)

{2]ESP8266在智能家居监控系统中的应用[J]. 范兴隆. 单片机与嵌入式系统应用. 2016(09)

论文作者:薛坤余,张旭星,廖琴英

论文发表刊物:《基层建设》2017年第16期

论文发表时间:2017/10/16

标签:;  ;  ;  ;  ;  ;  ;  ;  

浅析ESP8266的充电桩数据采集方案论文_薛坤余,张旭星,廖琴英
下载Doc文档

猜你喜欢