Skip to content

Latest commit

 

History

History
143 lines (75 loc) · 12.1 KB

20180905-verymuch_从撒狗粮带你了解WoT连接场景.md

File metadata and controls

143 lines (75 loc) · 12.1 KB

歪马是一名IT男,30岁,单身,之前每年的情人节、七夕节、圣诞节...可以说是没少被“撒狗粮”。这不,歪马今年决定要改变这一现状。而故事就是从这里开始的。

为了避免跑题,笔者表示要强势切入,下面我们先简单介绍下物联网和万维物联网。

一、物联网和万维物联网

在最近几年里,物联网(Internet of Things,简称IoT)已经成为了在技术和商业上最有前途、最激动人心的发展领域之一。相信大家对于物联网已经或多或少有些了解。大家也一定使用过类似的产品,如可以远程实时查看录像、同步进行语音通话的360智能摄像机;可以远程控制家用电器开关的智能插座;可以智能检测心率和睡眠的智能手表以及其他一系列智能产品。

物联网是一个物理对象系统,其中的电子设备通过各种各样的网络接口进行通信,从而可以被发现、监控、控制交互,最终可以连接到更大的网络。上面所提到的几种产品即可以认为是其中的电子设备。

万维物联网(Web of Things,简称WoT)是物联网的一种实现方式,它主要致力于建立一种通用的语言,从而让不同厂商的智能产品具有彼此实现互相操作的可能。

Web比较适合用来建立这样一种通用的语言,它具备以下4个优点:

  1. 更容易编程:万维网协议可以很容易地用来读写设备数据,而且特别简单易用,比复杂的物联网协议学起来更快。
  2. 更加开放和可扩展:万维网标准如此流行的原因即因为它们是完全开放和免费的。使用它们能够确保数据可以被快速、方便地跨系统转移,可扩展性更高。
  3. 能够快速简单部署、维护与集成。
  4. 安全和隐私机制使用的更加广泛。

好了,关于�物联网和万维物联网的基本介绍就到这里了,本文将主要以一种生动有趣的方式着重介绍下WoT的6种连接场景。

二、WoT的连接场景

故事继续,为了改变每年都被别人“撒狗粮”情况,歪马决定改变现状。歪马从小比较喜欢小动物,尤其是聪明温顺的狗狗,这回歪马决定养一只狗狗陪伴自己。这样每次被“撒狗粮”时,可以真真切切的撒回去(不管你觉不觉得这逻辑可爱,笔者觉得挺可爱的)。

歪马养了一只短腿小柯基,并为其起名为大屁,因为柯基一扭一扭的屁股甚是可爱。下面我将带着歪马和大屁一起先介绍下WoT的第一种连接场景。

2.1 场景1:通过Web服务进行设备的控制

第一个要说的连接场景是通过Web服务进行设备的控制。

身为IT男的歪马和我们大家一样常常从早忙到晚,不能按时回家,这可苦了他的爱犬大屁,因为大屁经常是吃了上顿没下顿。但歪马又不能不限量地给大屁留狗粮,因为这有可能导致大屁进食过量,健康产生问题。

为了解决大屁吃的既准时又不会过量的问题,歪马花费了不少精力,专门开发了一套基于微信的程序,这样无论身在地球上哪个角落,只要能上网,就不会饿着大屁了。

歪马给大屁注册了一个微信号,需要喂食时,歪马会给大屁发送一条“@大屁 过来吃饭啦”的消息。家中的电脑收到后,就会启动一个扬声器。扬声器中会播放歪马呼唤大屁进食的录音,这样大屁听到声音后就会跑过来,坐在狗粮盆前面等着。此时,一个马达启动,打开粮箱上的活门,里面的狗粮会顺着管子落到大屁的盆里。并且在程序内可以设定每次投放的狗粮量,这样也能保证大屁不会变成一条肥狗啦。

说了这么多,大家可能很懵?故事还不错,但这和IoT/WoT有啥关系呢?又该如何理解这一场景呢?

现在让我们一起来抽象下。

首先,我们考虑下在歪马家里用于喂狗的这个装置包括哪些东西,我们将其想象成一个整体——自动喂狗装置

自动化喂狗装置组成部分:

  1. 电脑:具有Web服务器功能,可以连接到互联网,可以监听事件,用于接受指令。
  2. �扬声器:用于播放歪马呼唤大屁进食的录音。
  3. 狗粮倾倒装置:启动后可以漏出狗粮,并且可以定量投放,�投放完毕后关闭。

好了,如上,已经有了一个自动化喂狗装置。这个喂狗装置具有Web服务器功能,能够直接连接到互联网,歪马可以通过连接到互联网的设备(如手机或电脑设备上的浏览器或原生应用)向喂狗装置发送命令,喂狗装置收到后就可以自动喂狗啦。

这一场景就是WoT的第一种连接场景:一个具有Web服务器功能的电子设备可以直接连接到互联网,这时,我们可以通过手机或电脑设备上的浏览器或原生应用,借助互联网(如蜂窝网,运营商网络)对�电子设备进行控制。

连接场景图示如下:

场景1:通过Web服务进行设备的控制

2.2 场景2:通过本地Web服务进行设备的控制

上面的连接场景应该很容易理解。下面我们再考虑下�下面这个场景:

作为IT男的歪马非常喜爱足球,每逢世界杯比赛时,总免不了全神贯注地观看比赛直播。他为自己在卧室里准备了一个大大的液晶电视,这样每当有球赛的时候就能舒舒服服地观看比赛了。如果看比赛的时候,大屁饿了,他又不想错过直播去给大屁倒狗粮,那么很简单他可以打开电脑或者拿出手机,和在公司上班时一样,远程投放狗粮。

