目前的家庭已经从房里单纯一台电脑发展为遍地网络设备 ,这些设备很多都是面向用户的设备,如平板电脑、笔记本电脑、台式电脑。然而渐渐越来越多的家庭网络开始拥有一大批专用设备,这就使得家庭网络不仅只关乎用户,还关系这些设备,是事实上的设备网络。

这样的单板上。

        The Thing System的设计理念就是IOT需要遵循这样的规则,设备观测事件并对其他设备执行的任务作出响应。不是所有的决策都需要用户干预,而且也不需要让用户知道。IOT需要对信息敏感,不仅反应信息而且能做出预测。

                                

IOT开源 iot开源安全项目_System

        管家(steward)是这套系统的核心,连接家里的所有设备,并让它们可以互联互通。无论这些设备是类似Apple TV的媒体播放器,Nest的恒温控制器,Insteon家居控制系统,还是Philips的Hue灯泡,无论它们是通过Wifi,Zigbee, Z-Wave, USB还是BLE相连。Steward都能够发现它们,将它们组合到一起,互联互通,创造奇迹。


       物联网应该减少我们生活的麻烦,如果在我们和设备时间存在更多的按钮、开关、拨号盘或其他交互界面,当我们需要设备按我们设想的那样工作时,反倒会增加更多的麻烦,使设备用起来反倒不方便。比如回到家,开灯变得更复杂,你还需要考虑墙上开关按下之前的状态,那你就没有让生活变得更简便。


The Thing System正是为了实现这样的目标。

步骤

1) 安装Steward (Raspberry Pi, the Raspberry Pi B+ 和BeagleBone Black)

首先在板子上安装node.js并运行,接着下载Steward ,当然Raspberry Pi还有另一条路就是用SD卡安装带Steward的OS镜像
 

git clone https://github.com/TheThingSystem/steward.git
cd steward/steward
npm install -l


2)  运行Steward  

进入steward/steward目录

sudo ./run.sh
Steward会通过一系列的设备发现机制来寻找设备,比如SSDP,TCP端口扫描,MAC地址前缀,BLE设备查找,USB设备查找
当然Steward也不是万能的,它一开始并不知道自己的位置信息,也就无法确定比如日出时间等事件信息,所以还需要用户的初始设置。
run.sh主要完成了几项工作,添加steward访问/dev/bpf*的权限,根据nvm初始化脚本配置node.js环境,运行index.js

3)验证steward运行ok
从本网段其他机器上用浏览器访问 
https://XXX.XXX.XXX.XXX:8888     走SSH方式,需要确认证书
如从steward安装机上用浏览器访问

http://
127.0.0.1:
8887
客户端是通过Websocket跟steward进行通信,steward以mDSN(zero-configuration networking)方式发布自己,跟Apple的Bonjour类似。
出现login界面

初次使用先创建用户account

访问https://steward.local:8888/console.html或
http://127.0.0.1:8887/console.html

steward支持从外部网络的访问,比如steward位于NAT/Firewall后面,这些依靠node-rendezvous包
wss://X.X.X.X:8888/manage


Web of Things是IoT的未来趋势,steward在很多方面确实考虑地不错,虽然主要开发人员仅有Alasdair Allan和 Marshall T. Rose两位大牛,但值得好好学习,而且The Thing System还在不断改进中,已有跟Node Red等可视化iot工具整合的趋势




个人介绍:

周明春 SamsungElectronics VD IoTPlatform高级工程师,在物联网,云计算,移动通讯,网络安全和消息传递基础构架领域拥有超过9年的专业知识和经验.拥有丰富的企业消息传递基础构架开发,物联网、云、设备联接解决方案开发,以及成熟的管理软件和解决方案,如敏捷和DevOpts的开发经验。在国内首次提出SDT(softwaredefinedThings)的IOT概念,拥有3项专利(一份正在评审).

是三星、英特尔、戴尔所成立智能家居设备标准联盟开放互联联盟(OIC)的代码贡献者(https://gerrit.iotivity.org/gerrit/p/iotivity.git)

https://www.iotivity.org/documentation/iotivity-services/protocol-plug-manager