SmartThings是一个智能设备控制系统,它包括:SmartThings Cloud(云平台)、SmartThings Hub(网关)、SmartThings Mobile(手机客户端)以及各种关联的设备或服务。

假设我们有这样一个控制场景:当大门打开,则开启客厅的电灯,并向主人发送一条短信。如何实现这一控制呢?首先我们需要一个开关传感器,当大门被打开的时候,传感器感应并将事件上报到平台,平台收到这一事件报告之后,控制客厅电灯的开关打开,同时通过短信服务发送一条短信息。

当然,诸如传感器、电灯开关这些设备可能没有网络接口,无法直接与平台通信,这时就需要网关作为中转站。网关负责将传感器的状态改变抽象成一种事件,上报给云平台,然后接收并执行云平台下发的指令。网关并不是必须的,如果一个智能设备具有网络接口并支持SmartThings的通信协议,完全可以跳过网关直接与云平台通信。

SmartThings的应用逻辑是在云平台中实现的,也就是说“如果...那么...”这样的控制逻辑不是在手机客户端、网关、传感器上处理,而是在云平台中根据预先设定的条件和逻辑实施控制的。为什么这样做呢?SmartThings认为,“设备”与“智能”应该是分开的,也就是说作为传感器不要求它具有高智能,它只要负责检测,而通信部分交由网关完成。在云平台中,各种传感器事件和设备操作被抽象成标准的接口,例如Event.ContactSensor.opened表示开关传感器的打开事件。SmartThings认为把控制逻辑放到云平台的好处之一,是应用开发人员无需关注具体的硬件,也无需学习硬件相关的编程。我们来看看SmartThings官网上的一个具体例子:

def openedContactSensor(evt, settings) {
def light = settings.switch1
if(evt == Event.ContactSensor.opened) {
light.on()
}
}

这个例子实现了一个传感器与开关的关联控制逻辑。SmartThings甚至推出了基于浏览器的开发环境,开发人员可以直接在浏览器上开发和发布应用。

云平台不仅实现业务逻辑,对于最终用户而言它还是一个应用商店,开发者将物联网应用发布到云平台,最终用户通过手机客户端从平台下载他们需要的应用,再经过简单配置就可以使用了。还看上面的例子,“当大门打开,则开启客厅的灯,并发送短信”,当用户下载了这个控制逻辑之后,只需要在手机客户端中指定哪个是大门的传感器,哪个是客厅电灯的开关,以及自己的手机号码,这个控制逻辑就生效了。此外,手机客户端还帮助用户管理自己的网关、设备,以及呈现各种设备的状态和事件等。

SmartThings的体系架构分为展现层、智能层、抽象层、连接层和能力层,通过这五个层次的划分,建立了整合物联网硬件厂商、物联网应用开发商、互联网服务提供商以及最终用户的完整生态链。物联网产业正蓬勃发展,个人和企业都有机会在这个生态系统中找到属于自己的位置。

SmartThings层次架构图(引自官方网络

参考资料:

  1. http://www.smartthings.com/#getting-started
  2. http://build.smartthings.com/smartapps-overview/
  3. http://build.smartthings.com/the-cloud-first-approach/

SmartThings物联网平台简介的更多相关文章

  1. Ninja Blocks物联网平台简介

    Ninja Blocks是一个物联网控制平台,其平台架构包括硬件层.处理器层.软件层以及平台层,请看下图: 最底层是硬件层,包括传感器(Sensors)和驱动器(Actuators),例如温度传感器. ...

  2. 玩转OneNET物联网平台之简介

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  3. 物联网全景动态图谱2.0|PaaS物联网平台汇总(上篇)

    物联网智库 原创 物联网智库 整理发布 转载请注明来源和出处 ------   [导读]   ------ 毫无疑问,2018年物联网对行业的深度变革才刚刚开启. 物联网产业链企业的质与量将进入全面爆 ...

  4. 国内物联网平台(3):QQ物联智能硬件开放平台

    国内物联网平台(3)——QQ物联·智能硬件开放平台 马智 平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用 ...

  5. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...

  6. 玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(设备自注册)+ Android App控制

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  7. 玩转OneNET物联网平台之MQTT服务③ —— 远程控制LED(设备自注册)

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  8. 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  9. 玩转OneNET物联网平台之MQTT服务② —— 远程控制LED

    1.理论基础     参考博主线上博文: 玩转PubSubClient MQTT库 玩转OneNET物联网平台之简介 玩转OneNET物联网平台之MQTT服务① 2.远程控制LED 2.1 实验材料 ...

随机推荐

  1. jsp学习--JavaBean定义和在Jsp中使用JavaBean

    一.JavaBean 1.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:>>这个Java类必须具有一个无参的构造函数>>属性必须私 ...

  2. python学习之——计算给出代码中注释、代码、空行的行数

    题目:计算给出代码中注释.代码.空行的行数 来源:网络 思路:注释行以 ‘#’开头,空行以 ‘\n’ 开头,以此作为判断 def count_linenum(fname): fobj = open(f ...

  3. 搭建angular前端框架 命令

    首先必备的工具都下下好. 然后现在开始输入命令行创建angular 项目 1.node cd .. 2.yo bower grunt 3.npm install -g generator-angula ...

  4. Hibernate学习(一)

    一.基本概念 ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术.简单说: ORM 是通过使用描述对象和数据库之间映射的元 ...

  5. 从php脚本到浏览器,编码方式浅析

    今天简单看了一下php,服务器,浏览器如何设定编码 1.php 在php配置文件php.ini中,可以设置字符编码 ; PHP's default character set is set to em ...

  6. 插件兼容CommonJS, AMD, CMD 和 原生 JS

    模块标准 CommonJS CommonJS 有三个全局变量 module.exports 和 require.但是由于 AMD 也有 require 这个全局变量,故不使用这个变量来进行检测. 如果 ...

  7. MVC+ajax权限管理

    不喜欢说废话,直接了当: 1.控制器 /// <summary> /// 获取列表 /// </summary> /// <returns></returns ...

  8. js控制控件不可编辑

    js 页面加载执行 function Isedit() { //document.getElementById("SyTxtBox23_DataControl").disabled ...

  9. Map:containsKey、containsValue 获取Map集合的键值的 值

    get(Object key) 返回与指定键关联的值: containsKey(Object key) 如果Map包含指定键的隐射,则返回true: containsValue(Object valu ...

  10. java开发中的一些工具软件

    1. XJad, 反编译工具,类似于.Net中的Refractor.可以反编译单个jar文件或一个文件夹下的class文件,效果还不错. 2. dirtyJOE, class文件直接修改工具.有时想修 ...