一、概述
云快充 1.5 /1.6是目前国家标准,所有的充电桩硬件设备都支持这个标准。为了以后充电桩数据采集,将数据采集与后台的交换进行分离,提高服务效率及系统的稳定性。本文将介绍如何开发数据采集服务器以及采集服务器如何与后台管理系统进行数据交互。
二、充电桩整个系统架构
1、充电桩数据采集服务器
就是本文重点介绍的项目。负责充电桩的数据采集及接收后台管理系统的下发命令。
2、后台管理系统
负责充电桩信息维护,并且提供API及Websocket为前端提供服务。
3、前端有App,微信小程序,支付宝小程序。
用户通过下载App,或者直接使用微信或者支付宝扫码进入充电桩页面,进行充值然后开启充电业务。
三、数据采集服务器依赖
1、开发语言:java 17 springboot
2、引用模块:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
netty-all 4.1.115Final
spring-boot-starter-data-redis
spring-integration-mqtt 5.5.14
四、使用 Redis 与 Mqtt进行数据共享与同步
数据采集服务器与Redis的交互,Mqtt的交互,请参考交互文档。
五、部分功能实现代码
1、整个项目的 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ahsh1688</groupId>
<artifactId>iot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>iot</name>
<description>充电桩通信与控制模块</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- 禁止 Web方式启动通信应用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 使用Web方式启动通信应用 -->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!--