小牛充电桩连接自有服务器方法

493 阅读6分钟

小牛充电桩是深圳小牛新能源有限公司研发生产的电动汽车/电动单车充电桩产品。 小牛充电桩硬件设备基于最新版amazonFreeRTOS开发,可方便地接入全球任何AWS云平台。

本文介绍了如何将xnExCHARGER接入客户自己服务器的详细步骤。

1、准备工作

1.1 硬件设备准备

根据自己的实际情况,确认需要采购设备类型,准备好硬件设备。

小牛充电桩产品有汽车单相单枪(7KW),汽车单相双枪(7KWx2),汽车三相单枪(21KW)和十二路电动自行车充电桩(2.5KWx12)多个产品。

如需要进一步测试和研发,请先准备好测试设备。

1.2 账号申请

客户要将小牛充电桩接入自己的服务器,首先必需向亚马逊云平台申请账号。

注意中国区账号与全球不通用,中国区有宁夏和北京两个区域。

1.3 服务器地址准备

账号申请成功以后登陆亚马逊云服务器后台,进入AmazonIOT,点击“设置”,在“设备数据终端节点”中得到你的服务器地址。

在“我的账户”中得到你的账户ID,一个12位的数字编号,用于替换下面的“12位账户ID”

2、物品(Thing)设备初始证书准备

充电桩要联网到亚马逊云,每台设备必需要有独立的配置,包含物品名字,单独的证书和策略。

设备首次联网时,向设备提供一个公共(共享)的配置,设备根据这个公共的配置连接到云服务器之后再获取独立配置。

这篇文章主要介绍了初始证书的准备与写入,后续的私有证书申请与下载需要自行开发与实现。

注意:设备初始证书启用后不要删除,否则将影响已售设备的维护升级

2.1 证书准备步骤

进入亚马逊云后台,点击“物品”,点击“创建物品”,选择“创建单个物品”,“下一步”,

输入物品名称(12个英文字母,比如:myxnevbkinit) 点击“下一步”

选择“自动生成证书”,点击“下一步”

点击“创建策略”,打开新的页面,在创建策略页面中输入策略名字:myxnevbkpolicy,点击“JSON” ,按如下内容输入:

