本帖最后由 危险人物 于 2015-3-24 17:22 编辑
要是近些年来你以任何一种方式参与过IT行业,恐怕就听过“物联网”(即IoT)这个术语。据知名调研机构Gartner声称,IoT正处于技术成熟度曲线(hype cycle)的顶峰,这意味着许多人因此而兴奋不已,但还没有出现太大的实质性进展。2009年,连接到互联网的设备数量不到10亿个,但Gartner预测,到2020年安装的物联网设备数量将多达260亿个,这将为生产商和服务提供商创造3000亿美元的收入,并且给全球经济带来1.9万亿美元的影响。
简而言之,物联网就是使用智能设备,收集数据,然后这些数据通过互联网传输到其他设备。它与机器对机器(M2M)技术密切相关。虽然“物联网”问世已有一段时日,但这个概念却由Kevin Ashton在1999年首次使用,那时他是宝洁公司的一名员工。
自此以后,物联网概念迅速广泛传播开来。ARM开展的一项调查发现,75%以上的企业已经在以某种方式使用物联网,或者在探究如何使用物联网。96%的调查对象预计会在2016年之前使用物联网。
之所以大家对物联网抱有浓厚的兴趣,一方面在于它大有潜力。Ashton在2006年的一篇**中解释:“如果我们拥有无所不知的计算机――使用它们收集的数据,又不需要我们人类的任何帮助,我们就能够跟踪和统计一切设备,大大减少浪费、损耗和成本。我们知道设备何时需要更换、维护或召回,它们是全新还是越来越破旧。”他最后得出结论:“物联网有潜力改变这个世界,就像互联网那样。也许它的影响力还要大。”
物联网技术和标准方面的早期工作基本上出现在开源社区里面。我们将介绍一些比较值得关注的、目前在积极开发的开源物联网项目。虽然我们所列的开源项目通常侧重于软件,但也介绍了一大批开源硬件,业余爱好者能够低价买到其中好多硬件。
与往常一样,要是你觉得另外哪些项目应该榜上有名,欢迎留言交流。
开发工具篇
1. Arduino
Arduino既是面向交互式电子产品的硬件规范,又是一套软件,含有集成开发环境(IDE)和Arduino编程语言。官方网站解释,Arduino“是一款工具,用来制造比普通台式机更加能感知和控制物理世界的计算机。”背后的这家组织提供了许多供出售的板卡、入门套件、机器人及相关产品,另外许多机构已使用Arduino来制造自己的物联网相关软硬件产品。
相关网站:http://www.arduino.cc/
2. Eclipse IoT Project
Eclipse正在赞助物联网方面的几个不同项目。它们包括应用框架和服务;使用开源技术实现的物联网协议,包括MQTT CoAP、OMA-DM和OMA LWM2M;处理Lua的工具,Eclipse在大力宣传Lua,声称这是一种理想的物联网编程语言。Eclipse相关的项目包括Mihini、Koneki和Paho。官方网站上还有用于试用工具的沙箱环境和在线演示。
相关网站:http://iot.eclipse.org/
3. Kinoma
Kinoma软件平台归Marvell所有,它包括三个不同的开源项目。Kimona Create是一个DIY构造工具箱,可用于制作电子设备的原型。Kimona Studio是开发环境,可与Create和Kinoma Platform Runtime协同运行。Kimona Connect则是一款免费的iOS和安卓应用程序,将智能手机和平板电脑与物联网设备互联起来。
相关网站:http://www.marvell.com/kinoma/
4. M2MLabs Mainspring
Mainspring是为了开发远程监控、车队管理和智能网格等应用软件而设计的,它是一种开源框架,用于开发M2M应用软件。其功能包括:灵活的设备建模、设备配置、设备与应用软件之间的通信、数据的验证和规范化、数据的长期存储以及数据检索功能。它基于Java和Apache Cassandra NoSQL数据库。
相关网站:http://www.m2mlabs.com/framework
5. Node-RED
Node-RED立足于Node.js,自称是“用于连接物联网的可视化工具”。它让开发人员可以使用一种基于浏览器的流程编辑器,连接诸多设备、服务和API(应用编程接口)。它可以在Raspberry Pi上面运行,60000多个模板可用来扩展其功能。
相关网站:http://nodered.org/
硬件篇
6. Arduino Yún
这个微控制器将基于Arduino的板卡具有的易用性与Linux结合起来。它有两个处理器:ATmega32u4(支持Arduino)和Atheros AR9331(运行Linux)。其他特性包括:无线、以太网支持、USB端口、micro-SD卡槽、三个重置按键及更多。可以从Arduino官方网站购买。
相关网站:http://arduino.cc/en/Main/ArduinoBoardYun?from=Main.ArduinoYUN
7. BeagleBoard
BeagleBoard提供了信用*大小的计算机,可以运行安卓和Linux。由于它们对耗电量的要求非常低,所以对物联网设备来说是个不错的选择。硬件设计和硬件运行的软件都是开源的,可以通过众多分销商购得BeagleBoard硬件(常常以BeagleBone这个品牌名来销售)。
相关网站:http://beagleboard.org/
8. Flutter
Flutter赖以成名的地方是传输距离远。这款基于Arduino的板卡有无线传输器,传输距离超过半英里。另外,你也不需要路由器;Flutter板卡可以彼此直接联系。它采用了256位AES加密技术,易于使用。硬件和软件都是完全开源的;基础板卡的价格只有20美元。
相关网站:http://www.flutterwireless.com/
9. Local Motors Connected Car
Local Motors是一家汽车公司,专门小规模设计开源汽车方案。它与IBM合作开发了一款与物联网连接的汽车,今年夏季的一次展会上展示了这款汽车。原型的开源软件和设计规范大部分可从下列链接下载。
相关网站:https://localmotors.com/awest/connected-car-project-internet-of-things/
10. Microduino
你也许能从名字中猜到,Microduino提供与Arduino兼容的超小板卡。实际上,这种板卡的大小如同硬币,可以堆叠起来,做成新的产品。所有硬件设计都是开源的,核心模块每个起价只有8美元。其资金来源是Kickstarter网站的一项众筹活动,到时筹到了134563美元。
相关网站:http://www.microduino.cc/
11. OpenPicus
这家公司提供一系列可编程模块和套件,用于将设备连接到云和物联网。其硬件和平台都是开源的,但其产品可用来制造闭源商用产品。该公司还提供供租用的开发服务。
相关网站:http://www.openpicus.com/
12. Pinoccio
与Arduino兼容的Pinnoccio板卡(公司称之为“Scouts”)可在低功耗网状网中彼此连接。板卡里面有内置的可充电电池,电池可以连接到太阳能电池板或任何USB电源装置。该组织还提供用于监控板卡活动的GUI:Pinoccio HQ和ScoutScript,而后者是一种易于使用的脚本语言,可用于控制设备。入门套件售价197美元。
相关网站:https://pinocc.io/
13. RasWIK
RasWIK由一家名为Ciseco的公司开发,其全称是Raspberry Pi Wireless Inventors Kit(Raspberry Pi无线发明家套件)。它让拥有Raspberry Pi的任何人都可以试着制作自己的与无线网络连接的设备。它含有29个不同项目的说明文档,你也可以自行编制说明文档。设备需要收费,但所有包含的代码都是开源的;当然,如果你愿意,可以用它来制作商用产品。
相关网站:http://shop.ciseco.co.uk/raswik/
14. SODAQ
SADAQ的全称是“太阳能供电的数据采集”,它提供了与Arduino兼容的板卡,还有类似乐高积木的插件模块。官方网站上有许多教程,因而很适合初学者学习。而太阳能电池板让它成为一个很好的选择,可以在可能没有电力和互联网连接的众多地方记录环境数据。基础板卡起价为39美元。
相关网站:http://www.sodaq.net/
15. Tessel
Tessel旨在借助这款能够支持JavaScript的、插入任何USB端口的微控制器,让软件开发人员更容易从事硬件开发。你还可以将它连接到额外的模块,从而添加方向感应器、环境光及环境声、摄像头、蓝牙、GPS及/或另外九种功能。一块板卡和一个模块起价99美元,额外模块也有售,售价25美元。所有软硬件设计都是完全开源的。
相关网站:https://tessel.io/
16. UDOO
这款与Arduino兼容的板卡还可以从第二个处理器来运行安卓或Linux(名为UDOObuntu的发行版)。它声称,功能很强大,四倍于Raspberry Pi。官方网站上有多个教程和项目,它还在网上开设了“Made by UDOOers”部分,人们可以在此展示自己的作品。基础板卡的起价为99美元。
相关网站:http://www.udoo.org/
家庭自动化软件篇
17. OpenHAB
OpenHAB让你家里已有的智能设备能够彼此联系。它与厂商无关、与硬件无关,可以在任何能够支持Java的系统上运行。它的目标之一就是,让用户可以为其设备添加新的功能特性,并以新的方式结合起来。它获得了几个奖项,还有一个配套的云计算服务,名为my.openHAB。
相关网站:http://www.openhab.org/
18. The Thing System
这个项目包括软件组件和网络协议。它承诺可以找到你家里面所有与互联网连接的物件,并结合起来,那样你就能控制它们。它支持一大批的设备,包括Nest恒温器、三星智能空调系统、Insteon LED灯泡、Roku、谷歌Chromecast、Pebble智能手表、Goji智能锁及其他众多设备。它用Node.js编写,可以装在Raspberry Pi上。
相关网站:http://thethingsystem.com/index.html
中间件篇
19. IoTSyS
这个物联网中间件为智能设备提供了一个通信堆栈。它支持多种标准和协议,包括IPv6、oBIX、6LoWPAN、受限应用协议(Constrained Application Protocol)和高效XML交换。官方网站上的几段视频演示了它是如何实际工作的。
相关网站:https://code.google.com/p/iotsys/
20. OpenIoT
OpenIoT网站解释,这个项目“是一个开源中间件,用于获取来自传感器云的信息,没必要操心具体使用什么传感器。”它旨在能够实现基于云的“感知即服务”,已开发了诸多用例,面向智慧农业、智能制造、城市群体感知、智慧生活和智能校园。其支持者包括:雅典信息技术学院(AIT)、洛桑联邦理工学院(EPFL)、弗劳恩霍夫光电系统技术和影像处理研究院、SENSAP Microsystems AE、AcrossLimits、联邦科学与工业研究组织、萨格勒布大学电气工程和计算机学院以及爱尔兰国立大学高威分校。
相关网站:http://openiot.eu/
操作系统篇
21. AllJoyn
这个面向物联网的开源操作系统最先由高通公司开发,现在得到了最负盛名的物联网组织之一AllSeen Alliance的支持,其成员包括Linux基金会、微软、LG、高通、夏普、松下、思科、赛门铁克及另外诸多知名公司。它包括一个框架和一套服务,让制造厂商得以制造出兼容设备。它具有跨平台的特点,拥有面向安卓、iOS、OS X、Linux及Windows 7的API。
相关网站:https://allseenalliance.org/developer-resources/alljoyn-open-source-project
22. Contiki
Contiki自诩为“面向物联网的开源操作系统”。它将低功耗微控制器连接到互联网,支持IPv6、6lowpan、RPL和CoAP等标准。其他主要功能包括:高效的内存分配、全IP联网、非常低的功耗、动态模块加载及更多特性。支持的硬件平台包括Redwire Econotags、Zolertia z1 motes、意法半导体开发工具包和德州仪器芯片及板卡。还提供收费的商业支持服务。
相关网站:http://www.contiki-os.org/
23. Raspbian
虽然Raspberry Pi其本意是作为一种教学设备,但许多开发人员已开始使用这种信用*大小的计算机用于物联网项目。完整的硬件规范并非开源,但大部分软件和说明文档是开源的。Raspbian是一款流行的Raspberry Pi操作系统,基于Linux的Debian发行版。
相关网站:http://raspbian.org/
24. RIOT
RIOT号称是“面向物联网的友好的操作系统”。RIOS由FeuerWhere项目派生而来,于2013年首次亮相。它旨在既对开发人员友好,又对资源友好(即占用较少资源)。它支持多种架构,包括MSP430、ARM7、Cortex-M0、Cortex-M3、Cortex-M4和标准的x86 PC。
相关网站:http://riot-os.org/
25. Spark
Spark是一款基于云计算的分布式物联网操作系统。同一家公司还提供易于使用的硬件开发工具包及相关产品,起价只有39美元(硬件设计也是开源的)。它包括:基于Web的IDE、命令行接口、支持多种语言,以及可与许多不同的物联网设备兼容的代码库。它有一个非常活动的用户社区,还提供了大量说明文档和在线帮助。
相关网站:https://www.spark.io/
监测篇
26. Freeboard
Freeboard旨在让用户可以制作自己的仪表板,用于监测部署的物联网。代码在GitHub上可以免费获取;如果你将自己的仪表板公之于众,也可以免费试用服务。还为那些想确保数据私密的人提供了低价方案。网站上的示例仪表板显示了如何使用仪表板来跟踪空气质量、民用家电、酿酒厂运转状况或保湿器里面的环境条件。
相关网站:http://freeboard.io/
打印篇
27. Exciting Printer
Exciting提供了一套开源工具包,可用于体验物联网打印。有了它,你可以制作自己的小型打印机,然后用该打印机来打印从各种物联网设备获得的信息。比如说,它可以打印每日提醒和天气预报等信息。颇有意思的是,如果你想联系项目负责人,可以绘制图案,然后图案就能在对方办公室的物联网打印机上打印出来。
相关网站:http://exciting.io/printer/
平台和整合工具篇
28. DeviceHive
这个项目提供了一个机器对机器(M2M)通信框架,可用于将设备连接到物联网上。它含有易于使用的基于Web的管理软件,可用于构建网络、应用安全规则和监测设备。官方网站提供了用DeviceHub创建的示例项目,网站上还有一个“游乐场”部分,让用户可以在网上使用DeviceHub,看看它是如何工作的。
相关网站:http://www.devicehive.com/
29. Devicehub.net
Devicehub.net自称是“面向物联网的开源基石。”这项基于云的服务存储与物联网有关的数据,以可视化方式显示这些数据,并且让用户可以从网页来控制物联网设备。开发人员已使用该服务编写诸多应用程序,用来跟踪健康信息、监控孩子位置、自动化管理家用电气、跟踪车辆数据以及监测天气等。
相关网站:http://devicehub.net/dev/api#summary
30. IoT Toolkit
这个项目背后的组织正在开发一系列工具,用于将多个与物联网有关的传感器网络和协议整合起来。主要项目是Smart Object API,不过该组织还在开发HTTP-to-CoAP Semantic映射代理系统,这个应用框架包含嵌入式软件代理及更多组件。它还支持在硅谷举行的见面会,以便对物联网发展有兴趣的人士相互交流。
相关网站:http://iot-toolkit.com/
31. Mango
Mango自称是“世界上最受欢迎的开源机器对机器(M2M)软件”。它基于Web,支持多种平台。关键功能包括:支持多种语言和数据库、元点(meta point)、用户定义的事件、导入/导出及更多特性。
相关网站:
32. Nimbits
Nimbits可以存储和处理一种特定类型的数据――时间标记或地理标记的数据。提供公共平台即服务,你也可以下载软件,将软件部署到谷歌应用引擎、亚马逊EC2上的任何J2EE服务器或者Raspberry Pi上。它支持多种编程语言,包括Arduino、JavaScript、HTML或Nimbits.io Java库。
相关网站:http://forum.infiniteautomation.com/
33. OpenRemote
OpenRemote为基于家庭的业余爱好者、集成商、分销商和制造商提供了四种不同的整合工具。它支持几十种不同的现有协议,让用户可以制造出他们想象得到的几乎各种类型的智能设备,并使用支持Java的任何设备来控制。平台是开源的,但该公司还出售一系列支持服务、电子书及其他工具,旨在帮助设计和产品开发过程。
相关网站:http://www.openremote.com/
34. SiteWhere
这个项目提供了一个完整的平台,可用于管理物联网设备、收集数据,并将该数据与外部系统整合起来。SiteWhere发行版本可以下载,也可以在亚马逊的云上使用。它还与多个大数据工具整合起来,包括MongoDB和ApacheHBase。
相关网站:http://www.sitewhere.org/
35. ThingSpeak
ThingSpeak可以处理HTTP请求,并且存储及处理数据。这个开放数据平台的关键功能包括:开放式API、实时数据收集、地理位置数据、数据处理及可视化、设备状态消息及插件。它能整合多种硬件和软件平台,包括Arduino、Raspberry Pi、ioBridge/RealTime.io、Electric Imp、移动和互联网应用、社交网络及MATLAB数据分析工具。除了开源版本外,它还提供一项托管版服务。
转自:http://os.51cto.com/art/201409/451092.htm
|