接入边缘车辆通行服务

更新时间:2019-07-24 10:13:03

API

边缘车辆通行服务API

1. 创建边缘网关产品

登录阿里云物联网平台

创建产品

image.png
产品名称:按自身需要随意填写
所属分类:选择 边缘计算/边缘网关
节点类型:选择 网关
连网方式:按照网关实际入网模式选择
数据格式:选择 ICA 标准数据格式(Alink JSON)
使用ID2认证:选择 否

2. 创建网关设备

image.png
产品:选择 步骤1创建产品时候指定的 产品名称
DeviceName:根据需要填写

3. 创建边缘实例

image.png
实例名称:根据需要自行填写
网关产品:选步骤1创建的产品
网关设备:选步骤2创建的设备

4. 上传车行驱动

语言类型:固定类型 Python 3.5.2
驱动名称:固定值 ParkingAccessDriver

停车驱动文件请联系网关团队获得支持

5. 运行LinkEdge

5.1 安装Docker

5.2 启动网关程序

登入到你的网关机器(root权限)。执行如下命令下载启动网关的脚本。

#wget https://parking-access.oss-cn-shanghai.aliyuncs.com/link-iot-edge-parking.sh
#chmod a+x link-iot-edge-parking.sh

执行如下命令,启动网关。(使用网关的设备三元组在物联网控制台上查看步骤2创建的网关设备详情可以获得)

#./link-iot-edge-parking.sh v1.8.4 {gw_productKey} {gw_deviceName} {gw_deviceSecret}

需要按下图配置启动参数

脚本执行完后,可以在边缘实例中看到网关设备状态为“在线”。

** 清理边缘环境(如果配置有问题,想重新运行LinkEdge),执行如下命令可停止当前运行的Link IoT Edge相关容器 ,并会删除所有已安装的相关镜像,删除相关数据卷以及启动配置文件。

#./link-iot-edge-face-recognition.sh --clean

6. 创建“车行区域”产品和“车行通道”产品。

6.1 停车区域

image.png
产品名称:按自身需要随意填写
所属分类:选择 智能园区/社区车行停车区域
节点类型:选择 设备
是否接入网关:选择 是
接入网关协议:选择 自定义
数据格式:选择 ICA 标准数据格式(Alink JSON)
使用ID2认证:选择 否

6.2 车行通道

image.png
产品名称:按自身需要随意填写
所属分类:选择 智能园区/社区车行停车通道
节点类型:选择 设备
是否接入网关:选择 是
接入网关协议:选择 自定义
数据格式:选择 ICA 标准数据格式(Alink JSON)
使用ID2认证:选择 否

7. 人居控制台创建项目

用登录物联网控制台的账号登录人居平台 创建个web项目拿一个新的appKey。妥善保管应用中的Appkey和AppSecret,不要随意将AppSecret告诉他人。
image.png

image.png

8. 下载https客户端

所有API都是HTTPS请求的,这里有一个Java的示例(使用方法参考API网关客户端)。

这个客户端里用到的appKey和appSecret由步骤7产生。

注意:使用https格式调用所有的API接口。如下所示

syncClient.postBody(host, path, request, true);

9. 调API批量导入自建用户账号

导入方法

10. 创建OSS空间

OSS用作车牌照片的存储,车场摄像头拍摄的车牌照片会通过边缘网关上传到OSS。
进入阿里云OSS控制台,选择新建Bucket
image.png
Bucket 名称:根据自己需要自行定义
区域:选 华东2(上海)

进入RAM给IoT授予OSS访问权限
image.png

image.png

调用 https 接口 /parking/paas/gateway/oss/config 向步骤2创建的边缘网关配置OSS访问地址。
该接口的传参详见 API 接口文档(此API文档由商务同学提供)

11. 边缘网关对接本地系统

网关团队提供网关和本地停车系统对接,安装,调试的支持。

12. 开始使用

前面8步完成之后,开始进行业务上的配置。

内容包括:
停车区域、停车通道的增删改查功能;
车辆信息管理;
业务功能管理;
以上三部分功能参考 API 接口文档

13. 关于数据订阅

停车的车行通道会推送两种数据:收费事件、车辆通行事件
调用如下接口订阅指定车行通道的事件

path 版本 是否需要登录
/entrance/paas/device/subscription/modify 1.0.0

入参

字段 类型 是否必传 备注
iotIds JASONArray 待订阅的设备iotId列表,上限50
subscribed Integer 1 订阅,0取消订阅;默认是1

入参示例

{
  "code": 200,
  "id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
  "message": null,
  "localizedMsg": null
}

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data List 订阅设置失败的设备iotId

ModifyResultDTO定义

字段 类型 备注
iotId String 门禁设备的iotId


可以查询订阅消息推送设备列表,用如下接口

path 版本 是否需要登录
/entrance/paas/device/subscription/query 1.0.0

入参

pageSize Integer 分页查询一页内的记录数,上限100
pageNo Integer 分页数,从1开始

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data JSONObject 返回的分页数据对象

分页PageDTO

pageSize Integer 传入的pageSize
pageNo Integer 传入的pageNo
total Long 总记录数
data JSONArray 订阅数据列表

UserDTO对象

字段 类型 备注
iotId String 设备iotId
deviceName String 设备dn
productKey String 设备pk
categoryKey String 设备品类
tenantId String 租户Id
subscribed Integer 是否订阅消息
gmtCreate Date 订阅创建时间
gmtModified Date 订阅更新时间


出参示例

{
   "code": 200,
   "data": {
      "total": 1,
      "data": [{
         "bizCode": "bizTypeTest",
         "categoryKey": "categoryKeyTest",
         "deviceName": "deviceNameTest",
         "gmtCreate": 1556517249000,
         "gmtModified": 1556517249000,
         "iotId": "iotTest",
         "productKey": "productKeyTest",
         "subscribed": 1,
         "tenantId": "tenantTest"
      }]
   },
   "id": "4a70179d-47d8-4fdf-9067-8a5eedf63483",
   "message": null,
   "localizedMsg": null
}

results matching ""

    No results matching ""