MICO
直播中

Elecfans管家

11年用户 3163经验值
擅长:可编程逻辑 测量仪表
私信 关注

【资料分享】MicoKit网络配置协议

一、概述
本文主要介绍用户APP 给MicoKit 设备配置Wi-Fi 网络连接、设置设备参数,以及配置设备接入FogCloud 云的方法。

设备工作模式:
1. 配置模式:
       该模式主要用户设备Wi-Fi 网络配置和设备参数的设置。
       设备收到APP 发送的SSID/key 并成功连接路由器后,就会自动连接用户APP 的FTCServer,并发送设备的当前配置信息给APP, 此时用户APP 可以修改配置参数,并发送给设备,完成配置。具体通信方式参照Easylink APP 的实现(IOS/Android)。

2. 正常工作模式:
        设备Wi-Fi 网络和设备参数配置完成后,重启设备,进入正常工作模式。
        此时设备默认开启CongifgServer(TCP Server), 用户APP 作为TCP client 与之连接。APP 使用mDNS 协议发现设备,并与之建立TCP 连接,之后通过HTTP 协议与设备进行数据交互, 数据包采用JSON 格式。

二、设备Wi-Fi 配置
MicoKit 设备支持Easylink 配网模式,用户APP 使用Easylink 协议给设备配置Wi-Fi网络。
配置方法:
1. 短按设备上的Easylink 按键,使设备进入Easylink 配网模式(绿灯快闪);
2. 打开APP 上的Easylink 配网功能,输入要连接的Wi-Fi 密码,开始配置;
3. 设备收到Wi-Fi 的SSID 和密码后(绿灯慢闪)自动连接AP, 连接成功后(绿灯常亮)自动重启,进入正常工作模式,Wi-Fi 配置完成(绿灯常亮)。

三、设备参数设置
       在使用Easylink 协议配置设备Wi-Fi 的过程中,还可以设置设备的参数。
       设备收到APP 发送的SSID 和密码并成功连接AP 后,会将设备的当前配置参数发送给APP,用户在APP 上可修改这些参数并写入设备。
       以上二、三步骤设备均工作在配置模式,详细实现参考Easylink 协议以及Easylink demoAPP 的实现。

四、设备云连接配置
设备配置完成后, 重启进入正常工作模式; 设备Wi-Fi 连接成功后, 开启FogCloudCongifgServer(TCP Server), 用户APP 作为TCP client 可与之建立连接。APP 使用mDNS 协议发现设备,并与之建立TCP 连接,之后通过HTTP 协议与设备进行数据交互,完成设备的激活、授权、重置等请求,使得设备接入FogCloud 云端并和用户APP 绑定。通信数据包采用JSON 格式,具体通信方式如下:
1. 设备接入FogCloud 云流程:
15.png
图1 FogCloud 接入流程
(1) 设备首次接入FogCloud 云之前,需要先激活设备;APP 向设备发送激活请求,使得设备向FogCloud 云端激活,成功后返回设备ID 给APP,完成设备激活和绑定;如上图1 中的1.1,1.2,1.3,1.4,1.5。
(2) 设备激活成功后,重启后自动连接FogCloud 云消息服务器(上图1 中2.0);
(3) 之后其他APP 要绑定设备,只需要向设备发送授权请求(如果发送激活请求,则设备实际执行授权),设备向云端请求APP 授权,返回设备ID 给APP(过程同步骤(1));
(4) 激活(或授权)完成后,APP 通过设备ID 向FogCloud 云端查询设备连接状态,并可与设备间进行云端消息收发(上图1 中的2.1)。

2. APP 请求接口:
(a)查询设备状态请求:
App 向设备发送:
16.png

设备响应:
17.png
18.png
实例:
App 发送:
              POST /dev-state HTTP/1.1
              Host: 192.168.31.180:8001
              Content-Length: 74
              Cache-Control: no-cache
              {"login_id":"admin","dev_passwd":"12345678","user_token":"11111111"}
设备返回:
              { "isActivated": true, "isConnected": true, "version": "v0.2.3" }

(b)激活请求:
APP 向设备发送:
19.png

设备响应:
20.png

实例:
APP 发送:
               POST /dev-activate HTTP/1.1
               Host: 192.168.31.180:8001
               Content-Length: 74
               Cache-Control: no-cache
               {"login_id":"admin","dev_passwd":"12345678","user_token":"11111111"}
设备返回:
               { "device_id": "af2b33be/c8934645dd0a" }
注意:激活成功后,设备将会保存用户设置的用户名和密码,后续请求会验证该用户名和密码。

(c)用户授权请求:
APP 向设备发送:
21.png
设备响应:
22.png

实例:
APP 发送:
              POST /dev-authorize HTTP/1.1
              Host: 192.168.31.180:8001
              Content-Length: 74
              Cache-Control: no-cache
              {"login_id":"admin","dev_passwd":"12345678","user_token":"22222222"}
设备返回:
              { "device_id": "af2b33be/c8934645dd0a" }

(d)设备注销请求:
该方法使得设备从云端注销,下次再使用需要重新激活。
APP 向设备发送:
23.png
设备返回:
24.png
实例:
APP 发送:
               POST /dev-cloud_reset HTTP/1.1
               Host: 192.168.31.180:8001
               Content-Length: 74
               Cache-Control: no-cache
               {"login_id":"admin","dev_passwd":"12345678","user_token":"11111111"}
设备返回:
        成功,无数据实体;
以上操作失败时,返回状态码500,消息实体返回详细错误码:
{“error”: }

(3) 状态码
200: 执行成功
500: 执行失败
详细错误码参考MICO 错误码。

五、云端消息通信
设备连接上云端后,APP 即可向设备发送消息,详细方法请参考:《MicoKit 云数据通信协议》
MicoKit网络配置协议v1.0.0.pdf (174.47 KB)
(下载次数: 161, 2015-5-29 14:15 上传)


回帖(11)

张馨

2015-6-2 11:23:51
谢谢。。。。。。。。。。。。。。
举报

829785

2015-6-3 08:49:05
好资料,学习一下,感谢!
举报

flyangus

2015-7-29 22:10:55
下载下载下载下载
举报

yangzhi150706

2015-8-6 16:32:13
好资料!学习学习!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分