智能硬件开发文档

简介: 一整套开发流程+底层、服务器、控制端的连接操作。

硬件开发

一、前期准备:

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利用开发者工具进行开发测试。

原文档还有连接串口操作。

相关文章
|
JSON 前端开发 JavaScript
华为鸿蒙开发第二课
华为鸿蒙开发第二课
205 0
|
2月前
|
安全 API Android开发
安卓搞机一站式教学
bootloader 解锁,fastboot 刷机,magisk 提权,lsposed 插件,安卓搞机一站式教学
79 0
|
JavaScript 前端开发 小程序
华为鸿蒙开发第一课 (一)
华为鸿蒙开发第一课
429 0
|
JavaScript API 内存技术
华为鸿蒙开发第四课
华为鸿蒙开发第四课
163 0
|
前端开发 JavaScript Java
华为鸿蒙开发第一课(二)
华为鸿蒙开发第一课
258 0
|
编解码 JSON 自然语言处理
华为鸿蒙开发第三课
华为鸿蒙开发第三课
153 0
|
文字识别 API Android开发
CameraX + 华为ScanKit:二维码扫描的终极解决方案
CameraX + 华为ScanKit:二维码扫描的终极解决方案
CameraX + 华为ScanKit:二维码扫描的终极解决方案
天猫精灵开发平台AliGenie - 打造孩子专属的暖心小伙伴
在天猫精灵陪伴孩子的过程中,除了监督学习、讲故事、听儿歌,我更希望它可以成为孩子倾诉的对象,当孩子遇到困难或者在学校被欺负,它可以化身为精灵,给予孩子更多的鼓励和说些更暖心话语,温暖一个个幼小的心灵。
469 0
天猫精灵开发平台AliGenie - 打造孩子专属的暖心小伙伴
|
存储 JSON 数据格式
【平头哥RVB2601创意应用开发】疫情播报系统应用
实现通过网络读取json数据,进行分解,针对数据字符,播放相应的mp3音频文件,并在OLED屏幕上显示实际对应数据的疫情播报系统。
191 0
【平头哥RVB2601创意应用开发】疫情播报系统应用
|
UED
2022影视APP开发的基础功能有哪些?
小芹基于多年的经验和大家聊聊影视APP开发的一些基础功能:影视播放视频点播功能、会员账号管理、APP在线升级、启动页广告和支持哪些平台使用。
215 0
2022影视APP开发的基础功能有哪些?