以下内容为本人的著作,如需要转载,请声明原文链接 微信公众号「englyf」https://www.cnblogs.com/englyf/p/16663833.html
为了实现互联互通,需要和 IOT 云服务对接,这其中包含了两部分的开发任务。其一是,机器端的接入开发任务,一般是用无线 wifi 技术连接家庭用的路由器进而访问公网的 IOT 云服务。其二是,配置云平台后台相关产品的设置。其三是,手机APP端的接入开发任务,通过云服务商的授权API,APP访问和更新机器上传到云服务器的数据缓存,进而和扫地机的用户互动。
说说机器端的联网开发
由于嵌入式设备的使用场景有着很大的差异,比如设备除了需要访问专门的 IOT 云服务,有的方案商还会提供一些特殊的内置服务进而需要设备能访问其它的网络服务(比如让设备贴心地播放天气预报,那么就需要能访问天气预报服务以获取天气数据。除了这个小功能,你的想象力还惦记着什么呢?欢迎留言!。
基于目前的使用需求,wifi 模块,可以分为普通 wifi 模组和嵌入式 wifi 模组。
嵌入式 wifi 模组的特点就是内置了 WiFi 协议和驱动,一般通过专用协议串口等接口和设备主控芯片连接。设备的主控芯片,性能要求不高,通常选择 MCU,便于降成本,但是业务场景相对受限。这种配置下,你的设备能访问什么服务,完全看 wifi 模块提供商的配置。
说说云平台的后台配置
开发扫地机设备端的联网任务,除了硬件上的投入之外,还需要做一些和云平台后台有关的事情。
要声明的是每个云服务商的具体开发流程和有关术语会有差异,可以翻照具体的云平台提供的开发文档指引。
1. 选择 IOT 云服务平台
可以针对自己的需求选择最合适的云服务供应商,如果你自己是有扫地机设备开发团队的,但是APP开发的投入想省掉,那就选涂鸦吧,上文已介绍原因。如果你没有扫地机设备开发团队,扫地机的开发任务是交给方案商去做的话,建议选择阿里生活物联网,这个平台的互联网基因大家都是知道的,开发调试会非常方便(作为曾经在某个方案商呆过,这是真心话。题外话:有没有人喜欢玩真心话大冒险?。除了开发的因素,还要考虑成本价格,一般收费的原则是按照单个接入设备一次性收费。
2. 注册开发者账号
登录 IOT 云服务平台的网站,用公司的名义注册个主体账号。如果你需要授权该账号的权限给开发人员或者方案商,可以查看一下该平台是否支持产品开发的权限授权。
3. 创建产品
4. 配置功能
IOT 云平台配置功能都是通过 清单来实现。为了直观说明,下面展示涂鸦平台的一个扫地机物模型例子给大家看看:
DP ID | 功能点名称 | 标识符 | 数据传输类型 | 数据类型 | 功能点属性 |
---|---|---|---|---|---|
1 | 电源开关 | power | 可下发可上报(rw) | bool | |
2 | 清扫开关 | switch_go | 可下发可上报(rw) | bool | |
3 | 清扫模式 | mode | 可下发可上报(rw) | enum | 枚举值: standby, random, smart, wall_follow, mop, spiral, left_spiral, right_spiral, right_bow, left_bow, partial_bow, chargego |
5 | 工作状态 | status | 只上报(ro) | enum | 枚举值: standby, smart_clean, wall_clean, spot_clean, mop_clean, goto_charge, charging, charge_done, paused, cleaning, sleep |
13 | 寻找机器 | seek | 可下发可上报(rw) | bool | |
101 | 清扫 | clean_switch | 可下发可上报(rw) | bool | |
102 | 暂停 | pause_switch | 可下发可上报(rw) | bool | |
103 | 回充 | charge_switch | 可下发可上报(rw) | bool | |
104 | 清扫模式: | clean_mode | 可下发可上报(rw) | enum | 枚举值: smart, pose, zone, backcharge, curpointing, selectroom, null |
105 | 当前状态: | robot_state | 可下发可上报(rw) | enum | 枚举值: idle, pointing, areaing, totaling, sweep, mop, fault, pause, chargring, tocharge, fullcharge, remotectl, dormant, curpointing, selectroom, chargingwash, dusting, selfclean |
106 | 剩余电量 | battery | 可下发可上报(rw) | value | "数值范围: 0-100, 间距: 1, 倍数: 0, 单位: %" |
107 | 清扫时间 | cur_clean_time | 可下发可上报(rw) | value | "数值范围: 0-2147483647, 间距: 1, 倍数: 0, 单位: 秒" |
108 | 清扫面积 | cur_clean_area | 可下发可上报(rw) | value | "数值范围: 0-2147483647, 间距: 1, 倍数: 0, 单位: " |
109 | 吸力 | fan_mode | 可下发可上报(rw) | enum | 枚举值: quiet, auto, strong, max |
110 | 水量设置 | water_mode | 可下发可上报(rw) | enum | 枚举值: low, mid, high |
5. 购买联网许可
扫地机在联网时,需要凭证云平台提供的 liscense 才可以顺利使用该平台的信息交互服务。用账号登录平台就可以申购对应设备数量的 liscense,然后在生产的时候把 liscense 烧录进机器。用户把扫地机带回家里后,在使用APP成功控制机器之前,需要按照使用说明书的指引触发扫地机进入配网模式,然后按照APP的配网流程把机器绑定到云平台。机器能否成功绑定,首先是扫地机需要通过蓝牙或者wifi的AP热点模式直连手机从APP获取到家庭的路由器 wifi 名和密码,然后通过家庭网络把机器内部存下来的 liscense 发给云平台校验并获取授权通过。
6. 调试功能
有的云平台为了方便开发者调试设备功能点,提供了比较详细的调试功能,比如设备在线状态,实时查看平台针对设备收发的数据日志等。
7. 发布产品
8. 上传 OTA 升级包和多语言包
产品上市后,是有极大可能需要在客户手中更新机器固件的,比如大量客户发现了机器工作异常。这样就需要通过云服务给设备远程更新固件,一般通过在APP页面预置升级按钮,当用户点击 按钮后,云平台就会把提前上传到后台的固件升级包下发给机器,机器接收完整升级包后自动执行后续所有操作,这个过程就是 OTA(over the air update。
关于APP端的开发这里略过。
好了,简单介绍到这里,下次见。