
面向物联网的21个开源软件项目有哪些,物联网开源平台搭建
admin 07-26 04:41 166次浏览
2019独角兽企业重金招聘Python工程师标准
51CTOcom直译物联网市场呈现碎片化、无定形化、不断变化的特征,其性质通常只需关注互 *** 作性。 难怪开源在这方面不俗。 ——客户犹豫不决,害怕将物联网的未来寄托在可能难以定制或互联的专有平台上。
本文介绍了主要的开源软件项目,重点讨论了面向家庭和工业自动化的开源技术。 我们忽略了专注于垂直领域的物联网项目,如Automotive Grade Linux和Dronecode。 我们还忽略了面向互联网的开源 *** 作系统发行版,包括Brillo、Contiki、Mbed、OpenWrt、Ostro、Riot和Ubuntusnappping。这次,我们将智能
这里介绍的21个项目包括由Linuxfoundation管理的两个大型项目: Allseen(Alljoyn )和ocf (iotivity ),以及物联网传感器的端点和网关我还介绍了几个专门针对物联网生态系统特定领域的小项目。 我们曾介绍过更多的项目,但越来越难分清物联网软件和普通软件的区别。 从嵌入式环境到云,越来越多的项目都带有物联网元素。
您声称这21个项目都是开源的,但请确保完整的名称不在本文的范围内。 它们至少在生态系统的一个部分运行Linux,大多数都完全支持Linux,从开发环境到云/服务器、网关和传感器端点部件。 大多数组件都有可以在Linux开发板(如Raspberry Pi和BeagleBone )上运行的组件,大多数都支持Arduino。
物联网领域仍然有很多专有技术,特别是在自上而下的企业平台上。 但是,其中也提供了部分开放访问权限。 例如,威瑞森的ThingSpace针对4G智慧城市APP应用,拥有一套免费的开发API,支持开发板,尽管核心平台本身是独一无二的。 相似的是,亚马逊的AWS物联网工具包包括部分开放的设备SDK和开源入门工具包。
其他主要的专有平台包括苹果的HomeKit和微软的Azure物联网工具包。 在拥有230个成员的Thread Group中,该组织监督基于6LoWPAN的对等Thread网络协议。 Thread Group由谷歌的母公司Alphbet旗下的Nest设立,没有提供像AllSeen和OCF那样全面的开源框架。 但是,它与Brillo相关,也与Weave物联网通信协议相关。 5月,Nest发布了名为OpenThread的开源版Thread。
介绍21个面向物联网的开源软件项目。
AllseenAlliance(Alljoyn ) )。
由Allseenalliance(asa )监管的AllJoyn互 *** 作系统框架可能是市场上采用最广泛的开源物联网平台。
Bug Labs dweet和freeboard
bugglas是从制造基于模块化Linux的有bugh的硬件设备开始的,但很久以前就演变成了与硬件无关的企业级物联网平台。 Bug Labs提供“dweet”消息、警告系统和“freeboard”物联网设计APP。 dweet使用HAPI Web API和JSON来帮助发布和描述数据。 freeboard是一种拖放式工具,用于设计物联网仪表板和可视元素。
DeviceHive
DataArt基于AllJoyn的设备管理平台可以运行在许多云服务上,包括Azure、AWS、Apache Mesos和OpenStack。 DeviceHive专注于使用ElasticSearch、Apache Spark、Cassandra和Kafka,分析大数据。 有些网关组件可以在运行Ubuntu Snappy Core的任何设备上运行。 模块化网关软件与DeviceHive云软件和物联网协议配合使用,作为Snappy Core服务进行部署。
DSA
分布式服务架构(DSA )便于集中式设备的互 *** 作性、逻辑和APP应用。 DSA项目正在构建分布式服务链接(DSLinks )库,以支持协议转换以及与第三方数据源的数据集成。 DSA提供了一个可扩展的网络拓扑,其中包括多个DSLinks,用于在连接到分层代理分层结构的物理互联网边缘设备上运行。
EclipseIOT(Kura ) )。
Eclipse基金会的物联网主要围绕基于Java/OSGi的Kura API容器和聚合平台,支持在服务网上运行的m2m APP应用。 Kura基于Eurotech的Everywhere Cloud物联网框架往往与Apache Camel集成,后者是基于Java的基于规则的路由和中介引擎。 Eclipse物联网子项目包括Paho消息传递协议框架、面向轻量级服务器的Mosquitto MQTT体系结构和Eclipse SmartHome框架。 有些项目实现名为Californium的基于Java的受限APP应用协议(CoAP )。
Kaa
CyberVision支持的Kaa项目为云互联的大型物联网提供了可扩展的端到端物联网框架。
该平台包括一种支持REST的服务器功能,可用于服务、分析和数据管理,通常部署成由Apache Zookeeper协调的节点集群。Kaa的端点SDK支持Java、C++和C开发,负责处理客户机/服务器通信、验证、加密、持久性和数据编排。SDK包括针对特定服务器、支持GUI的模式,这些模式可转换成物联网物件绑定。模式治理语义,并抽象一组迥异设备的功能。
Macchinaio
Macchinaio提供了一种“支持Web、模块化、可扩展的”JavaScript和C++运行时环境,可用于开发在Linux开发板上运行的物联网网关应用程序。Macchinaio支持一系列广泛的传感器和连接技术,包括Tinkerforge bricklet、XBee ZB传感器、GPS/GNSS接收器、串行和GPIO联网设备以及方向感应器。
GE Predix
GE面向工业物联网的平台即服务(PaaS)软件基于Cloud Foundry。它增添了资产管理、设备安全、实时预测分析,并支持不同数据的采集、存储和访问。GE Predix是GE为内部运营而开发的,它已成为最成功的企业物联网平台之一,收入大约60亿美元。GE最近与HPE达成了合作伙伴关系,HPE将把Predix整合到自己的服务中。
Home Assistant
这个作为后起之秀的草根项目提供了一种面向Python的家居自动化方法。
Mainspring
M2MLabs的基于Java的框架针对远程监控、车队管理和智能电网等应用领域中的M2M通信。与许多物联网框架一样,Mainspring高度依赖REST Web服务,并提供了设备配置和建模工具。
Node-RED
这种面向Nodejs开发人员的可视化布线工具拥有基于浏览器的数据流编辑器,可用于设计物联网节点当中的数据流。然后,节点可以迅速部署成运行时环境,并使用JSON来存储和共享。端点可以在Linux开发板上运行,支持的云包括Docker、IBM Bluemix、AWS和Azure。
Open Connectivity Foundation(IoTivity)
英特尔和三星支持的开放互联联盟(OIC)组织和UPnP论坛组成的这个组织正在努力成为物联网方面领先的开源标准组织。OCF的开源IoTivity项目依赖充分利用的JSON和CoAP。
openHAB
OpenIoT
这款基于Java的OpenIoT中间件旨在使用一种公用云计算交付模式,为开放、大规模的物联网应用提供便利。除了表示物联网物件的本体、语义模型和标注外,该平台还包括传感器和传感器网络中间件。
OpenRemote
OpenRemote为家庭和楼宇自动化而设计,它以广泛支持众多智能设备和网络规范而出名,比如1-Wire、EnOcean、 xPL、Insteon和X10等规范。规则、脚本和事件都得到支持,还有基于云的设计工具,可用于用户界面、安装、配置、远程更新及诊断。
OpenThread
这是Nest最近从基于6LoWPAN的物联网Thread无线网络标准分离出来的开源项目,它还得到了ARM、Microchip旗下的Atmel、Dialog、高通和德州仪器的支持。OpenThread实现了所有Thread网络层,还实现了Thread的端点设备、路由器、Leader和边界路由器等角色。
Physical Web/Eddystone
谷歌的Physical Web让蓝牙低能耗(BLE)信标可以将URL发送到智能手机。它针对谷歌的Eddystone BLE信标经过了优化,这提供了除苹果的iBeacon之外的一种开放技术。其想法是,行人可以与任何具有BLE功能的支持性设备(比如汽车停放计时器、标牌或零售产品)联系。
PlatformIO
基于Python的PlatformIO包括IDE、项目生成器和基于Web的库管理器,它是为访问来自基于微控制器的Arduino和基于ARM Mbed的端点的数据设计的。它为200多种板卡提供了预先配置的设置,并与Eclipse、Qt Creator及其他IDE整合起来。
The Thing System
这种基于Nodejs的智能家居“监管”软件声称支持真正的自动化,而不是简单的通知。其自学习人工智能软件可处理许多协同式M2M *** 作,不需要由人干预。缺少云组件恰恰提供了更好的安全性、隐私性和控制性。
ThingSpeak
成立五年的ThingSpeak项目专注于传感器日志、位置跟踪、触发器及提醒以及分析。ThingSpeak用户可以使用用于物联网分析和可视化的MATLAB版本,不需要向Mathworks购买许可证。
Zetta
Zetta是一种面向服务器的物联网平台,利用Nodejs、REST和WebSockets构建而成,奉行基于数据流的“响应式编程”开发理念,用Siren超媒体API连接起来。设备被抽取成REST API,用云服务连接起来,这些服务包括可视化工具,并支持Splunk之类的机器分析工具。该平台可将Linux和Arduino开发板之类的端点与Heroku之类的云平台连接起来,以便构建地理分布式网络。
转载于:>
webgl和threejs是共生关系。两者的区别如下:
webgl: HTML5官方的Web 3D解决方案,并且以网页形式进行展示
threejs: 基于webgl的3D框架,threejs在它的基础上进行了进一步的封装和简化开发
所以threejs会继承webgl的所有优势,并且更快速地绘制3D立体图像,高效体现在:
iframe在线分享:无论是PC端还是手机端,只需要单击项目所在链接即可运行
支持浏览器查看:省去了传统游戏安装客户端的麻烦,同时保证了项目代码不被泄露
支持跨平台推广:微信平台兼容性的快速发展,进一步降低WebGL 20的推广成本
但常规的html+css+javascript基础远远不够,要想hold住threejs,需要了解专业的3d开发知识,这也是学习曲线较长的卡点。
thingjs在线平台推荐了解一下,也是基于Webgl的3D类库,这两年在国内兴起,对于前端开发转3D更加容易,因为它把3D专业概念这一过程都简化了,打包成类库,直接用javascript就可以调用材质、灯光、空间变换等概念。
学习曲线变短,这是相对于threejs的一个很大的优势,代码变少,开发门槛降低,出错率更低。
3D的未来一定是虚拟漫游技术,在消费者端以及企业端,都有发展前景,我所在的物联网行业,3D可视化主要用于远程管理和安全监控,想看项目案例可登录官网-资源中心查看。
物联网3D可视化行业是一个新兴领域,我们欢迎前端开发、UI设计师和对物联网3D可视化感兴趣的伙伴加入,thingjs已经有15万个开发者在平台上注册会员,开发3D物联网可视化项目。
智慧仓储可视化
智慧港口可视化
安防管理可视化
智慧消防可视化
智慧建筑可视化(腾讯“微翎”项目)
学物联网工程专业,因为学校教的都是理论知识,还是需要实 *** 一下,不过不要过于局限于专业,学校的知识和社会企业的要求是截然不同的,建议你还是亲自试试,比如注册thingjs开发平台,学会开发一个3D可视化项目,走完这个项目发布流程。
thingjs平台围绕物联网开发概念(地球、城市、建筑、房间、设备),提供顶层的js代码封装,只要会前端技术就可以入门,重要的是在软件实 *** 过程中,你会接触物联网开发概念、3D项目实 *** ,并认识一群做物联网技术项目的伙伴,说不定很快你就能够找到自己的就业方向了!
计算机专业:
1、信息安全专业——信息安全专业无疑是一个很棒的学科,想要学好这个专业建议数学基础比较好的学生报考。而且这个专业学好了确实是很吃香的,信息安全其实也就是大家觉得很神秘的黑客,不过这方向确实是国家比较重视的,而这个行业针对的客户几乎都是国有企业和政府事业单位以及大企业之类的,所以还是很有发展前途的。
2、计算机科学与技术——从就业难度出发的话,计算机科学与技术专业的就业难度是计算机专业中最低的,这个专业也是最容易找到工作的。虽然对口率不算很高,但这个专业的就业面很广也是出了名的,正因为如此,对计算机感兴趣的话是可以报考的,不管男生女生都是一样,这个专业出来当码农是最多的。
3、人工智能专业——计算机类专业中要说薪资和发展前景以及就业需求量来说,还是人工智能比较吃香。人工智能是近些年来非常热门的新工科专业,发展道路比较广,薪资待遇也很高。国内开设院校虽然多了起来,但大部分实力还是有的,但报考人工智能还是要了解一下报考院校才行。
4、软件工程——软件工程专业同样在计算机类专业中的位置很重,也是报考人数很多,就业质量很不错的学科。所以软件工程的关注度也不低,在计算机类专业中同样也是很热门,很值得报考的学科。不过软件工程专业有一定的难度,课业也比较重,但好好学,这个专业的回报率也是非常高的。
5、数据科学与大数据技术——大数据专业也是目前比较火热的新工科专业,毕业后前景很好。注重实践,对数学能力的要求非常高,所以数学不是很好的学生慎重报考。大数据专业的毕业生就业竞争力比较强,因为近些年的就业需求量比较大,所以对这类专业的就业率还是挺不错的。
首先,对于题主这个问题,我想做个比喻,
你去餐馆吃饭,可是你在纠结吃什么菜,问身边的人,大部分人给你说,大家都喜欢吃他家的葱爆肉,说的食材多么好,厨师多么拿手,可是你不吃葱,这道菜你依旧没办法享受。这个例子我想表达的意思就是,都应该是选择一个我们喜欢吃的食材,做出来的菜,才合胃口,就是吃饱了都还可以再吃两口的那种,如果听大家的,不和胃口,你就是吃两口就饱了,岂不是浪费掉了。
选择学习编程也是一个道理,都应该先去了解各个编程语言的信息,它的就业方向,它能做些什么,找到一个你比较感兴趣的方向,然后根据兴趣学习就好,这样既不会浪费时间成本,也可以让自己学习的动力更大。
首先我们先了解一下各个语言之间的层级关系黑马程序员
硬件层级:就是CPU、内存、显卡等,不属于软件范畴
汇编层级:可读性差,但是现在有编译器哈,所以市场汇编语言的工程师需求变量是很少的。高级语言需求量增大了。因为高级语言很好读;
系统层级:Windows、Linux、Mac、OS、Andriod、IOS等等。就是电脑软件都是跑在 *** 作系统上的。
应用层级:是更加偏重软件的程序的执行流程和功能的。开发起来体量非常大。
脚本层级:这里面不涉及楼主上面说的四种语言,我就是略说一下。脚本级语言的代码很直给的,代码速度快。但是虽然可读性强,但是编译器把脚本语言翻译成汇编语言的成本很大。
1Java(排名第一)
Java功能强大,简单易用。具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。由于其语言特性好,框架丰富,常常被应用于企业中,你可能经常会听到一些关于J2EE,Hibernate等的讨论。而且,现如今的安卓手机的标准编程语言也是Java。
总结
Java主要用于企业级开发, 安卓手机, 网页,游戏后台。
2C和C++(永不过时,越老越吃香)
理论上,只要硬件驱动和API合适,C和C++就可以用于任何开发,效率可以说是所有编程语言里最高的。排除你系统里没有C/C++编译器的情况。一般的系统里C一般都具备,但是可能有些是没有C++编译器的。
目前,C语言主要用来服务应用,开发底层模块和嵌入式。尽管C++也可以,但是由于其复杂性,程序员更多的是选择C语言来做。C++适合一些复杂但又要求高效率的,比如大型游戏等等。
总结
C主要用于服务应用,开发底层模块和嵌入式。
C++主要用于大型游戏开发和一些规模大、性能高的程序开发。
3JavaScript(凡是能用js编写的程序,终将使用js编写)
java VS JS
雷锋VS雷峰塔
外行人可能觉得Javascript听起来跟Java有关,实则没有任何联系。
毫无疑问,Javascript最广泛的是在web前端。通俗的说,当网站传送一些用各种“标签”代表的格式文档时后,Javascript负责把这些文档“转化”成一些客户端动态效果。除此之外,NodeJS还用于开发服务器端。
> nodejs是js的升级版,基于google v8引擎开发的后端语言,可以写服务器
总结
JavaScript主要做web前端以及服务器端开发。
4PHP(最好的语言,份额被go抢)
PHP是一种通用开源脚本语言,语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,,主要适用于Web开发领域,PHP是web后端的王者。
总结
PHP主要用于Web开发,后端较多,也可以用于整个web服务器,比如论坛引擎。
前端(网页waiter) ---请求--> 处理(服务器Server) ---》 返回给页面
5Python
Python语法简洁清晰,具有比较丰富和强大的库,而由于它可以把用其他语言制作的模块轻松地联结在一起,又称其为胶水语言。
IEEE发布2017年编程语言排行榜:Python位居首位。应用比较广泛,像信息安全、物联网开发、桌面应用、大数据处理都需要用python。
总结
Python主要用于服务器、物联网开发,大数据处理等。
6go
值得一学:
开发速度,执行效率,从高到低: c> go > python
go语言所有执行需要的库都打包在一个exe中,编译好的exe程序,直接在第三方系统就可以运行
GUI:图形化
GUI
难度,从难道易:c > go > pthon
> docker, k8s,区块链
推荐学习思路:
找到喜欢的应用领域--->明确学习目的--->找到重点学习内容--->看视频学习
有了一定的基础之后:
找到项目--->按照源码看思路--->渗入理解--->抄源码--->不看源码自己还原
在进阶之后的提升:
找到带源码的项目--->不要再抄源码而是在项目基础上实现自己的新增功能--->看书优化代码
因为不知道题主要学习什么编程语言,所以暂时思路就是这样的。当明确自己要学习的内容之后,可以自己做或者找到合适自己的学习路线图,按照自己的未来发展方向找到学习内容的重点开始学习。
1、Kaa
Kaa是一个灵活易用,功能齐全的中间件平台,用于建立端到端的IoT解决方案,连接应用和智能设备。它能够在连接的智能设备上执行有效通信、处理和互 *** 作。
它主要的特点是灵活的微服务,其他特点有:促进跨设备的互 *** 作性;执行实时设备控制,远程设备配置和结构;执行实时设备监控;管理无限数量的连接设备;收集和分析传感器数据等。
2、Zetta
Zetta基于Nodejs,是一个API的物联网平台,是为设备制作>
它的特点有:可以在云,PC或其他适合的开发板上运行;简单的界面和必要的编程以控制传感器,执行器和控制器;允许组装智能手机应用,设备应用和云应用;有利于数据密集型和实时应用开发等。
3、Arino(IDE)
Arino是一个简单好用的IoT平台,它通过一系列可以提供给交互式电子设备的硬件规格进行 *** 作。Arino还提供了完整的IoT程序包,包含许多支持行业级IoT应用程序开发项目的优秀示例和库。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)