硬件资料
一、前期准备:
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利用开发者工具进行开发测试。