Appearance
入门介绍 ¶
CoAP基础知识 ¶
CoAP 是一种用于受限设备的轻量级物联网协议。
一种专用的 Web 传输协议,它类似 HTTP ,是一种受约束的应用协议,可与物联网中的受约束的节点和受约束的网络一起使用。
CoAP 的特点 ¶
资源占用极少 ¶
CoAP 是为机器对机器(M2M)应用而设计的,它的设计初衷是使简单、受约束的设备即使通过具有低带宽和低可用性的受约束网络也可以加入物联网。例如:远程抄表、资产追踪、楼宇自动化等。
由于 CoAP 基于 IP 上的 UDP 协议,并不需要复杂的传输堆栈控制,所以设备上运行 CoAP 协议客户端,只需要极少的 RAM 代码空间,对微控制器的要求非常低。
安全性 ¶
CoAP 使用 UDP 传输信息,同时也依靠 UDP 安全功能来保护信息,因此 CoAP 使用基于 UDP 的 DTLS 加密传输。
CoAP 的 DTLS 参数默认选择等效于 3072 位 RSA 密钥,但在最小的节点上仍然可以正常运行。
上手容易 ¶
像 HTTP 一样,CoAP 协议中的 URL 也支持 REST 模型,即客户端使用诸如GET、PUT、POST 之类的方法访问这些 API 资源。
同时,CoAP 还可以承载不同类型的有效负载,也包括 ThingsKit 内置标准设备访问协议的 JSON
格式。
这都使得设备在通过 CoAP 接入云平台时,不论是云平台提供的 API 调用方式,还是您需要拥有的技术知识,都和 HTTP 接入基本相同。
CoAP 身份验证和错误代码 ¶
我们将在本文中使用访问令牌设备凭证,稍后将它们称为**$ACCESS_TOKEN**。应用程序需要将**$ACCESS_TOKEN**作为路径参数包含到每个 CoAP 请求中。可能的错误代码及其原因:
- 4.00 无效请求- 无效的 URL、请求参数或正文。
- 4.01 未经授权- 无效的**$ACCESS_TOKEN**。
- 4.04 未找到- 未找到资源。
遥测上传接口 ¶
为了将遥测数据发布到 ThingsKit 服务器节点,请向以下 URL 发送 POST 请求:
coap://host/api/v1/$ACCESS_TOKEN/telemetry
1
最简单的支持数据格式是:
{"key1":"value1", "key2":"value2"}
1
或者
[{"key1":"value1"}, {"key2":"value2"}]
1
请注意,在这种情况下,服务器端时间戳将分配给上传的数据!
如果您的设备能够获取客户端时间戳,您可以使用以下格式:
{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
1
调用控制接口 ¶
服务器端 RPC ¶
为了从服务器订阅 RPC 命令,将带有观察标志的 GET 请求发送到以下 URL:
coap://host/api/v1/$ACCESS_TOKEN/rpc
1
订阅后,客户端可能会收到 rpc 请求。RPC 请求体示例如下所示:
{
"id": "1",
"method": "setGpio",
"params": {
"pin": "23",
"value": 1
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- id - 请求id,整数请求标识符;
- method - RPC 方法名称,字符串;
- params - RPC 方法参数,自定义 json 对象。