Android使用CoAP协议进行网关绑定

2021-07-27  本文已影响0人  田田ww

一、什么是CoAP

CoAP(Constrained Application Protocol)也叫做“受限应用协议”是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252。参考如下两篇博客学习更多关于CoAP信息。
CoAP简介
CoAP协议使用

二、在安卓中使用CoAP

1、Californium(Cf)

Californium是一个强大的CoAP框架,是与物联网设备通信的后端服务。它为所有支持CoAP特性的REST类型web服务提供了一个方便的API。内置于单个可自我执行的jar中,可以在任何Java8+环境中运行。
github地址作者在Maven Central发布了Californium的里程碑和版本,Android可以直接在build.gradle(app)引入

2、Andlink设备接入实现要求及协议规范

Andlink是中国移动提出的一套设备接入和管理的协议,实现方式复杂,在此不做过多描述,该协议可进行设备与网关之间通信,从而实现设备绑定和管控。Andlink采用CoAP或MQTT作为通信协议。

三、具体实现思路

网关绑定逻辑

1、APP进入网关绑定页面,确认wifi是否开启(如果未开启,提示用户开启wifi并绑定到与网关相同wifi下
2、进入网关绑定页后,APP在局域网中每隔1秒发送/qlink/searchdevice的广播,同时调用全屋平台startBind接口

coap://局域网广播ip地址:5683/qlink/searchdevice
{
    "searchKey": "ANDLINK-APP" //广播发现的key,约定为该值
    "andlinkVersion": "V3" //Andlink协议版本号
}
网关收到广播后反馈
{
    "searchAck": "ANDLINK-DEVICE",
    "andlinkVersion": "V3",
    "deviceType": "31578"
}

3、收到网关反馈,确认产品id与网关一致后,向网关发送配网信息,注意这里"CGW"地址随开发测试环境不同改变

coap://网关ip地址:5683/qlink/netinfo
{
    "CGW": {
        "gwAddress": "cgw.komect.com:5683",     //andlink的云网关地址,用于设备进行注册
        "user_key": "ssm2H6TelBooyrSMfNAAVcNeAqlJOV",   //对应每个用户的手机号
        "gwAddress2": "https://cgw.komect.com:443"    //andlink的云网关地址,用于设备进行注册
    }
}
网关收到配网信息,配网成功后反馈
{
    "respCode": 1,
    "respCont": "XXXXXXXXX"
}

4、网关入网成功后,会发送/qlink/success的广播消息

coap://局域网广播ip地址:5683/qlink/success
{
    "deviceMac": "885FE8B504FE",
    "deviceType": "31578"
}
APP收到广播后,反馈:
{
    "result": 1
}

5、网关绑定成功后,会发送/qlink/regist的广播消息,包含设备ID

coap://局域网广播ip地址:5683/qlink/regist
{
    "respCode": 1,
    "respCont": "SUCCESS",
    "deviceId": "CMCC-31578-885FE8B504FE",
    "deviceType": "31578"
}
APP收到广播后,反馈:
{
    "result": 1
}

6、后台给APP推送一条网关绑定成功的消息,接收到该消息后,跳出绑定成功界面

上一篇 下一篇

猜你喜欢

热点阅读