WIZnet2012

OneNET平台控制W5500开发板LED灯

0
阅读(767) 评论(0)

前言

关于本文内容的一些名词解释

1、产品

   产品是指用户手上的真实设备在OneNET上对应的虚拟名称,是用户在OneNET上最上层的云端资源。

2、产品ID

产品ID是指由OneNET后台为您的某一款真实产品分配的一个独立的ID号,如果您旗下的某一款产品有两款不同的系列(如Iphone7/Iphone7 PLUS),那么建议创建两款产品来分别获得两个产品ID。

3、APIKey

用于对OneNET进行操作的鉴权以及权限控制,在使用OneNET Restful API时,HTTP请求消息的头域必须携带该APIKey字段,OneNET会依据APIKey字段判别该用户是否具有对应操作的权限。

APIKey的权限模型是通过设定对云端资源是否可以增加、查看、修改、删除等方式来描述的,最低的权限级别可细化到对某个数据流的访问权限。APIKey分为两种:

      1.   产品APIKey: 在创建产品时,OneNET会为该产品生成一个默认的APIKey,这个APIKey是Masterkey,具有最大权限,能够对本产品下所有资源进行访问。

      2.   设备APIKey: 用户为某一产品下的某一台设备创建的Key称为设备APIKey,设备APIKey的作用权限只限于本设备的资源,而不能对其他设备进行访问操作。

4、设备

云端的“设备”是指在上面提到的“产品”下的实体,亦指用户的某一台真实设备在OneNET上对应的唯一的虚拟名称。

5、设备ID(Device ID,DID)

设备ID是指由OneNET后台为您的某一台真实设备分配的一个独立且唯一的ID号,一款产品下可以有多台设备,每一台独立的设备都有唯一的设备ID。

6、设备编号

用户在OneNET上创建设备时,如果设备接入协议选择HTTP,则需要填写“设备编号”。设备编号是每一台真实设备所拥有的唯一识别号,不需要OneNET后台分配,用户可以自定义设备编号,但必须保证每台设备之间的独立性和唯一性,建议用户在输入设备编号时采用原有产品线的序列号。

7、数据流(Datastream)

一个数据流可以理解为一类数据,如传感器之温度、位置之经纬度,空气之湿度等。用户可以自定义数据流名称,即数据流ID;一个设备可以添加多个数据流。

8、数据点(Datapoint)

即一个数据流中的一个具体的数据值。数据点采用“Key-Value”的方式存储。其中Key的组成包括设备ID、数据流ID、时间等信息,value部分可以为任何数据对象,如整数、字符串或者JSON数据类型。

9、SDK

分为公开协议产品SDK和私有协议产品SDK

公开协议产品SDK:用于设备接入协议为公开协议的终端侧软件开发包,OneNET提供多种语言的SDK,提供设备连接、数据上传等基本功能。

私有协议产品SDK:使用私有协议接入设备时,OneNET将根据开发者定义的设备数据模型自动生成SDK源码,开发者将SDK嵌入到设备中,自动实现与平台的对接。OneNET提供私有协议产品的SDK全源码。

实验目的:通过oneNET官方APP以及登录官网账号操作产品应用控制W5500开发板的LED灯的亮和灭。

实验过程:

1、注册oneNET平台账号;

登录https://open.iot.10086.cn/,根据个人情况选择个人注册或者企业注册,注册以后登录。

                                               1.jpg

2、创建产品

登录以后点击右上角开发者中心并进入相应的产品列表界面;

2.jpg

 

点击创建产品在弹出的页面中填写产品的基本信息。行业、类别以及进度可以根据自己的实际情况进行填写;

3.jpg

操作系统和运营商以及联网方式根据自己的实际情况填写,我们的W5500开发板是没有操作系统的,所以选择无。我们的开发板是有线联网在这里我选择是wifi具体选择哪个根据自己的实际情况来定。

4.jpg

设备接入方式以及接入协议的选择要根据自己的项目来判断,有公有和私有两种,公有协议有EDP、HTTP、MQTT等,私有协议有RGMP等。在该实验中我们要使用EDP协议。

5.jpg

(注:在oneNET的首页的左边有一个开发文档,里面有关于oneNET使用的较为详细的指南,用户可以通过该文档更加深入的了解OneNET的使用方法。)

3、添加设备

注册登录并建立自己的产品以后进入产品页面选择设备管理点击添加设备开始给自己的产品添加设备。

(1)点击产品后进入一下页面

6.jpg

 

(2)点击设备管理后进入下面的界面

7.jpg

 

根据提示选择添加设备的信息

8.jpg

4、在设备下添加数据流,点击数据流模板进入下面的界面

9.jpg

开始添加数据流

10.jpg

(验要上传四个LED灯的状态到该产品下的设备的数据流,所以要创建四个数据流来接收上传的数据,该实验由于在代码里面上传的数据流ID是LED_0_statu所以我们最好也改成这样,或者将代码部分修改成你自己定义的额数据了ID。)

5、现在关于oneNET的注册以及产品创建已经基本做好了,下面我们就要通过代码实现数据上传然后根据上传的数据添加设备应用。

 

首先先简单介绍一下EDP,因为我们这个实验用到的是EDP协议上传/下发数据和命令。

 

简介

