原文地址:Open Source Tools for the Internet of Things
物联网开源正在快速发展。开源的物联网软件和硬件项目可以帮助企业和DIY爱好者通过网络连接设备进行实验。
如果你近几年由于某些原因涉猎到IT行业,那么你很有可能听过“物联网”这个词。据高德纳公司所说,物联网正如日中天,很多人都对它有兴趣,但对于物联网来说,还没有太多实质性的发展。在2009年连接到网络的设备数目少于10亿台,但高德纳公司预测在2020年将有260亿台设备连接到网络,这将为制造商和服务供应商们产生3000亿美元的收入并对全球经济造成1.9万亿美元的影响。
简单来讲,物联网是如何使用智能设备来收集通过互联网传输到其他设备的数据。机器对机器的技术与这密切相关。虽然机器对机器这一概念已经存在了一段时间了,但“物联网”这一概念却要到1999年,才由当时还是宝洁公司员工的凯文.阿斯顿第一次提出。
从那时起,这个概念迅速而广泛的传播开来。根据arm公司的一项调查,超过75%的企业已经使用或打算在某些方面使用物联网。而且该调查还显示,96%的企业预计在2016年之前都将使用物联网。
人们对物联网有极大兴趣的部分原因是物联网的潜能巨大。2006年,阿斯顿在文章中解释说:“如果我们的电脑可以知晓一切可知的,并在没有我们的帮助下使用它们收集的数据,我们将能够去跟踪和计算一切然后大大的减少浪费、损失和成本。我们能知道什么时候某些东西需要更换、维修或召回,我们能知道它们是否新鲜或者是度过了最佳状态。”他总结说:“物联网像互联网一样有改变世界的潜力。甚至物联网比互联网更强”。
许多关于物联网技术和标准的早期工作已经在开源社区完成了。这个月我们拥有的一些更有趣的开源物联网项目正在积极开发中。虽然我们的开源清单通常专注于软件,但这个清单里也具有一些开源硬件,这些开源硬件大部分是低价提供给物联网爱好者购买的。
与往常一样,假如你认为某些项目应该出现在我们的清单上,那么请不吝赐教,将这些项目写在下面的评论部分中。
开发工具
1. Arduino
Arduino包含一个交互式电子的硬件规格和一套软件。这套软件包括IDE和Arduino编程语言。某网站解释说Arduino是“一个工具,这个工具可以制造一个比台式电脑感知和控制更多物理世界的电脑”。其背后的组织提供了许多开发板、入门套件、机器人和相关的产品出售。同时,许多其他团体已经使用Arduino去建立他们自己的物联网相关硬件和软件产品。
2. Eclipse物联网项目
Eclipse正在资助几个关于物联网的项目。它们包括应用框架服务、物联网协议的开源实现(协议包括MQTT CoAP协议、OMA-DM协议和OMA LWM2M协议)、用lua语言进行工作的工具(eclipse正在推动lua语言为理想的物联网编程语言)。Eclipse相关的项目包括Mihini、Koneki和Paho。该网站还包括一个模拟环境,在这个环境可以用工具进行试验并有一个现场演示。
3. Kinoma
Marvell公司所拥有的Kinoma的软件平台包括三个不同的开源项目。Kimona Create是为标准电子设备产生的DIY构筑套件。Kimona Studio是和Create、Kinoma Platform Runtime一起工作的开发环境。KimonaConnect是一个免费的ios和安装应用,这个应用连接智能手机和物联网设备表。
4. M2MLabs Mainspring
Mainspring是用来构建远程监控,车队管理和智能电网应用的,是用来开发M2M应用的开源框架。它的功能包括灵活的设备模块化、设备配置、在设备和应用间的通信、数据校验和标准化、长期数据存储和数据恢复功能。它是基于Java和Apache Cassandra NoSQL数据库的。
5. Node-RED
Node-RED是基于Node.js的,它把自己描述为“一个连接物联网的可视化工具”。它允许开发人员使用一个基于浏览器的流程编辑器连接设备、服务器和API应用。它能在树莓派上运行,并且有超过6万个模块可用来扩展其功能。
硬件
6. Arduino Yún
该微控制器将基于Arduino板的易用性和linux系统结合起来。它包括两个处理器:ATmega32u4(支持Arduino)和Atheros AR9331(运行linux)。其他功能包括WIFI、以太网支持、usb接口、micro-SD卡槽、三个复位按钮等等。他们可以在Arduino网站上买到。
7. BeagleBoard
BeagleBoard提供信用卡大小的“电脑”,在这个电脑上可以运行安卓和linux。因为他们满足低功耗需求,所以它们是很好的物联网设备。无论是硬件设计还是它们上面运行的开源软件,BeagleBoard可以通过多种渠道获取。
8. Flutter
Flutter是以它超远的距离而出名的。这个基于arduino的开发板,它的无线传输可以到达半英里外。另外,你不需要一台路由器,flutter和flutter可以直接进行通信。它拥有256位的AES加密,并很容易使用。硬件和软件都是完全开源的,而且标配板子只卖20美元。
9. LocalMotors Connected Car
Local Motors是一家汽车公司,它进行小规模的开源汽车设计制造。他们在一个物联网连接的交通工具上和IBM公司合作,在去年春天,这个交通工具在一个会议上展示。许多关于这个交通工具的开源软件和详细资料可在网站进行下载。
10. Microduino
你可能已经从名字上猜到,Microdunio提供的非常小的开发板是和Arduino兼容的。事实上,这些开发板只有普通开发板四分之一的大小,而且可以叠加起来创造新的东西。所有的硬件设计是开源的,且核心模块每个只要8美元。它是由一个叫做Kickstarter的运动资助的,总共募集了134563美元。
11. OpenPicus
这个公司为了将设备连接到云和物联网,提供了一些列的可编程模块和套件。它的平台和硬件都是开源的,但是它的产品能被用来开发闭源的商业产品。这个公司也提供自我的开发租赁服务。
12. Pinoccio
Arduino兼容的Pinnoccio开发板(该公司称之为“童子军”)相互连接成低功耗的网状网络。他们包括一个内置的可充电电池,这个可充电电池可以连接到太阳能电池板或usb供电电源。这个组织还提供Pinoccio HQ(一个用于监控侦查活动的图形用户界面)、ScoutScript(一个用来控制设备易于使用的脚本语言)。Pinoccio的入门套件价格为197美元。
13. RasWIK
RasWIK是Ciseco公司开发的,是树莓派无线发明家套件的简略版。它允许任何人使用树莓派去尝试建立自己的可连接wifi的设备。RasWIK包含29个项目,你也可以把你自己的项目加进来。购买这个设备可能需要一定的费用,但是里面的代码都是开源免费的,你可以选择使用它来构建商业产品。
14. SODAQ
SODAQ是“太阳能供电数据采集器”的简写,它提供Arduino兼容的电路板和类似乐高积木的插件模块。这个网站包括一些适合初学者的教程。而且,在很可能没有电力和网络的地方,太阳能电池板使其成为一个记录环境数据的不错选择。它的基本版电路板预售价是39美元。
15. Tessel
Tessel的目的是为软件开发人员将硬件开发变得更容易,而这是通过可插入USB端口的、支持Java脚本的微控制器来实现的。你也可以将它连接到其他模块,比如添加加速计、环境光和声音、摄像头、蓝牙、gps和另外的9个功能。一块板子和一个模块的起始价为99美元,如果需要其他模块需要再加25美元。所有的软件和硬件设计都是开源的。
16. UDOO
这个Arduino兼容的主板还可以在它的第二处理器上运行安卓或linxu(这个linux版本被称为UDOObuntu)。它号称比树莓派强大4倍。在网站上可以获得多个教程和项目,它也提供一个叫做“有UDOO爱好者们创建”的部分,在这里大家可以展示自己的成功。这个板子的标准版价格是99美元。
自动化家居软件
17. OpenHAB
OpenHAB可以使你家里已经拥有的智能设备进行相互联系。它是供应商和硬件无关的,可以运行任何支持Java的系统上。它的目标之一是允许用户添加新的功能到他们的设备中并以新的方式来整合它们。OpenHAB赢得了很多大奖,它拥有一个名为my.openHAB的配套云计算服务器。
18. The Thing System(物系统)
这个项目包括软件组件和网络协议。它保证找到你房子里所有与互联网连接的东西,并把他们集合在一起,以便你能控制他们。它支持一系列的设备,包括鸟巢恒温器、三星智能空调、INSTEON LED灯泡、Roku、谷歌Chromeecast、Pebble智能手表、Goji 智能锁等等。它是以Node.js平台编写的,且适用于树莓派。
中间件
19. IoTSyS(物联网系统)
这个物联网中间件为智能设备提供一个通信协议栈。它支持多种标准和协议,包括IPv6、oBIX、6LoWPAN、受限制的应用协议和高效的XML交换格式。在该网站上一些视频展示它是如何工作的。
20. OpenIoT
该OpenIoT网站解释说,该项目是“一个从传感器云中获取信息的开源中间件,而不用担心是哪个确切的传感器被使用”。“它的目的是使能基于云传感器检测作为一种服务”,并制定了智能农业使用案例、智能制造、城市拥堵检测、智能生活和智能校园。它的支持者包括雅典信息技术学院(AIT)、巴黎高等洛桑联邦理工学院(EPEL)、弗劳恩霍夫光电研究所、系统技术和图像开发IOSB、SENSAP微系统AE、AcrossLimits、联邦科学与工业研究组织(CSIRO)、萨格勒布电气工程和计算机学院以及爱尔兰国立大学和高威大学。
操作系统
21. AllJoyn
AllJoyn最初是由高通公司创建的,这个基于物联网的开源操作系统由下列最杰出的物联网企业所支持,他们是AllSeen联盟成员,包括linux基金会、微软、LG、高通、夏普、松下、思科、赛门铁克等等。它包括一个框架和一组服务,这使得制造商能够创建兼容的设备。它是跨平台的,它的应用程序接口可以用于安卓、iOS、Mac OS X、linux和win7。
22. Contiki
Contiki描述自己为“物联网开源操作系统”。它连接低功耗微控制器到互联网,并支持如IPv6、6LoWPAN、RPL和COAP协议。其他主要功能包括高效的内存分配、全IP网络、极低的功耗、动态模块加载等等。支持的硬件平台包括Redwire Econotags平台、Zolertia Z1 motes平台、意法半导体开发套件和德州仪器芯片和电路板。商业支持支付功能。
23. Raspbian
虽然树莓派被认为是教育设备,但许多开发人员已经开始在物联网项目中使用这个信用卡大小的电脑了。虽然完整的硬件规格不是开源的,但是大部分软件和文档是开源的。Raspbian是一种基于linux发行版Debian的流行树莓派操作系统。
24. RIOT
RIOT自称为“友好的物联网操作系统”。RIOT是FeuerWhere项目的分支,首次亮相在2013年。它的目的是既开发者友好又资源友好。它支持多种架构,包括MSP430、ARM7、Cortex-M0、Cortex-M3、Cortex-M4和标准的x86电脑。
25. Spark
Spark是一个分布式的,基于云计算的物联网操作系统。这家公司也提供易于使用的硬件开发套件和初始售价为39美元的相关产品(这个产品的硬件设计也是开源的)。它包括一个基于web的IDE,一个命令行界面,支持多国语言和用于不同物联网设备的库。它拥有一个非常活跃的用户社区,在上面可以获得许多文档和在线帮助。
监控显示
26. Freeboard
Freeboard的目标是让用户创建他们自己的用来监控物联网部署的仪表盘。该代码在GitHub上免费提供,或者说如果你让你的仪表盘公开,你可以尝试免费服务。对于那些想要保持自己的数据私有的人们,低价计划是可行的。示例仪表板展示如何用它们来跟踪空气质量、住宅电器、酿酒情况和实时环境条件。
打印
27. Exciting Printer(令人激动的打印机)
Exciting Printer提供了一个开源的套件,用于物联网打印试验。这使得建立自己的小的打印件和使用打印件来打印来自不同物联网设备获取到的信息成为可能。例如,它可以打印出一张每日提醒清单,天气报告等。并且,有趣的是,如果你想要联系项目拥有者,你可以在他们的办公室里用物联网打印件打印一张图片。
平台和集成工具
28. DeviceHive
该项目提供一个支持连接设备到物联网的机器对机器通信框架。它包括支持创建网络易于使用基于web的管理软件、应用安全规则和监控设备。该网站提供内置有DeviceHub的样本项目,而且它也有一个“游乐场”部分,允许用户使用DeviceHub在线去看它是如何工作的。
29. Devicehub.net
Devicehub.net描述自己为“物联网的开源支柱”。它是一个基于云的服务,存储物联网相关的数据,提供数据的可视化并允许用户在网页上控制物联网设备。开发者使用该服务创建跟踪健康信息的应用程序,监视孩子的位置,自动化家电,跟踪车辆数据,监测天气等等。
30. IoT Toolkit
这个项目背后的组织正使用各种工具工作,来集成多个物联网相关的传感器网络和协议。虽然主要的项目时一个智能对象应用程序,但该组织也工作在一个HTTP对Coap的情景下,一个带有嵌入式软件代理的应用程序框架等等。在硅谷,他们也发起了一个“遇见”组织,面向对物联网开发有情趣的人。
31. Mango(芒果)
“芒果”自称是“世界上最流行的开源的机器对机器软件”。基于网络的它支持多个平台。它的主要功能包括支持多协议和数据库、元点、用户自定义事件、导入/导出等等。
32. Nimbits
Nimbits可以存储和处理特定的数据类型,数据可以是时间标记的或地理标记的。作为服务的公用平台是可用的,或者你也可以下载这个软件并部署它到谷歌应用引擎、或亚马逊EC2上的J2EE服务器上、或一个树莓派上。它支持多种编程语言,包括Arduino、JavaScript、HTML或Nimbits.io Java库。
33. OpenRemote
OpenRemote为基于家居的爱好者、集成商、分销商和制造商提供了四种不同的集成工具。它支持十几种不同的现有协议,允许用户创建几乎任何类型的智能设备(他们能够想到和使用任何支持java的设备来控制它)。该平台是开源的,但在设计和产品开发过程中,该公司也出售各种支持、电子书等工具来进行帮助。
34. SiteWhere
这个项目提供了一个完整的平台,来管理物联网设备、收集数据并用外部系统进行数据整合。SiteWhere发行版本可以下载或在亚马逊云中使用。它还集成了多个大数据工具,包括MongoDB和ApacheHBase。
35. ThingSpeak
ThingSpeak可以处理HTTP请求,并存储和处理数据。这个开放数据平台的主要功能包括开放应用程序、实时数据收集、地理位置数据、数据处理和可视化、设备状态信息和插件。它可以集成多个硬件和软件平台,包括Arduino、树莓派、ioBridge/RealTime.io、Electic lmp、移动和网络应用、社会网络和MATLAB数据分析。除了开源版本,还提供托管服务。