天天看點

面向物聯網的 23 個開源軟體項目

歡迎加入ThingsBoard技術交流群

這裡可複制Q群号:69998183

關注“雲騰五洲”:擷取二開ThingsBoard物聯網平台示範

TK物聯網平台:​​ThingsKit物聯網平台​​

物聯網市場呈現碎片化、無定形、不斷變化的特點,其性質需要不僅僅像平常那樣關注互操作性。開源在這方面表現不俗也就不足為奇了——客戶猶豫不決,不敢将物聯網的未來寄托在一種可能銷聲匿迹或變得難以定制、互聯的專有平台上。
![](https://cdn.iotschool.com/photo/2020/848353b9-838f-40c6-872c-e676a75936c0.png?x-oss-process=image/resize,w_1920)

在本文中介紹了主要的開源軟體項目,專注于面向家庭和工業自動化的開源技術。我忽略了側重垂直領域的與物聯網有關的項目,比如Automotive Grade Linux和Dronecode,還忽視了面向網際網路的開源作業系統發行版,比如Thingsboard、Brillo、Contiki、Mbed、OpenWrt、Ostro、Riot、Ubuntu Snappy Core、UCLinux和Zephyr。下次我将介紹硬體項目:從智能家庭集線器,到面向物聯網的開發闆,不一而足。

下面介紹的23個項目包括Linux基金會管理的兩大項目:AllSeen(AllJoyn)和OCF(IoTivity),以及将物聯網傳感器端點與網關和雲服務連接配接起來的衆多端到端架構。我還介紹了一小批針對物聯網生态系統特定領域的小型項目。我們原本介紹更多的項目,但是越來越難厘清物聯網軟體與普通軟體之間的差別。從嵌入式環境到雲,越來越多的項目都帶有物聯網元素。

這23個項目都聲稱是開源,不過確定它們完全名至實歸不在本文的範圍之内。它們都在生态系統中的至少一個部分上運作Linux,大多數全面支援Linux,從開發環境到雲/伺服器、網關和傳感器端點部件。絕大多數都有可以在Linux開發闆(比如Raspberry Pi和BeagleBone)上運作的元件,許多支援Arduino。

物聯網領域仍有許多專有技術,尤其是在自上而下的企業平台中。不過,連其中一些都提供部分開放的通路權。比如說,韋裡遜的ThingSpace針對4G智慧城市應用,它有一套免費的開發API支援開發闆,盡管核心平台本身是專有的。有點類似的是,亞馬遜的AWS物聯網套件有一套局部開放的裝置SDK和開源入門套件。

其他主要的專有平台包括蘋果的HomeKit和微軟的Azure物聯網套件。然後是擁有230個成員的Thread Group,該組織監管基于6LoWPAN的對等Thread網絡協定。Thread Group由谷歌的母公司Alphbet旗下的Nest設立,并不提供像AllSeen和OCF那樣的一套全面的開源架構。不過,它與Brillo有關聯,與Weave物聯網通信協定也有關聯。5月份,Nest釋出了一款名為OpenThread的開源版Thread(下面有介紹)。

下面是面向物聯網的23個開源軟體項目:

### Thingsboard

Thingsboard是一個開源的物聯網平台,在中文網絡上内容不多。雖然聲稱緻力于提供開箱即用的産品快速開發和管理服務,但其使用者手冊的可讀性還待提高。作為一個開源平台,使用者既可以使用其官方demo伺服器,也可以在本地(甚至是一塊樹莓派)運作

### AllSeen Alliance(AllJoyn)

由AllSeen聯盟(ASA)監管的AllJoyn互作業系統架構可能是市面上采用最廣泛的開源物聯網平台。

### Bug Labs dweet和freeboard

Bug Labs以生産子產品化、基于Linux的Bug硬體裝置起家,但很早以前它就演變成了與硬體無關的企業級物聯網平台。Bug Labs提供一種“dweet”消息及提醒系統和一款“freeboard”物聯網設計應用軟體。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)便于去中心化的裝置互通、邏輯和應用程式。DSA項目正在建構分布式服務鍊路(DSLinks)庫,以便支援協定轉換、與第三方資料源整合資料。DSA提供一種可擴充的網絡拓撲結構,這種拓撲結構包括在連接配接到分層代理層次體系的物聯網邊緣裝置上運作的多個DSLinks。

### Eclipse IoT(Kura)

Eclipse基金會的物聯網工作圍繞其基于Java/OSGi的Kura API容器和聚合平台,支援在服務網關上運作的M2M應用。Kura基于Eurotech的Everywhere Cloud物聯網架構,常常與Apache Camel整合起來,後者是一種基于Java的、基于規則的路由和中介引擎。Eclipse物聯網子項目包括Paho消息傳送協定架構、面向輕量級伺服器的Mosquitto MQTT架構和Eclipse SmartHome架構。還有一個基于Java、實作受限制的應用協定(CoAP)的項目,名為Californium。

### Kaa

CyberVision支援的Kaa項目提供了一種可擴充的端到端物聯網架構,它為雲互聯的龐大物聯網網絡而設計。該平台包括一種支援REST的伺服器功能,可用于服務、分析和資料管理,通常部署成由Apache Zookeeper協調的節點叢集。Kaa的端點SDK支援Java、C++和C開發,負責處理客戶機/伺服器通信、驗證、加密、持久性和資料編排。SDK包括針對特定伺服器、支援GUI的模式,這些模式可轉換成物聯網物件綁定。模式治理語義,并抽象一組迥異裝置的功能。

### Macchina.io

Macchina.io提供了一種“支援Web、子產品化、可擴充的”JavaScript和C++運作時環境,可用于開發在Linux開發闆上運作的物聯網網關應用程式。Macchina.io支援一系列廣泛的傳感器和連接配接技術,包括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

這種面向Node.js開發人員的可視化布線工具擁有基于浏覽器的資料流編輯器,可用于設計物聯網節點當中的資料流。然後,節點可以迅速部署成運作時環境,并使用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

這種基于Node.js的智能家居“監管”軟體聲稱支援真正的自動化,而不是簡單的通知。其自學習人工智能軟體可處理許多協同式M2M操作,不需要由人幹預。缺少雲元件恰恰提供了更好的安全性、隐私性和控制性。

### ThingSpeak

成立五年的ThingSpeak項目專注于傳感器日志、位置跟蹤、觸發器及提醒以及分析。ThingSpeak使用者可以使用用于物聯網分析和可視化的MATLAB版本,不需要向Mathworks購買許可證。

### Zetta

Zetta是一種面向伺服器的物聯網平台,利用Node.js、REST和WebSockets建構而成,奉行基于資料流的“響應式程式設計”開發理念,用Siren超媒體API連接配接起來。裝置被抽取成REST API,用雲服務連接配接起來,這些服務包括可視化工具,并支援Splunk之類的機器分析工具。該平台可将Linux和Arduino開發闆之類的端點與Heroku之類的雲平台連接配接起來,以便建構地理分布式網絡。      

繼續閱讀