但是,�事情总会有例外,正值世界杯比赛的某个周末,歪马所在小区的网络故障,没法正常使用了。那么大家觉得歪马的喂狗装置还能不能用呢?

答案当然是肯定的,作为程序员的歪马深知代码鲁棒性的重要性。所以他设计这套系统已经考虑到这种情况了。在没有联网的情况下,也可以支持本地局域网运行,所以只要家里还有电,喂狗装置和他的手机/电脑处于同一个本地网络,那么他依然可以通过手机/电脑进行喂狗装置的控制。这也就是我们所要介绍的第二种连接场景:一个具有Web服务器功能的电子设备,在没有连接到互联网的情况下,我们可以使用手机或者电脑,通过本地网络对电子设备进行控制。

连接场景图示如下:

场景2:通过本地Web服务进行设备的控制

2.3 场景3:使用蓝牙遥控器进行设备的控制

有点时候拿出手机/电脑再进行控制多少有些麻烦,相对而言我们使用的电视遥控器反而更加简单。但是电视之类的遥控器,因为是红外设备,需要对准,而歪马又不能保证能够随时对准喂狗装置的所在。

于是歪马想到了一个点子,他给喂狗装置添加了蓝牙设备,并且使用蓝牙设备制作了一款遥控器,这样只要两个蓝牙设备配对后,在房间内的任意位置(一定范围内)都可以进行设备的控制了。

怎么样,歪马是不是很厉害,他上面所做的这一改变就是�WoT的第三种连接场景:如果设备存在某种限制不能连接到互联网,那么其可以通过蓝牙等设备进行连接,这样即可通过遥控器对设备进行控制。(当然,红外设备也是可以的,下面我们要介绍的场景与其类似)。

连接场景图示如下:

场景3:使用蓝牙遥控器进行设备的控制

2.4 场景4:使用感应器进行设备的控制

解决了大屁吃饭的问题后,�还有一个同样重要的问题,那就是喝水的问题。

夏天天气热,狗狗又非常怕热,歪马每天上班都会给大屁倒满满一盆的水,但是回家之后,总会被喝的精光。换个能盛更多水的大盆又怕夏天容易滋生细菌。

为了解决大屁喝水的问题,歪马想到了一个好点子,�他买了一个水位感应器安装在了水盆内,当大屁把水喝的精光时,水位感应器感应到没有水后,会向水箱发送一个没水的信号,水箱中的控制代理接收到信号后,会打开水箱自动向水盆注入3/4的水。如此一来,歪马只要定期向水箱中添加纯净水就行了,大屁也能放心地喝水啦。

使用感应器进行设备的控制即为WoT的第四种连接场景:利用感应器探测到某一条件到达指定值时,�设备检测到这一变化后,可以做出相应的动作。

连接场景图示如下:

场景4:使用感应器进行设备的控制

2.5 场景5:使用网关进行中转

场景4中的智能水箱中使用的控制代理属于比较旧的设备,而感应器有时候又不是那么灵敏,可能要等水没有一段时间后才会加水。

于是歪马在想,如果也能够远程进行水箱的控制就好了。由于�水箱的控制代理和感应器没法直接连接到互联网,于是他在本地网络和互联网之间加入了网关,通过网关来进行中转。这样即使是感应器这样的设备也也能够通过网关连接到互联网,能够实时将水箱中的剩余水量上报到服务器中。歪马可以直接远程查看,当歪马远程喂食的时候�,如果发现水盆中水量不多时,可以直接定量加满即可。

上面这种使用网关进行中转的方式即为WoT的第五种连接场景:如果存在不能直接连接到互联网的设备或者使用其他协议的设备时,可以通过在本地网络和互联网之间添加网关,借助网关来进行中转。本地设备有状态发生变化时,可以通过网关转换后进行上报。远程有新的指令达到时,也可以通过网关转换后下达给指定设备。

连接场景图示如下:

场景5:使用网关进行中转

2.6 场景6:使用云来管理设备

机会总是会降临到有准备的人头上。

虽然歪马从来没有想过为大屁开发的这款智能喂狗装置会给自己带来什么。但这款喂狗装置被商界人士得知后,有人联系歪马,想要进行投资量产。歪马当然欣然接受了合作。于是和合作公司开始讨论喂狗装置如何量产,还有哪些功能需要优化。

其中就有这样一个问题,如果设备被量产的话,不可能每个人的喂狗装置都和自己的控制设备直接连接,这时候就需要有一个云服务器来进行云端存储。每个人的喂狗装置通过用户自己的账号,连接到云端,喂狗装置的各部件会实时将自身的状态同步到云端。用户打开控制设备后,会同步各部件的状态。用户可以通过控制设备下发指令,指令通过云端进行中转,然后下发到喂狗装置。这样做还有一个好处,如果喂狗装置出现临时断线等情况时,控制设备所发送的指令也会在云端临时存储,在装置接入后继续下达指令。

上面这种情况即为WoT的第六种连接场景:云端就绪的设备直接连接到云端,其自身的状态会在云端做个镜像,这个镜像会充当一个代理,用于接收远程控制设备的指令。

连接场景图示如下:

场景6:使用云来管理设备

三、多场景共存

上面分别介绍了WoT的6种独立连接场景,�其实这些连接场景是可以共存的,汇总到一起后如下图所示:

多场景共存

好了,WoT的连接场景介绍完毕了。最后问一句�,你觉得歪马这狗粮撒的如何?

致谢

感谢奇舞团小伙伴李冬杰对本文的审校与意见。

参考文献

  1. 英国IT男因工作繁忙写程序远程喂狗
  2. WoT技术架构(草案)
  3. [书]从物联到万联