各大物联网平台对比之AbleCloud
AbleCloud智能硬件平台
概述
号称国内首家智能硬件PaaS平台.
AbleCloud面向IoT硬件厂商,提供设备联网与管理、远程查看控制、定制化云端功能开发、海量硬件数据存储与分析等基础设施,加速硬件实现联网智能化。
功能服务
AbleCloud功能框架图云端服务一体化开发引擎
业内独创一体化开发引擎架构,自动解决底层连接、存储、分布式集群部署、弹性扩容、安全等难题,降低IoT云端功能开发门槛,普通工程师即可快速完成云端服务开发部署,加速IoT功能创新迭代。
-
易用的虚拟化开发平台
AbleCloud提供的虚拟化开发平台,提供有可视化的开发配置面板、自定义云端服务运行环境和方便立即调试的虚拟设备系统,可帮助开发者快速开发云端服务并调试部署。- 采用PaaS虚拟化技术
- 提供IoT服务开发框架和配套的SDK
- 产品原型快速验证
- 便捷开发定制化业务服务
- 本地快捷调试,云端系统测试
- 服务自动部署
开发流程
开发流程我们制作了一个demo,该demo基于汉枫的开发板实现了一个可以远程控制的LED灯。开发者可以通过该demo快速熟悉AbleCloud的开发流程。点击下载
一、定义产品
“定义产品”是开发者使用ablecloud服务进行开发的第一步,是指在AbleCloud的厂商管理后台中对产品及功能信息进行设定。设定成功后即可按照后续步骤进行开发并有效使用AbleCloud的相关云服务。
产品定义包括定义产品的名称、型号、类型、数据格式、通信方式、操作系统、功能点等内容。
二、功能开发
2.1 设备开发
-
(1)设备连接云端
设备能够连接到云端才能够实现APP等客户端对设备的远程查看和控制。
对于WiFi设备,AbleCloud已经对主流的WiFi模块进行了适配,在WiFi模块中烧入AbleCloud提供的固件后设备即可连接到云端。点击查看已经完成适配的WiFi模块列表
对于安卓设备,AbleCloud提供安卓设备的SDK,SDK完成设备到云端的连接,开发者直接调用SDK开发功能即可。对于蜂窝网络设备(GPRS)、以太网设备等,AbleCloud提供了设备和云端握手需要的SDK,开发者移植SDK的底层驱动后就可以实现设备到云端的连接。
对于蓝牙设备,设备不直接连接到云端,不需要进行这项工作。
-
(2)设备功能开发
包括开发设备的绑定、接收云端指令、主动上报数据、OTA等功能。
设备绑定指的是是用户获取设备ID完成和设备权限认证的过程。
对于WiFi设备,可以通过在局域网广播让APP或微信获取到设备ID完成绑定。该功能SDK已经进行了封装,不需要开发。其他类型设备的绑定,直接使用APP扫码即可,设备端同样没有开发工作。
对于接收云端指令、主动上报数据和OTA,直接调用SDK的接口进行开发即可。开发者不需要关注通信模块和云端的具体交互细节。
2.2 APP开发
AbleClouD的APP端的SDK提供的功能主要包括:
帐号系统:登录、注册、发送验证码、第三方登录、用户头像、用户个人信息。
设备激活:通过smartconfig等技术给WiFi设备配置路由器密码。
设备管理-独立设备:独立设备的绑定、解绑、分享、邀请。
设备管理-网关型设备:网关的绑定、解绑、分享邀请和子设备的添加、删除、分享、邀请。
设备管理-Home模型:以家庭为单元的设备管理,包括家庭和房间的创建、删除;向家庭和房间中添加和删除独立设备以及网关型设备;家庭成员的添加、删除。
OTA:检查是否有固件更新,显示更新内容,确认设备固件进行更新。
实时消息同步:基于websocket,APP和存储中的数据进行实时同步。
定时任务:通过APP给设备设定定时任务。云端会在APP设定的时间将设定的指令发送到设备。
推送:APP接收云端的推送通知。
文件存储:图片、音频等块文件的存储。
访问服务:访问云端的UDS服务。
以上功能,可以直接调用SDK的接口进行开发。
管理后台提供了“虚拟设备”的功能,云端可以虚拟出所定义产品的设备,在实体设备尚未开发完成时,可以用来辅助APP的开发和测试。
注:设备管理部分,AbleCloud提供了三种设备管理模型:独立设备、网关型设备和Home模型。开发者根据自己的实际情况进行选择。无论采用何种设备管理模型,其他功能的开发都是一样的。
2.3 微信开发
如果使用微信作为控制设备的客户端,需要开发微信公众号上的相关功能。
与微信的交互是指在开发者的微信公众号中实现设备管理功能,允许用户通过微信公众号的交互界面实现对设备的智能控制。因此除了在AbleCloud的平台注册并定义产品外,还需要有一些和微信公众号相关的操作。详细信息请参考开发指导-微信
AbleCloud在后台和微信硬件平台进行了对接,提供PHP的开发框架供开发者在微信上开发设备的控制管理页面。
2.4 云端服务开发
APP和设备上所有需要和云端交互的功能都需要云端服务的支持。
AbleCloud提供了通用的云端服务,如“帐号管理”、“设备管理”、“定时任务”、“OTA”、“文件存储”、“实时消息同步”、“设备安全管理”等。使用这些云端服务,直接调用APP和设备的SDK的对应接口即可。
AbleCloud提供了云端服务的开发框架,开发者可以基于该开发框架开发通用云端服务没有提供的功能。对于通用服务已经提供的功能,也可以进行个性化定制。 例如,一款智能电烤箱,开发者可以使用云端服务开发框架开发晒美食、上传菜单等个性化功能。云端服务开发指导请参考开发指导-云端服务。
三、调试
在管理后台,页面上提供“虚拟设备”和“设备调试”两个功能,可以用以辅助进行APP和设备调试。
虚拟设备
基于厂商在后台创建的产品和定义的功能点,AbleCloud管理后台可以启动对应的虚拟设备。AbleCloud提供虚拟设备的功能可以在设备尚未开发完成的时候用以辅助APP的开发。APP可以绑定该虚拟设备。虚拟设备提供三个功能:
- 显示APP发给设备的指令。
- 响应APP的查询指令。
- 模拟真实设备上报数据。
设备调试
在APP尚未开发完善,但是需要进行设备调试的时候,一方面可以利用AbleCloud提供的“调试APP”进行调试,另一方面可以利用管理后台的“设备调试”进行调试。
在厂商管理后台的设备管理可以看到当前连接到云端的所有设备。“设备调试”提供以下功能:
- 在Web页面直接看到当前连接到云端的设备的所有数据点的数据。
- 触发设备上报数据,页面的数据点会显示设备上报的数据。
- 提供模拟APP功能,开发者可以通过Web页面模拟APP给设备下发数据。
在APP和设备联调时,也可以通过该页面查看设备的数据上报和指令响应情况。
四、产品上线
为保证安全,AbleCloud的云平台分为test开发测试环境和正式生产环境。
产品开发在test环境进行,对应网址:test.ablecloud.cn。开发完成后,转移到正式生产环境进行设备生产和出货。
将产品由test环境转移到正式环境的详细操作步骤详见产品上线操作说明
转移完成后,产品就可以正式生产和出货了。
智能硬件架构模型
智能硬件架构模型AbleCloud的功能模块
1. 联网固件
智能设备需要连接到云端,因此需要联网模块实现和互联网的连接。目前最主流的和互联网连接的联网模块是WiFi模块。除此之外还有蜂窝网络、以太网等联网方式。使用AbleCloud云服务的设备需要保证能够正常连接到AbleCloud的云端。因此,对于主流的WiFi模块,AbleCloud提供了联网固件,只要将这些联网固件烧入这些厂商的WiFi模块,就能够实现设备到云端的连接。对于目前AbleCloud尚未适配的联网模块,AbleCloud提供模块和云端握手的SDK,厂商只需要对SDK中的底层驱动部分进行适配即可实现设备到云端的连接。对于安卓设备、linux设备等自带网卡的设备,AbleCloud提供了SDK,只要使用SDK开发,即可让设备连接到AbleCloud的云端。
2. 客户端SDK
为了帮助开发者快速开发智能设备的客户端应用,我们提供Android、iOS和微信三大平台的SDK。厂商可利用AbleCloud提供的SDK快速开发控制智能硬件的APP。SDK提供了”帐号管理”、“设备管理”、“局域网通信”、“定时任务”、“和云端通信”、“实时消息同步”、”OTA管理”、“推送服务”等功能。
3. 云服务引擎
云服务引擎,是我们提供的PaaS平台,包括开发、测试框架以及完整的运行平台。云服务引擎上提供通用服务和开发运行平台。通用服务包括:帐号管理、设备管理、定时任务、实时消息同步、OTA、推送服务、第三方云对接、存储管理、虚拟设备、设备调试等。对于通用服务,只需要调用SDK相关的接口或者在管理后台页面上操作即可使用,不需要在云端进行任何开发。
通用服务能满足智能联网设备的通用需求。对于个性化、定制化需求,我们提供云端服务开发引擎和运行平台,厂商也可以快速开发出自己的定制云端服务。
云服务开发引擎 AbleCloud封装了开发Web服务的框架,厂商的开发人员利用这个开发框架,可以完全不用关注服务和APP端、和设备端RPC交互的细节,而是将全部精力集中在服务具体业务逻辑的实现上。开发框架提供了完整的web service框架,让您用很少的代码即可实现一个服务,并提供了完备的单元测试、集成测试方案和工具包。
云服务运行平台 当厂商的自定义云端服务开发完毕并测试完成后,开发人员只需要将服务可执行程序提交到AbleCloud提供的PaaS平台,之后AbleCloud将自动完成发布、运维、日志收集、故障自动修复、服务监控报警、定时任务等工作。