• 太阳集团tcy8722

    当前位置: 首页 >应用方案 >技术应用 >

    【教程】利用HTTP连接OneNET实现数据上报

    利用串口服务器HTTP客户端模式上报或者获取云端数据,此功能基于HTTP/1.1协议实现,不能通过上次讲解天气API时使用的GET请求报文实现(基于HTTP/1.0。

    .简介

    下面通过GET方式请求百度主页说明HTTP/1.1报文的组成;

    http协议1

    请求方式+URL+数据+HTTP/1.1+换行符+包头+换行符+换行符+换行符,可以看出GET请求HTTP数据包在URL的后面协议标识的前面,也就是从Accept”到“sec-ch-ua-platform”都是包头数据;

    包头中数据用于标识请求信息并非必须具有,比可以使用下面这种请求方式获取百度搜索的主页:

    GET http://www.baidu.com// HTTP/1.1

    Host www.baidu.com

    .操作步骤

    1.即使不带任何包头数据也可以实现请求“百度”,并收到<HTML>数据返回,如图所示:

    http协议2

    2.配置串口服务器参数,实现HTTP/1.1请求“百度”主页,如下图所示:

    http协议3串口服务器配置参数

    3.使用串口调试助手发送/”,就可以收到HTTP服务器返回的数据,通过对HTML(超文本标记语言)解析就可以得到“百度”的主页;

    http协议4串口服务器配置参数

    4.之后请求OneNET修改数据都将基于HTTP/1.1协议实现。

    三.OneNET设备注册

    1.首先注册并登录OneNET账号,选择“产品服务”下的MQTT物联网套件;

    OneNET物联网1

    2.选择MQTT物联网套件”的老版本“多协议接入”,新版的MQTT也是原生支持HTTP/1.1协议接入,使用方法与接下来使用的HTTP接入”相同,有兴趣可以自行阅读OneNET使用说明;

    OneNET物联网2

    3.HTTP接入”产品下添加产品,参数可以随意填写不影响,建议除产品名称外其余参数和小编保持一致;

    OneNET物联网3

    4.ebyte”产品目录下添加模拟电表设备“DTSU666_01,设备编号可以使用生产编号,这里使用模拟设备因此产品编号模拟为“S20220516001”,点击“添加”;

    OneNET物联网4

    5.进入设备详情界面查询设备ID、API地址、APIKEY,第一次添加设备不具有APIKEY需要添加,手动添加明文密钥,服务器会自动对明文进行加密,之后使用都是使用加密后的密钥;

    OneNET物联网5

    6.在数据模板中添加Ua(A相相电压)、Ia”(A相电流),如图所示:

    OneNET物联网7

    四.OneNET资料查询

    1.可以在OneNET设备平台“文档中心”查看API接口使用说明;

    OneNET资料查询1

    2.目前NA111系列串口服务器与以太网网关仅支持POSTGET两种请求方式,而HTTP/1.1协议共支持9请求方式(GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH),其余请求方式只能在TCP客户端模式结合短连接实现,而OneNET-HTTP服务器在小编的印象中仅支持(GET、POST、PUT、DELETE)四种方式,先对“查询数据流”和“上传数据点”两个常用API接口进行说明其余API接口可以参考实现;

    OneNET资料查询2

    五.利用POST上报设备状态

    1.配置串口服务器,使用动态IP、随机端口并保证设备能正常接入互联网,配置目标地址(api.heclouds.com),端口(80),建议打开包头返回方便观察服务器反馈状态,若不返回包头在包头错误,请求不合法时无法找到错误原因,返回包头则可以通过HTTP状态码判断请求状态;

    分类

    分类描述

    1**

    信息,服务器收到请求,需要请求者继续执行操作

    2**

    成功,操作被成功接收并处理

    3**

    重定向,需要进一步的操作以完成请求

    4**

    客户端错误,请求包含语法错误或无法完成请求

    5**

    服务器错误,服务器在处理请求的过程中发生了错误

    2.使能短连接模式配置为5s(非必要但建议开启减轻服务器压力);

    3.配置URL/devices/ devices_id/datapoints;

    配置包头为api-key:df0JBIwvwcxI15eeyXS52bArshE=\r\nHost:api.heclouds.com;

    此处串口服务器在POST模式下隐含了Content-Length:包头信息,无需将此包头配置到包头数据中,上位机和网页配置的包头输入框支持换行符的识别,不能使用转义字符\r\n”输入,点击“保存配置”,点击“重启设备”;

    串口服务器上报1

    4.根据手册示例组包实际请求数据并使用JSON格式化工具校验数据,如图所示:

    串口服务器上报2

    5.通过串口助手发送上报数据,并使用平台查询上报数据是否成功:

    串口服务器上报3

    6.演示关闭包头返回后的接收:

    串口服务器上报4

    六.利用GET获取云端数据

    1.修改设备请求方式与URL路径其余配置与POST时相同,根据请求示例进行配置如下图所示:

    GET数据1

    2.根据请求示例可以得到请求数据的组包规则为datastream_ids=Ua,Ia”,请求效果如下:

    GET数据2

    七.利用TCP客户端实现DELETE请求

    1.HTTP是超文本传输协议一般工作在TCP协议上,除了使用HTTP客户端模式还可以使用TCP客户端实现目前不支持的请求方式,比如接下来测试的删除请求,利用DELETE删除刚才测试的DTSU666_01设备;

    HTTP传输协议1

    2.登录平台查询设备,使用DELETE”请求成功。

    HTTP传输协议2



    太阳集团tcy8722