EDP (Enhanced Device Protocol增强设备协议)是OneNET平台根据物联网特点专门定制的完全公开的基于TCP的协议,可以广泛应用到家居、交通、物流、能源以及其他行业应用中。

 

功能特点

 

长连接协议

数据加密传输

终端数据点上报,支持的数据点类型为:

浮点数(float)

整型(int)

字符串(string)

JSON对象

二进制数据

平台消息下发(支持离线消息)

端到端数据转发

 

 接入流程

11.jpg

过程:

 设备添加数据流添加以后首先与平台建立TCP连接然后建立EDP连接,成功后可进行数据的上传以及命令的下发。

SDK:

 oneNET提供的软件开发工具包;该实验用到的SDK在文档中心—公开协议产品指南—设备接入—EDP——SDK

12.jpg

用户有兴趣可以自己下载一直到自己的工程,本例程提供已经移植好且可用的SDK。

6、代码实现

该例程是oneNET反向控制W5500的LED灯的亮灭,所以拿到我们提供的例程后打开工程进入W5500_config.c修改设备的IP地址以及网关等数据信息使其跟自己的电脑在同一局域网以便跟自己的电脑上的oneNET平台建立TCP连接。修改以后进入tcp_demo.c修改设备ID以及设备APIKEY为自己的创建产品的设备ID与APIKEY。具体的路径:设备ID在设备管理里面已建好的设备下面。

13.jpg

APIKEY在产品概况下面

14.jpg

(注:APIKEY有两种,一个就是上面截图中的一个产品的主APIKEY,它具有最大权限可对该产品下的所有资源进行访问并且在我们创建产品的时候默认生成;另外一种就是设备APIKEY,用户可在某一个设备下添加该设备的APIKEY,他的作用仅仅局限于该设备下的资源操作,具体路径在上面截图中的APIKEY管理点击添加APIKEY后会弹出添加信息框,用户可为自己的设备添加设备APIKEY。)

找到我们自己的设备ID以及APIKEY以后在我们的工程里面修改,如下:

15.jpg

7、代码修改以后就可以编译烧写,打开串口助手可看到相关过程。

16.jpg

如上图代码烧写后我们的W5500设备与oneNET平台建立TCP连接然后建立EDP连接开始上传我们W5500的LED灯的状态到平台,此时登录平台找到设备管理可看到已经建立EDP连接,如下图的有颜色的圆点部分。

17.jpg

此时打开该设备下的数据流管理可查看上传到平台的数据流如下图:

18.jpg

接收到数据以后就可以创建设备应用了。

8、创建设备应用

进入平台的产品点击应用管理—创建应用

19.jpg

创建以后点击编辑进入应用编辑界面

20.jpg

编辑页面如下图,在该页面可进行应用编辑,将想要添加的应用拖进编辑区,例如本实验中的开关和仪表盘。

21.jpg

本实验的应用有四个开关以及四个仪表盘,开关主要是负责将我们设置的开关值通过EDP发送指令到我们的W5500开发板,仪表盘负责显示我们的开发板上传到平台的LED灯的状态。

我们拖动左边任务栏的开关和一边盼到我们的编辑区:

22.jpg

点击我们拖过来的仪表盘编辑区右边会弹出配置信息如下图:

23.jpg

根据提示选择配置第一个仪表盘的数据,主要的是数据流的设备选择以及设备对应的数据流选择,填好后将剩下的三个仪表盘配置好注意数据流的对应关系。我们这个实验是在一个设备下的四个数据流来接收开发板的数据。

第一个仪表盘的配置如下图:

24.jpg

点击编辑区的开关打开开关配置窗口,配置如下:

25.jpg

解释:

设备名涉数据流部分跟仪表盘一样,需要注意的就是一个设备下的四个不同的数据流对应四个仪表盘和开关,开关值部分就是平台发送给开发板的命令的内容,比如你安下开以后平台会将1O(表示第一个灯打开,1是阿拉伯数字,O是Open首字母)发送给开发板,开发板接收到后解析出该数据并执行打开LED1的操作。

需要注意的是关于图中的EDP命令内容部分;如果你选择的跟图中的一样是{V}或者直接什么都不写,其效果就是平台直接把开关的值1O打包发送到开发板,开发板根据EDP命令发送规则找到该数据就可以执行命令,如果不是上述的情况例如{LED1}1,改命令表示第一个LED灯赋值1,即LED1亮。那么平台就是把{LED1}1打包发送给开发板这个时候开发板就要从发送过来的数据当做找到两个关键的部分即LED1和1,这个过程需要把“{}”从数据当中找出并抛弃。二我们上面的情况就只需找到1和O就行了。相当于省了一小步。

   第一个开关配置好后依次配置剩下的三个,都结束以后整个应用就算添加完成,点击保存、预览便可进行实际操作实验。

用户可以通过直接登录oneNET网页打开自己的应用操作开发板的LED灯也可以通过oneNET官方提供的手机APP登录自己的账号打开应用操作。

实验检验过程如下图:

编者注:

   关于代码部分的SDK以及EDP协议的文档用户可取官网下载,连接如下:

C语言有关EDP的SDK下载

https://github.com/cm-heclouds/edp_c

EDP协议文档下载

https://upfiles.heclouds.com/123/ueditor/2017/05/03/35c119697c30e06f1e857263fd7c5c3e.docx

官方提供安卓版APP下载二维码:

 28.jpg

W5500_EDP_oneNET.rar