硬件资料

一、前期准备:

1.1 一个WiFi模块、一台电脑、一部手机(电脑也可以模仿手机)。

1.2 一款能够连接外网的WiFi模块,即可以做服务器使用,也可以做客户端使用,市面上的绝大多数WiFi模块都可以适用。

1.3 会对WiFi有一个基本的开发基础,例如C语言。根据不同WiFi模块的开发不同,所用的开发语言也不同。

二、设备开发流程

第一步:注册成为开发者 第二步:选择并注册设备id 第三步:开发WiFi模块 2.1 配置WiFi模块连接服务器

2.2 配置WiFi模块连接手机端

2.3 根据yumiot交互规则,进行控制程序编写。

三、注册成为开发者

3.1 进入http://yumiot.com官网,点击注册,选择开发者注册

3.2 根据提示填写信息。

3.3 查看你的邮箱收件箱,点击激活链接完成注册

3.4 进入yumiot官网,点击登录——>开发者,成功登录后点击左侧个人资料,查看开发者ID

在设备管理—>设备注册界面,选择要开发的设备类型,以及设备数量,然后点击设备注册,完成新设备注册。(注意:每开发一款新的设备都需要生产一个设备ID)

注意:自定义中文名称用于在用户手机端以及PC端显示,英文名称用于开发者程序编写中使用。

例:下图中的自定义功能区,用户手机端将显示 智能灯 设备,拥有两种状态,分别为开和关。

程序示例:

开灯:led=on

关灯:led=off

3.6 在全部设备、已开发设备、未开发设备中查看你的设备情况。其中,设备序列号是开发者每次注册的设备的功能和状态号,用于不同序列的版本控制。

四、常用语法说明

4.1 完整设备号(ID)、开发者ID、设备类型、设备ID 例:1234561d000001

前6位是开发者ID,7-8位是设备类型、9-14位是设备ID。完整设备号=开发者ID+设备类型+设备ID。

如上例中,123456是开发者ID,1d是设备类型、000001是设备ID,1234561d00001是完整设备号。

4.2 通信交互语法 4.2.1 向服务器请求设备ID yum{开发者ID设备类型}$

yum{}是通信标识,每次与服务器请求都需要使用这种格式。

\n是发送结束符,每次通信都需要使用。

例:yum{1234561d}$

4.2.2 服务器返回设备ID 格式:yumid{完整设备号}

例:yumid{1234561d000001}

注意:获取到设备ID后需要在WiFi模块中对(完整设备号)进行存储

4.2.3 向服务器发送控制命令 格式:yum{完整设备号}功能1$

[ ]标识符中的是设备功能,在每个设备中至少需要有一个,不能为空。

( )标识符是设备状态,在每个功能中至少有一个状态,可以值为null,表示该设备不执行任何状态。

例:有一款LED灯设备,有个开关功能,该功能有两种状态,分别是开on、关off。

开灯控制命令写法:yum{12345618000001}LED$

关灯控制命令写法:yum{12345618000001}LED$

4.2.4 服务器返回状态 格式:yum{完整设备号}功能……

例:yum{12345618000001}LED

12345618000001该设备,要执行LED功能改变状态为on。

此命令就是点亮一个LED灯

4.2.5 接收手机端连接路由器命令 格式:yumssid:路由器账号

yumpass:路由器密码

例:yumssid:YUMIOT

yumpass:12345678

控制WiFi模块连接名为YUMIOT的路由器,连接密码是12345678

4.2.6 向手机端发送连接状态 格式:yumget{session.状态}

session分别有两种状态

状态1:session.ok 表示成功连接路由器;

状态2:session.error 表示连接路由器失败。

例:yumget{seeion.ok}

4.2.7 向手机端返回完整设备号 格式:yum{设备ID}

例:yum{12345612000001}

4.2.8 手机端返回状态码 返回格式:yumget{seeion.状态}

session分别有两种状态

状态1:session.ok 表示操作成功;

状态2:session.error 表示操作失败。

例:yum{session.ok}

五、配置WiFi模块 5.1 配置服务器连接 配置WiFi连接yumiot远程服务器yumiot.com:8088(强烈建议)或者使用47.95.228.49:8088(不推荐使用)。

5.1.1 测试服务器连接: 语法:yumtest{开发者id设备类型}$

yumtest只是测试能否与服务器正常通信,不能直接做正常设备开发使用。

例如:开发者id是:123456,准备开发一款智能开关设备其设备类型是1d。设备类型可以在开发者个人中心—>设备管理中查看。

将WiFi连接到yumiot服务器 yumiot.com:8088

发送:yumtest{1234561d}$

这时WiFi模块将收到 yumid{1234561d000000},其中yumid{}是信息头,12356是开发者id,1d是设备类型,000000是测试设备id。

5.1.2 正式服务器连接: 语法:yum{开发者id设备类型}$

例如:开发者id是:123456,准备开发一款智能开关设备其设备类型是1d。设备类型可以在开发者个人中心—>设备管理中查看。

将WiFi连接到yumiot服务器 yumiot.com:8088

发送:yum{1234561d}$

这时WiFi模块将收到yumid{1234561d000001},其中yumid{}是信息头,12356是开发者id,1d是设备类型,000001是设备id。

5.1.3 保存设备ID 5.2 配置WiFi模块连接手机端 开发步骤:手机连接WiFi模块,并向WiFi模块发送路由器账号密码,WiFi模块接收路由器账号密码并连接远程服务器。

5.2.1 手机连接WiFi模块,并向WiFi模块发送路由器账号和密码WiFi模块将收到两个消息: yumssid:路由器账号

yumpass:路由器密码

这时,WiFi模块将使用接收到的路由器账号和密码连接路由器。成功连接后向手机端发送连接成功消息,否则发送连接错误消息。

发送消息格式:yumget{session.状态}

session分别有两种状态

状态1:session.ok 表示成功连接路由器;

状态2:session.error 表示连接路由器失败。

例:yumget{seeion.ok}

5.2.2 WiFi模块连接路由器成功,进行yumiot服务器连接。 具体连接实例,参考第四章第1节配置服务器连接。 服务器连接成功后,将收到完整的设备ID号。

5.2.3 向手机端发送完整设备号。 发送格式:yum{设备ID}

例:yum{12345612000001}

手机端会返回一个状态码, 返回格式:yumget{seeion.状态}

session分别有两种状态

状态1:session.ok 表示操作成功;

状态2:session.error 表示操作失败。

例:yumget{session.ok}

5.3 根据yumiot交互规则,进行控制程序编写。完整实例流程 5.3.1 接收手机端连接路由器命令。 接收:yumssid:路由器账号

接收:yumpass:路由器密码

5.3.2 WiFi模块连接路由器,并向手机端返回状态码 发送:yumget{session.ok}

5.3.3 保存路由器账号和密码,并连接yumiot服务器 发送:yum{1234561d}$

5.3.4 保存完整设备号,并向手机端发送完整设备号。 接收:yumid{1234561d000001}

发送:yum{12345612000001}

接收:yumget{ session.ok }

5.3.5 在WiFi模块中实现所需的功能和状态。 5.3.6利用开发者工具进行开发测试。