引言
目前互联网的发展已经接近成熟,各种业务模式、运营模式,以及开发模式的推出,都有很多成功案例可以参考。而当时间进入2014年,各大互联网巨头相继涉足物联网领域,于是业界称之为“物联网元年”,其中又以智能家居应用最为火热,面向智能家居的各种智能化硬件层出不穷。然而一年过去了,各大互联网公司在物联网方面的发展并不尽人意,其中一个最重要的原因就是无法有效解决智能硬件开发的难题,因而迫切需要采用新的思维进行硬件的智能化设计。
1 传统硬件设计的老问题
互联网产品一个最重要的特征就是极强的用户体验,而这个体验的得来,是要和用户不断地互动完成。对于软件产品而言,可以通过最小功能的第一版先面世,然后在和用户的互动过程中,通过收集用户反馈,快速地迭代以更新产品来达到目的,而如果用这样的思路做硬件,将会是一个灾难。
首先,是解决正确进行产品定义的难题。对于硬件产品的开发,其变更的成本和代价总是极其巨大,如果前期没有一个合理的定义,在产品开发的过程中,随着需求的不断调整,将会导致开发周期无限制的延迟。
其次,是解决顺利完成生产制造的难题。对于硬件的生产有一些固定周期的限制,比如备料、排产、设计缺陷修正等,如果在初期无法准确定义产品的话,将完全无法掌控整个制造周期。
2 智能硬件设计的新思路
那么有没有一个办法来解决传统硬件设计的各种问题呢?在互联网的新形势下,借助智能硬件设计理念,答案是肯定的:有!
下面就通过一种方案的实现,来探讨解决互联网公司硬件难题的有效方法,其基本思路就是把基础不变部分硬件化,而把用户需求及可变部分软件化。对于一个智能硬件来说,首先是硬件部分,其次是智能部分,而智能部分往往更多地靠软件来实现。
目前,对于一个智能家居的系统,通行的架构设计都是会包含智能云、智能网关、终端(简称:云-管-端)三位一体的设计,如图1所示。
其中智能云部分负责设备的互联互通、数据采集与分析;APP软件部分负责人与物的交互,可以把系统的信息反馈给人,也可以接受人的指令,让系统产生对应的动作,比如远程控制。智能网关作为智能云的延伸部分负责家庭本地落地工作,完成物与物之间的连接与互动,比如智能联动。
在这样的架构下,智能硬件的常规开发方式由三部分组成,即硬件(Hardware)、软件开发套件(Software Development Kit,简称SDK),应用(Application)。Hardware指硬件本体,SDK和Application共同组成运行在硬件本体上的固件。整体架构如图2所示:
由于用户的功能体验对于智能硬件的重要性,会导致Application变得相对复杂,而且易变,这样就会使烧写入硬件本体的固件本身要不停地变更,从而导致硬件产品的不稳定性。对于这个问题,常规的处理方式是引入所谓空中下载(Over The Air,简称OTA)的升级功能,对智能硬件进行远程在线升级,以不断修复缺陷或更新功能。
但OTA升级对于如手机这样有比较强处理能力的智能硬件来说,是可以做到OTA功能本身的稳定性、可靠性和体验,但对于如面向智能家居的典型的智能硬件(比如插座)来说,把OTA做好,同样面临上述考验,同时为了增强可靠性,还会导致硬件成本的增加,比如,为了防止在硬件升级过程中断电引起的不可挽回的后果,需要增加FLASH来存储备用固件等。所以,要解决需要具备互联网诸多属性的智能硬件的开发难题,需要用一个全新的方式来思考。
3 智能硬件的部分软件化
把智能硬件抽象成三部分:第一、是硬件基础功能,比如一个插座的开或关,插座的电量计量等;第二、是硬件与云,APP的通信功能;第三、是增强附加功能部分,比如控制逻辑、状态更新、用电分析等。这样抽象之后,不难看出,硬件基础功能部分相对简单,变数小,符合传统硬件开发规律;硬件与云,APP的通信功能,功能虽复杂,但变数小,可以通过常规的软件开发过程顺利完成;主要问题集中在第三部分,这部分功能和用户体验以及互联网运营策略都会直接相关,功能需求变化极大,比如对于插座的用电分析功能的不同定义,会导致插座上报电量信息的周期以及电量采集策略会有不同的要求,而这些定义在把产品卖到用户手里,没有和用户真正形成互动之前,是没有办法准确定义的,这也就意味着,按照常规的设计方法,这个智能硬件产品还没有做出来,就被宣判失败了。
下面给出的解决方案则是干脆把这部分软件化,用完全的互联网开发模式去做这部分功能,强化智能云部分的设计,整体架构如图3所示。
平台完成,这个开放平台是面向智能硬件开发者的一个综合服务平台,其开发流程如图4所示。
4智能硬件开发的架构支撑
能让开发者用上述如此轻松方式去开发硬件的背后,是需要一个强有力后台架构的支撑,首先这个架构需要对硬件产品做个抽象化,抽象结果如图5所示。
网关(GateWay)——家庭智能网关,能够完成家庭多个智能设备的组网,控制和管理工作等。
终端(EndPoint)——智能硬件设备
数据(DataPoint)—— 智能设备所具备的功能点,将每个功能点抽象成数据点,数据点定义成不同的类型(如布尔、枚举、数值等),同时数据点具备读或写的属性,比如一个两路的开关,可以抽象成两个数据点,每个数据点的类型为布尔型,可取值true或false,数据点可读可写,读表示获取开关目前的值,写表示改变开关目前的值,即打开或者关闭开关,同时数据点可以关联对应的硬件操作指令。
对于一个智能硬件设备(EP)的完整描述,我们称为Schema,Schema在系统中采用JSON格式描述,下面以开发一个智能空调为例说明。
空调定义如图6所示:
Schema定义如下:
5 硬件开发的智能化改造
由此可见,采用这样的方式所做智能硬件,或者将传统硬件智能化改造时,只需将硬件本身功能定义清楚,并烧入固定和起到通信连接作用以及Schema来执行引擎的SDK固件,硬件的开发就完成了。然后,可以采用传统硬件制造业的流程去进行试产、中试和量产等,并确保各个环节的工作能够顺利进行,从而使产品及时地推向市场。
当设备卖到消费者手里时,收下上电执行,从云端下载应用逻辑并执行。当应用逻辑需要变更时,开发者只需要在开放平台更新一个版本即可,而不需要做整个固件更新,不需要变更任何硬件设计,就可以在很大程度上支持需求的变化,以便为客户提供更好的服务。
正是基于这样符合互联网潮流的理念和设计思路,浙江风向标科技有限公司搭建了云-管-端全方位为智能硬件服务的平台系统,致力于为传统硬件厂商提供智能化改造服务,让消费者早日体验由物联网所带来真正智能化的家居生活。