模拟设备通过HTTP协议接入ThingsKit物联网平台教程

入门介绍

HTTP基础知识

HTTP是一种通用网络协议,可用于物联网应用程序。HTTP协议基于TCP,并使用请求-响应模型。

ThingsKit服务器节点充当支持HTTP和HTTPS协议的HTTP服务器

对于一些非常单一的应用场景,比如只需要定期采集上报数据,不论是快速开发原型,还是小规模的应用,设备使用HTTP接入云平台也是不错的选择。

事实上,将HTTP协议的简单易用发挥到极致,便是CoAP协议,对于低功耗设备的单一数据上报,使用CoAP更加符合要求。

HTTP身份验证和错误代码

我们将在本文中使用访问令牌设备凭证,稍后将它们称为$ACCESS_TOKEN。应用程序需要在每个HTTP请求中包含$ACCESS_TOKEN作为路径参数。可能的错误代码及其原因:

  • 400 无效请求 – 无效的URL、请求参数或正文。
  • 401 未经授权– 无效的$ACCESS_TOKEN
  • 404 未找到– 未找到资源。

:::info
💡 提示

设备使用HTTP接入ThingsKit平台,其产品协议使用默认即可。

:::

前提条件

设备已经在平台创建好了。如果设备比较多可以通过批量导入的方式添加设备,同时可以在批量导入时指定设备凭证即后续遥测要填写的ACCESS_TOKEN

遥测数据上传接口

为了将遥测数据发布到ThingsKit服务器节点,请向以下URL发送POST请求:

http(s)://host:port/api/v1/$ACCESS_TOKEN/telemetry

最简单的支持数据格式是:

{"key1":"value1", "key2":"value2"}

或者

[{"key1":"value1"}, {"key2":"value2"}]

请注意,在这种情况下,服务器端时间戳将分配给上传的数据!

如果您的设备能够获取客户端时间戳,您可以使用以下格式:

{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}

调用控制接口

服务器端下发RPC命令

以下演示通过Apifox发送的HTTP遥测数据,通过浏览器进行的RPC命令订阅,订阅地址请参考客户端订阅RPC命令

thingskit物联网平台HTTP接入

客户端订阅RPC命令

用户可从服务器订阅RPC命令,发送带有可选“timeout”请求参数的GET请求到以下URL:

http(s)://host:port/api/v1/$ACCESS_TOKEN/rpc?timeout=2000

一旦订阅,如果没有对特定设备的请求,客户端可能会收到RPC请求或超时消息。RPC请求体示例如下所示:

{
  "id": "1",
  "DO1":true
}
  • id – 请求id,整数请求标识符;可用于双向命令的响应。除开id以外的数据,均为用户输入的数据。

客户端RPC命令响应

可以使用POST请求对以下URL进行回复:

http(s)://host:port/api/v1/$ACCESS_TOKEN/rpc/{$id}

附:模拟设备接入示例

模拟HTTP设备接入

相关推荐: ThingsKit物联网平台如何连接设备?

创建产品 产品是指一类设备的抽象概念,比如温湿度传感器产品、智能电表产品、智能环控设备、某品牌水肥一体机产品、某品牌网关产品等等,他们具备相同的属性、服务等。 创建MQTT网关产品 创建设备 产品创建完成后,接下来创建一个设备,它代表的是您的物理设备在平台上对…

智联引擎
依托AIoT2.0技术,实现感知、认知、决策和执行的一体化融合,打造云边协同的分布式智联引擎,驱动行业数智化革新。