[转载]国内物联网平台初探(五):机智云IoT物联网云服务平台及智能硬件自助开发平台
原文链接:http://www.cnblogs.com/ibrahim/p/gizwits-iot.html
平台定位
- 机智云平台是致力于物联网、智能硬件云服务的开放平台。平台提供了从定义产品、设备端开发调试、应用开发、产测、运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力。
- 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务。通过傻瓜化的工具、不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接、服务最终消费者。
产品功能
IoT PaaS服务
为IoT开发者提供智能设备自助开发工具、后台技术支持服务,实现设备远程操控管理、数据存储分析、第三方数据整合、硬件社交化等技术服务,快速实现产品互联网化,让硬件开发变得更快、更有创意。
企业SaaS服务
定向远程升级、规则引擎、消息推送、设备自动化操作、设备联动、企业API、自定义统计分析、2G/3G产品支持和多种数据输出接口等,全面提升产品接入后的生产支持、库存、经销商、售后、用户等一站式管理和服务能力。
GDMS系统
企业智能设备管理系统,支持BT/BLE/Wi-Fi/移动网络,设备实时运行状态查看及管理,设备使用情况统计及地图分布,用户统计与管理,设备故障/报警实时推送跟踪,多租户管理,支持无限级销售渠道与下级企业管理。
工具服务
自助开发工具
将智能硬件的软件开发工具化、模块化,在云端提供自助服务界面,把智能硬件的功能描述成数据点,通过简单的表单操作在云端自助定义一款产品功能,系统自动生成嵌入式开发协议文档、手机应用SDK和云端接口。
GoKit开发套件
适用于机智云自助开发平台的物联网开源教学开发板 ,集成马达、LED、Wi-Fi、红外光感、温湿度等传感器,快速实现多种智能硬件解决方案,支持70多款主流模块,自带微信硬件应用方案,快速实现IOT设备开发。
开发者服务
企业开放API,模组及MCU开源代码、详细的说明文档、完善的SDK、Wi-Fi设备接入测试Demo APP,自动化产测工具、十款开源APP,GoKit智能硬件范例源码,真人教学视频,专业的FAE支持和24小时客户服务。
架构
机智云
机智云云端提供了产品的定义、产品数据点定义、虚拟设备调试、M2M服务、API服务等功能。为设备、应用接入提供云服务
GAgent
设备端的模组系统GAgent,通过使用GAgent,开发者可根据机智云提供的协议与GAgent对接,使设备可快速接入。目前已兼容国内主流的Wi-Fi模块、移动网络模块
IOT SDK
机智云提供了基于IOS,Android系统的IOT SDK,开发者通过SDK,可快速实现APP开发,无缝接入机智云,并根据SDK获取机智云平台逐步推出的新服务
MCU
开发者遵循机智云自动生成的模组与MCU通讯协议进行MCU的开发
研发流程
技术方案
概念解释
- GAgent:全称Gizwits Agent,运行于Wi-Fi模块中,设备通过GAgent接入机智云服务器。 目前已兼容国内主流的Wi-Fi模块, 开发者也可以通过获取GAgent二次开发包实现自定义的模块接入机智云。
- 小循环:智能设备与手机、智能设备与智能设备之间,通过连接同一个路由器实现局域网内部的通信(查看状态或控制),我们称之为小循环。
- 大循环:智能设备通过路由器或直接接入互联网以实现用户的远程监测与控制,我们称为大循环。
- ProductKey:产品标识码,开发者通过机智云后台创建新产品后,自动生成的一个32位字符串。在机智云的数据库中是一个唯一的号码,开发者完成开发写入设备主控MCU后,机智云通过此标识码对设备进行识别并自动完成注册。
- DID:设备号,当一个设备初次接入机智云时,机智云自动根据ProductKey以及设备Wi-Fi模块MAC地址为此设备注册一个did,此did全网唯一,用于与用户的绑定及后续操作。
- PassCode:设备通行证,用于校验用户的绑定/控制权限。当用户发起设备绑定时,只要是合法操作即可拿到此通行证,通过此通行证绑定设备并对设备进行有效期内的查看、控制等操作。GAgent首次运行时生成随机数作为设备通行证,生成后保存在非易失性存储器上。设备上线时需要上报给服务器。
- AppID:应用标识码,当开发者需要为一款智能产品开发应用(包括iOS、Android、Web应用等)时,后台会自动生成一个AppID,并与此设备进行关联。应用开发时需要填入此AppID。
- Onboarding:也叫配置入网,用户将一款基于Wi-Fi的物联网设备配置连接上路由器的过程称为Onboarding。新设备第一次使用时需要知道路由器的账号和密码,以通过路由器连接互联网。由于大多数的物联网设备没有自带的屏幕和键盘,所以需要通过智能手机向设备发送路由器的SSID和密码,这个过程机智云称为Onboarding。机智云提供的Wi-Fi设备接入SDK中已经内置了此配置的功能。
- AirLink:机智云对各种SmartConfig、SmartLink这种UDP广播报方式对设备配置入网的技术统称,兼容了多个Wi-Fi模块厂商的配置协议,总结了一套良好用户体验的标准Onboarding操作流程,机智云的Wi-Fi 设备接入SDK已经内置AirLink技术。
- SoftAP:由于目前各个Wi-Fi模块厂商的Smart Config协议均未完全成熟,也不支持5G路由器信号。机智云在提供了AirLink配置模式的同时也支持SoftAP模式配置设备接入路由器。当设备进入SoftAP配置模式时,设备本身将成为一个AP,智能手机可直接与设备进行连接,然后在手机上的界面上输入路由器的SSID和密码,设备接收到信息的时候会自动尝试连接路由器,连接成功则自动切换到正常使用的模式。
关键概念 - 数据点
- 机智云云端和APP对设备上报的数据进行分析、处理,或设备对机智云云端和APP下发数据进行分析、处理,前提是双方明确数据的含义。机智云后台提供了数据点的定义界面,通过数据点定义,设备与云端、APP端数据通信的含义将得到明确。
-
数据点定义的好处:
- 明确设备与云端、APP端数据通信的含义。
- 云端根据数据点定义,解析设备数据,用户可使用"设备运行状态","统计分析"等功能。
- 机智云具有大数据统计接口,通过接口,可快速分析设备数据。
- 方便APP开发者开发,APP SDK可解析下发/上报等设备数据。
- 方便MCU开发,机智云根据数据点定义,生成MCU与GAgent通信详细串口通讯协议。
云端管理 - 产品定义
1、创建产品
2、新设备接入向导
云端管理 - 编辑数据点
3、通过方案模板创建生成产品数据点
云端管理 - 编辑数据点
4、通过方案模板创建生成产品数据点
云端管理 - 编辑数据点
5、手动编辑产品数据点
云端管理 - 编辑数据点
6、新建数据点
云端管理 - MCU开发文档生成
7、根据上一步添加的产品数据点,页面自动生成了《XX-机智云接入串口通信协议文档》和《XX-机智云接入JSON文档》(其中XX代表产品名称),点击文档名即可进行下载,硬件开发人员只需按照文档指示即可轻松完成硬件开发
云端管理 - 设备调试
原生APP:产品开发资源提供android和iOS SDK,集成文档以及Demo APP的下载。
当完成了产品数据点编辑后且产品的硬件设备已开发完成,可下载对应的SDK集成到已完成界面设计的移动应用,即可实现设备的控制。同时也可以直接下载并安装Demo App,登录后即可对连接并查看、控制设备。如果设备未完成开发,可以使用机智云提供的虚拟设备进行功能的调试。
轻APP:使用机智云提供的Open APIs(Http / WebSocket),可以快速开发网页或微信应用等基于html的轻应用,用于管理和控制智能设备。
云端管理 - 通过方案模板创建产品
方案模板列表
云端管理 - 通过方案模板创建产品
应用方案模板
云端管理 - 产品管理
产品信息查看
云端管理 - 产品管理
产品信息编辑
云端管理 - 产品管理
产品信息删除
云端管理 - 产品管理
设备数据点管理
云端管理 - 产品管理
虚拟设备管理
云端管理 - 产品管理
设备运行状态
云端管理 - APP应用管理
APP应用列表
云端管理 - APP应用管理
创建应用
云端管理 - APP应用管理
设备接入应用:
绑定应用就是將设备与应用进行关联,这样应用才可以对设备进行绑定控制等操作。
配置消息推送:
机智云Android/ios应用支持接入"百度云推送"和"极光推送"。在接入之前需配置消息推送,需將应用与百度推送或极光推送绑定。
设备端开发 - 原理
-
设备端的开发包含GAgent,MCU开发。设备能够连接到云端才能够实现APP等客户端对设备的远程查看和控制,MCU数据通过GAgent与机智云产生交互。
- GAgent:运行在可入网模组(WiFi、GPRS)上的应用程序,可使模组接入机智云服务器,并上传/接收数据。
- MCU:微控制单元,厂家设备控制器,例如单片机。
设备端开发 - 合作模组
设备端开发 - 合作模组
设备端开发 - MCU编程步骤
- 下载MCU与GAgent串口通讯协议
- 创建项目,完成定义产品数据点,机智云根据数据点自动形成项目MCU与GAgent串口通讯协议
- 根据MCU与GAgent串口通讯协议,参考GoKit开发套件MCU程序,完成MCU与GAgent通讯
- 机智云提供设备端调试工具
- 机智云对厂家检验设备提供设备厂测模式
- 机智云对MCU固件可进行管理,OTA升级
- 机智云对MCU与云端交互的数据进行统计分析
设备端开发 – Gagent
- 对于WiFi设备,机智云已经对主流的WiFi模块进行了适配,在WiFi模块中烧入机智云提供的固件后设备即可连接到云端。
- 对于蜂窝网络设备(GPRS),与机智云合作GPRS模块厂家已经完成GAgent移植工作,使用合作厂家GPRS模块,即可连接到云端。
- 对于Android等系统、以太网设备等,机智云提供了SDK(即GAgent),开发者移植SDK的底层驱动后就可以实现设备到云端的连接。
应用开发 - 原理
机智云目前提供3套SDK:
- iOS平台原生SDK
- Android平台原生SDK
- APICloud跨平台SDK
开发者可以根据项目需要自行选择,其中APICloud版本SDK可以用H5技术一次开发,同时适配iOS和Android两个平台
应用开发 - APP方案
-
原生SDK:
- 主要帮助开发者通过sdk接口调用的方式维护用户系统,用户与设备的绑定关系,设备的配置上线以及设备状态的获取和控制指令的发送。开发者应用SDK,无需对APP与设备、云端交互进行再次开发,根据产品原型定义,可快速开发产品APP。同时机智云推出十大开源项目,下载、学习开源项目APP源码,更可快速应用机智云SDK开发APP。
-
跨平台开发:
- 为了让更多的企业、创客团队以及个人开发者能享受到机智云带来的优质服务与便利,与各种优秀的平台进行合作。APICould 平台机智云移动端开发模块的上线,让广大开发者能用 JavaScript + HTML 写出完美的、跨平台的移动应用。
应用开发 - 微信方案
- 应用机智云提供WebSocket通信方案。WebSocket通信基本内容:用户登陆,接收设备上线下线消息,发送和接收设备业务逻辑数据,心跳。
- 厂商需要在独立部署的WEB系统中调用"用户管理API"获取身份资格,然后需要绑定设备才能控制设备。厂商需要在独立部署的WEB系统中的Javascript中调用"Web Socket API"进行设备的控制与设备数据的实时展示,让微信(网页)应用能够实时获取设备状态数据,对最终消费者提供更好的体验。
应用开发 - 设备厂家业务云开发
- 应用Noti接口接收设备事件,包括故障与报警事件、数据点编辑事件、设备上下线事件、设备状态事件。使用Noti接口,可实时接收产品最新数据。
应用开发 - Android APP开源框架
-
Android开源框架工程源码链接:
- https://git.oschina.net/dantang/GizOpenSource_AppKit_Android
-
Android Gokit App是使用开源框架工程的源码范例,源码链接:
- https://git.oschina.net/dantang/GoKit_Demo_Android
应用开发 - Android设备接入SDK
- 机智云的设备接入SDK(以下简称SDK)封装了手机(包括PAD等设备)与机智云智能硬件的通讯过程,以及手机与云端的通讯过程。
- 这些过程包括配置入网、发现、连接、控制、心跳、状态上报、报警通知等。
- 使用SDK,可以使得开发者快速完成APP开发,开发者仅需关注APP的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。
应用开发 - 设备接入流程
- SDK已经封装了所有的用户、配置、发现、连接、控制的过程,开发者使用这些API可以完成上述流程中的功能开发,不需要再自行实现通讯协议。
- SDK采取回调的工作方式,所以必须设置必要的监听,比如通用监听和设备监听,具体请参见流程详解。SDK在主线程中给APP回调。
- Android SDK支持APP在Activity之间以及在Activity和Service之间传递对象。
应用开发 - 微信
-
机智云
- 如图①在微信接入业务场景中,通过开发者中心(site.gizwits.com)的图形化界面定义设备功能,机智云自动生成设备MCU与通信模组之间的串口通信协议,开发者根据协议文档即可实现设备的联网能力。
- 如图②部分,设备接入机智云后,机智云提供了面向微信应用的API,提供传输设备数据到应用、应用向设备发起的控制信息的功能。
-
厂商服务器
- 厂商服务器是厂商为了满足自己的微信应用,独立部署的WEB系统。该系统通过机智云平台提供的API进行与设备的数据、控制的实时通讯,解决智能硬件接入的需求;通过访问微信公众号平台的API实现以微信为渠道服务厂商最终消费者的需求。
- 首先,开发者可以为自己的应用设计个性化的HTML交互界面与功能。(如图③④部分)
-
微信服务器
- 微信服务器主要为设备与厂商服务器之间的通信提供了一系列的接口,主要包括微信用户账号与设备的绑定/解绑定、接受/发送设备消息等,具体接口及使用方法可查看微信官方文档,微信最近推出了微信硬件平台,在做微信接入前需要仔细了解微信公众号与微信硬件平台,提供的功能要在不断完善。
-
微信客户端
- 微信客户端提供了最终与用户交互的操作界面,可以理解为就是一个运行在手机的浏览器,只不过是运行在微信公众号这套体系下。开发者可通过自己申请的公众号管理后台配置自定义的菜单
应用开发 - 数据接入SDK功能
-
用户登录
- 注册用户登录的监听
- 实现用户登录的回调方法
- 匿名登录
- 实名登录
- 第三方账号登录
-
数据接入
- 注册数据接入的监听
- 数据上传
- 数据获取
-
用户账号
- 用户注册
- 修改密码
- 重置密码
- 修改用户信息
- 匿名转换
- 获取手机验证码
模组开发 - 测试集
-
WiFi测试最小集
- SoftAP
- AirLink
- 配置成功验证
- 上电宣告验证
- 小循环控制
- 大小循环切换
- 大循环控制
- GAgent_OTA
- 故障恢复
-
GPRS测试最小集
- 云端注册
- 大循环控制
- GAgent_OTA
模组开发 – 产品功能规格书
-
产品形态
- 标准版本形态
- 二次开发版本形态
- 源码形态
- 产品名称:机智云WIFI通讯模块(GAgent)
-
产品功能:
- 能够连接机智云的通用通讯模块解决方案,硬件平台无关,目前适用于WiFi通讯模块,部分功能规格适用于蓝牙通讯模块。为各种智能硬件提供连接机智云的能力以及与硬件进行可靠数据通讯的能力。
-
支持协议
- 机智云平台标准接入协议之App与设备通讯v4.0.1
- 机智云平台标准接入协议之通用数据点协议v4.0.0
- 机智云平台标准接入协议之设备与云端通讯v4.0.2
- 机智云平台标准接入协议之MCU与WiFi模组通讯v4.0.3
-
模式定义
- 生产模式:用于产品大规模生产时的检测场景
- 配置模式:用户第一次使用或者更改网络配置的场景
- 工作模式:产品正常工作时的场景
生产运营 - 产测工具
-
产测工具简介
- 机智云产测工具为产品上线之后,对产品进行批量测试的工具。在大型生产中,能够有效的监测批量产品质量,保证产品功能。
- 在机智云开发者中心(site.gizwits.com)中,只有对产品拥有管理员权限和开发者权限的用户才可以对产品进行产测。
-
产测步骤
- 添加产测配置文件
- 产测文件编辑和删除
- 下载产测APP
- 扫描下载产测配置文件
- 开始产测
- 查看产测结果日志
- 查看历史报告
生产运营 - 统计分析
- 连接记录:大循环下设备与服务器连接
- 新增上线设备:首次有连接记录的独立设备数
- 活跃设备:指定周期内有一次或以上指令上报记录的独立设备
- 活跃周期:设备首次上线到最后一次上线的时间长度
- 连接时长:设备与手机从建立连接到断开连接的单次时长
- 连接次数:每个在线时长区间实际发生的连接次数
生产运营 - OTA升级
-
OTA 英文全称是Over-the-Air Technology,即空间下载技术。当设备连上云端时会收到OTA升级通知,再通过HTTP完成固件升级。机智云的OTA服务主要提供以下功能:
- OTA通知服务,即离线升级。当设备的固件程序有新版本发布,OTA 通知服务会推送升级通知到设备。
- OTA透传服务,即在线升级。设备固件程序通过M2M 消息服务透传到设备端。
- 支持一个产品同时有多个推送
- 支持wifi/mcu升级
- 支持定向升级。可指定设备mac地址、区域、旧固件版本进行推送。
- 支持定时推送。可自定义推送周期及推送时段。
- OTA进度统计分析