{
  "Version""2012-10-17",
  "Statement": [
    {
      "Effect""Allow",
      "Action": [
        "iot:Connect",
        "iot:Receive",
        "iot:Publish",
        "iot:Subscribe",
        "iot:UpdateThingShadow",
        "iot:DeleteThingShadow"
      ],
      "Resource": [
        "arn:aws-cn:iot:cn-north-1:12位账户ID:client/${iot:Connection.Thing.ThingName}",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:thing/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:thing/$aws/things/${iot:Connection.Thing.ThingName}/defender/*",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topic/$aws/things/${iot:Connection.Thing.ThingName}/defender/*",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topic/xniot/dtox/${iot:Connection.Thing.ThingName}",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topic/xniot/worx/${iot:Connection.Thing.ThingName}",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/defender/*",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topicfilter/xniot/dtox/${iot:Connection.Thing.ThingName}",
        "arn:aws-cn:iot:cn-north-1:12位账户ID:topicfilter/xniot/worx/${iot:Connection.Thing.ThingName}"
      ]
    }
  ]
}

保存策略,返回前一页面,保存物品,下载证书,你将得到以下数据:

  • 1.初始物品名字(12位字母和数字)
  • 2.初始物品的证书(CertificatePEM)
  • 3.初始物品的私有密钥(PrivateKey)

2.2 证书文件准备

证书文件是一个.txt格式纯文本文件,内容包含了初始物品的所有信息,每一行一个信息。

注意:该文件只能以\n作为换行符,不能有\r,请使用NotePad++

注意:在NotePad++中选择编辑->档案格式转换->Unix

第一行:IOT服务器的地址

第二行:空行(\n)

第三行:物品的名字

第四行:空行(\n)

第五行:物品的证书(CertificatePEM)

第六行:空行(\n)

第七行:物品的私密(PrivateKEY)

第八行:空行(\n)

注意:证书和私密都不能行头,行尾和回车

下图是原始的证书(密钥)文件内容:

oricertkeyfile.png

下图是小牛充电桩需要的证书文件内容样式:

downloadtxtformat.png

2.3 证书文件上传

小牛充电桩下载的证书是一个txt格式的文本文件,需要存放在aws S3服务器上并以 http:// 方式提供下载,设备才能接受。

如何在awsS3中配置WEB服务器不是本文的重点,请通过其他方式了解学习配置方法。

配置好WEB服务器以后将这个txt文件上传到S3WEB存储桶,并得到下载地址,如:

http://s3.cn-northwest-1.amazonaws.com.cn/ev.mydomain.cn/my_keycrt.txt

注意:设备不支持https,必需要修改为http才可以使用

3、初始证书下载

3.1 确认设备联网方式

小牛充电桩设备支持有线以太网和4GLTE两种联网方式,可随时任意切换。

拨码开关1(左边第一个)打到上为以太网,打到下为4GLTE。

设备默认支持联通物联网,为芯片型物联网卡,不需要插SIM卡,如需其他运营商,可直接插入SIM卡。

3.2 连接设备到电脑

准备好一台电脑,一台小牛充电桩设备,一个RS232串口调试工具。

RS232串口调试工作联系电脑USB口,另一端联系小牛充电桩调试口(标记为RX/TX/GND)

在电脑上打开串口通信程序,波特率为115200。

给小牛充电桩通电,检查电脑通信程序是否有打印输出,如没有检查连接。

3.3 下载证书文件

  • 1.确认充电桩电源关闭
  • 2.确认急停按钮已弹出
  • 3.找到充电桩主板上的拨码开关,将234三个开关打到上
  • 4.给充电桩上电,观察电脑通信程序输出,显示“xnExCHARGER Configuration Mode”为正常
  • 5.设备将在30秒之内接受客户输入(以#号结尾),超过30秒输入无效,自动重启。
  • 6.设备30秒内接受客户一次输入,如需重新输入,请重启,重新进入
  • 7.将上面的证书文件地址(包含#号) 发送至设备
http://xxx/my_keycrt.txt#
  • 8.关闭电源,恢复拨码开关(234打到下)
  • 9.重新开机,设备进入证书下载模式,等待设备下载证书

3.4 重启设备

证书下载成功后将会重启,请观察设备输出直到成功。

4、后续工作

初始证书下载到设备,设备重新开机后将以初始证书连接到亚马逊云。

多台设备的情况下,使用同一证书会导致其他设备离线,故此,初始证书部署在设备上开机后的第一时间应该是换成设备自有独立证书。

初始证书连网成功,请求独立证书为下一步工作,需自行开发相关后台管理软件实现。

5、更多功能

在3.3的第四步,即电脑连接到充电桩串口的通讯程序中,输入HELP# 可以看到以下内容:

----------------------------------------------------------
-                                                        -
-                xnExCHARGER BOOTLOADER                  -
-                Console COMMAND HELPER                  -
-                                                        -
-          aaaaaaaa(1200chars or 1600chars)#             -
-          RESET# clear settings     DEBUG0#             -
-          DEBUG5# RELEASE #MACFFFFFFFFFFFF#             -
-          CLNPON# CLNPOWL#  CLNPOWR#   MAC#             -
-          GUN0EN# GUN0DI#   GUN1EN# GUN1DI#             -
-          APNcmiot# APN#  IOTats.domain.cn#             -
-          http://www.domain.com/newfmw.bin#             -
-          http://s3.domain.cn/cert_key.txt#             -
-  KEYTXT:[ATSiot]\n\n[NAME]\n\n[CERT]\n\n[PRVKEY]\n     -
-                (reboot before new command)             -
-                                                        -
----------------------------------------------------------

每一次启动接受一次输入。

输入1200余个字符#号结束,设备认为输入的是证书。

输入1600余个字符#号结束,设备认为输入的是私有密钥。

输入RESET#可以清除设备存储,恢复原始状态。

输入IOT+服务器名字#可以设置IOT服务器名字(来自AWS后台)。

输入MAC+12个字符#可以设置物品名字,同时也是以太网MAC地址。

输入

http://www.doamin.com/fw.bin#

可以升级固件,新版固件请申请。

6、相关网站

xnexcharger.png

本文使用 markdown.com.cn 排版