Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Eclipse Vorto:Der nächste Schritt bei der Integration von IoT-Geräten

Alexander Edelmann

你好(Chinesisch für „Hallo“), ich lebe in Singapur und arbeite seit 2006 als Software-Ingenieur für Robert Bosch. Ich interessiere mich für IoT und glaube an offene Standards, die das erfolgreiche Zusammenspiel von Geräten über verschiedene IoT-Plattformen hinweg bestimmen . Deshalb beteilige ich mich aktiv am Projekt Eclipse IoT Vorto, das darauf abzielt, cloudbasierte Tools bereitzustellen, um IoT-Geräte einheitlich zu beschreiben und auf Basis offener IoT-Standards in verschiedene IoT-Plattformen zu integrieren. Abgesehen von meiner IoT-Geek-Seite genieße ich die asiatische Küche, die es mir ermöglicht, meine Essstäbchen-Fähigkeiten zu üben. Du kannst mich auch auf dem Platz finden, wie ich mit meinen Freunden ein paar Tennisbälle schlage.

Betrachtet man Beispiele wie Smart Factory und Home, verbessern vernetzte Geräte nicht nur die Kosten- und Ressourceneffizienz von Unternehmen, sondern erhöhen auch die Sicherheit und den Komfort des Lebens. Mit der schieren Anzahl von Geräte- und Sensorherstellern tauchen neue Herausforderungen für Hersteller, Plattformen und Integratoren auf.

Das Hauptproblem besteht darin, sicherzustellen, dass verbundene Geräte nahtlos kommunizieren können mit Cloud-Plattformen, unabhängig von unterschiedlichen Herstellern, Technologien und Systemen. In der Vergangenheit haben Entwickler IoT-Lösungen entwickelt, die speziell für eine begrenzte Anzahl von Geräten mit derselben API entwickelt wurden. Bei einem Wechsel des Gerätetyps oder einem Geräteherstellerwechsel erforderte die Geräteintegration ein zeitaufwendiges Refactoring, um mit dem neuen Gerät zu arbeiten.

Stellen Sie sich vor, Sie planen die Integration einer IoT-Lösung für die Bestandsverfolgung in einem großen Ackerbaubetrieb. Sie möchten nicht nur den aktuellen Standort im Auge behalten, sondern auch Temperatur und Beschleunigung der Traktoren, Pflüge und anderer landwirtschaftlicher Geräte.

Bei der Auswahl der richtigen IoT-Geräte tauchen zwei Fragen auf:

Hier kommt das Open Source Eclipse Vorto ins Spiel.

Einführung von Eclipse Vorto

Quelle:Eclipse Vorto

Eclipse Vorto bietet eine Abstraktionsschicht namens Vorto Information Model und eine domänenspezifische Sprache (DSL), die alle Metainformationen wie Eigenschaften und Funktionen eines verbundenen Geräts beschreibt.

Durch das Hinzufügen einer Abstraktionsebene schaffen wir eine konsistente Schnittstelle, die es uns ermöglicht, verschiedene Gerätetypen mit ähnlicher Funktionalität zu verwenden.

Das Eclipse-Vorto-Projekt basiert auf vier Hauptkomponenten:

Eclipse Vorto ist vollständig Open Source und wurde innerhalb der Eclipse IoT Working Group unter der Leitung von Bosch entwickelt.

Tim Großmann

Als deutscher Informatikstudent habe ich in den letzten anderthalb Jahren Einsätze in 3 verschiedenen Abteilungen bei Bosch übernommen. Ich interessiere mich besonders für Open Source- und EduTech-Technologien. Ich glaube, dass das IoT und die Automatisierung ein enormes Potenzial haben, die Art und Weise, wie Menschen leben, arbeiten und das Leben genießen, sowohl zu verändern als auch zu verbessern. Als leidenschaftlicher Lerner und Entwickler bin ich immer daran interessiert, neue Fähigkeiten und Tools zu erlernen. Neben meiner regulären Arbeit habe ich den weltweit größten kostenlosen Open-Source-Automatisierungsbot für Instagram aufgebaut und betreue ihn jetzt. In meiner Freizeit genieße ich Kletterausflüge mit Freunden und Reisen in fremde Länder.

Eclipse Vorto in der Praxis

Schauen wir uns ein konkreteres Beispiel an, um diese Abstraktion besser zu verstehen. Stellen Sie sich ein Landwirtschaftsunternehmen vor, das den Überblick über die Fahrzeuge und Vermögenswerte behalten möchte, die zum Einsammeln der Weizenernten verwendet werden. Auf größeren Farmen mit mehreren Erntemaschinen, Traktoren und anderen Anlagen möchten wir die Nutzungsdauer jedes Fahrzeugs und seinen Standortverlauf kennen.

Durch die Kombination dieser Art von Informationen mit Temperatur- und Feuchtigkeitswerten können wir einen intelligenten Wartungsplan für alle Fahrzeuge und Anlagen ermöglichen. Der Standort jedes Fahrzeugs und Vermögenswerts bietet uns auch Anti-Diebstahl-Funktionen.

Eine der Lösungen, die diese Art von Funktionalität bietet, ist die Asset Tracing Solution (TRACI) von Bosch.

Quelle:Bosch.IO

Um ein digitales Modell dieses speziellen Geräts zu erstellen, benötigen wir einige grundlegende Bausteine, die verwendet werden, um das TRACI-Informationsmodell zusammenzustellen.

Eine der wichtigsten Komponenten des Ortungsgeräts ist die Batterie. Um den Batteriezustand jedes Geräts überwachen zu können, können wir den Zustand in einem sogenannten Funktionsblock beschreiben.

Ein Funktionsblock ist ein generisches Modell, das später in anderen Geräte-Informationsmodellen wiederverwendet werden kann.

Wir können einen so definieren:

Namespace org.eclipse.vorto Version 1.0.0 Anzeigename "Batterie" Beschreibung "Funktionsblock für Batterie" Kategorie Peripherie mit org.eclipse.vorto.Voltage; 1.0.0 Funktionsblock Batterie erweitert org.eclipse.vorto.Voltage { Status { obligatorisch Restkapazität als Float } }

Hier beschreiben wir einen Funktionsblock das abstrakt eine Entität beschreibt, die einen obligatorischen numerischen Wert zwischen 0 und 100 enthält.

Da unser Status ein Prozentwert ist, können wir dies weiter abstrahieren, um die einzelnen Komponenten wiederverwendbar zu machen. Daher erstellen wir einen sogenannten Datentyp . Hier können wir eine Entität (in diesem Fall Prozent) definieren, die die gleichen Einschränkungen hat, ein numerischer Wert zwischen 0 und 100 zu sein.

Namespace org.eclipse.vorto.types Version 1.0.0 Anzeigename "Prozentsatz" Beschreibung "Datentyp für Prozent" Kategorie Einheiten Entität Prozentsatz { obligatorischer Wert als Float }

Sobald wir diesen Datentyp erstellt haben, kann er importiert und in unserem Battery Function Block verwendet werden und ersetzt die konkrete Implementierung.

Namespace org.eclipse.vorto Version 1.0.0 Anzeigename "Batterie" Beschreibung "Funktionsblock für Batterie" Kategorie Peripherie mit org.eclipse.vorto.types.Percentage; 1.0.0 mit org.eclipse.vorto.Voltage; 1.0.0 Funktionsblock Batterie erweitert org.eclipse.vorto.Voltage { Status { obligatorische Restkapazität in Prozent } }

Wir können diesen Vorgang für alle in unserem TRACI-Gerät integrierten Sensoren wie den Temperatursensor wiederholen , GPS , Beschleunigung , und Konnektivitätsmodule . Alle diese Funktionsblöcke können dann in einem Vorto-Informationsmodell zusammengestellt werden die dann als Ausgangspunkt für die Codegeneratoren verwendet werden kann, um Code-Stubs für die Geräteintegration für Sie zu erstellen.

Namensraum com.bosch.ps Version 1.0.0 Anzeigename "Traci" Beschreibung "Informationsmodell für Traci" unter Verwendung von org.eclipse.vorto.Geolocation; 1.0.0 Verwenden von org.eclipse.vorto.Acceleration; 1.0.0 unter Verwendung von org.eclipse.vorto.MagneticStrength; 1.0.0 unter Verwendung von org.eclipse.vorto.Temperature; 1.0.0 mit org.eclipse.vorto.Battery; 1.0.0 Verwenden von org.eclipse.vorto.Connectivity; 1.0.0 Infomodel Traci { Funktionsblöcke { Batterie als Batterie Standort als Geolocation Beschleunigung als Beschleunigung Temperatur als Temperatur magnetischeStärke als magnetischeStärke Bluetooth-Konnektivität als Konnektivität lorawanConnectivity als Connectivity } }

Okay, wofür machen wir das alles?

Nehmen wir an, wir möchten jetzt Geräte anderer Hersteller mit ähnlichen Funktionen wie das TRACI-Gerät verwenden. Wir haben bereits eine IoT-Lösung entwickelt, die das TRACI-Gerät integriert, und es wäre sehr mühsam, unser System so umzugestalten, dass es mit Geräten verschiedener Hersteller funktioniert.

Da wir unsere Funktionsblöcke und Datentypen bereits definiert haben, können wir ein neues Informationsmodell für unser neues Gerät definieren, das dieselben Funktionsblöcke wie das TRACI-Modell verwendet.

Vergleichen wir das TRACI-Modell mit einem Produkt mit vergleichbarer Funktionalität, dem NL-AT2VS von NimbeLink.

Namespace com.nimbelink.nl Version 1.0.0 Anzeigename "NLAT2VS" Beschreibung "Informationsmodell für NLAT2VS" unter Verwendung von org.eclipse.vorto.Geolocation; 1.0.0 mit org.eclipse.vorto.Battery; 1.0.0 Verwenden von org.eclipse.vorto.Connectivity; 1.0.0 unter Verwendung von org.eclipse.vorto.Temperature; 1.0.0 mit org.eclipse.vorto.Humidity; 1.0.0 Verwenden von org.eclipse.vorto.Acceleration; 1.0.0 Infomodell NLAT2VS { Funktionsblöcke { Batterie als Batterie Beschleunigung als Beschleunigung Standort als Geolocation Temperatur als Temperatur Luftfeuchtigkeit als Luftfeuchtigkeit wifiConnectivity als Connectivity zellularConnectivity als Connectivity } }

Wir können sehen, dass sogar die Konnektivitätsmodule in diesem Modell unterschiedlich sind, aber immer noch den abstrakten Connectivity Function Block verwenden. Die Abstraktion ermöglicht es uns, verschiedene Geräte mit ähnlicher Funktionalität ohne großen Integrationsaufwand zu ersetzen oder zu kombinieren.

Wer sollte Eclipse Vorto verwenden?

Angesichts der Vielfalt der Unternehmen, die an der Herstellung, Integration und Entwicklung von IoT-Lösungen beteiligt sind, werden die Unternehmen am meisten von Eclipse Vorto profitieren:

Gerätehersteller

Eclipse Vorto kann Geräteherstellern helfen, die Interoperabilität mit anderen Geräten in bestehenden Infrastrukturen zu ermöglichen. Flexibilität ist für Kunden ein großer Vorteil bei der Auswahl der zu integrierenden Geräte.

Durch die Verwendung technologieunabhängiger Informationsmodelle vermeiden Gerätehersteller den Aufwand, Implementierungswege für alle Arten von Zielplattformen zu generieren. Dies spart Geld und Zeit durch die Veröffentlichung von Informationsmodellen, die mit Hilfe der Codegeneratoren in konkrete Integrationen umgewandelt werden können.

Der große Vorteil der Verwendung von Eclipse Vorto besteht darin, dass Weiterentwicklungen der Geräteprotokollschicht von der Gerätecontrollerlogik entkoppelt sind.

Quelle:Eclipse Vorto

IoT-Plattformen

IoT-Plattformen müssen unterschiedlichste IoT-Geräte verschiedenster Hersteller verbinden und die unterschiedlichsten Protokolle und Formate unterstützen. Durch die Verwendung der Codegeneratoren von Eclipse Vorto kann dieser Aufwand durch teilweise oder vollständige Quellcodegenerierung drastisch reduziert werden.

Darüber hinaus fungiert das Vorto-Repository als Laufzeit-Repository, das es Plattformen ermöglicht, Gerätefunktionen als JSON-Schema abzurufen. Diese Schemata können dann im digitalen Zwilling interpretiert und validiert oder zum Bootstrap von Konnektoren für die Kommunikation verwendet werden.

Auch wenn dies einen erhöhten anfänglichen Entwicklungsaufwand bedeutet, wird es sich im Laufe der Zeit angesichts der großen Anzahl von Geräten und des Wachstums des IoT auszahlen.

Lösungsentwickler

Bei der Integration vernetzter Geräte und intelligenter Sensoren in IoT-Lösungen müssen Entwickler eine Vielzahl unterschiedlicher Geräte-APIs abdecken, was zu einem enormen Codierungsaufwand führt. Eclipse Vorto kann den Entwicklungsaufwand reduzieren, indem Codegeneratoren bereitgestellt werden, die generische Code-Stubs bereitstellen, die die Integration von Geräten vereinfachen.

Quelle:Eclipse Vorto

Ein Blick in die Zukunft des IoT

Durch die Gewährleistung der Interoperabilität und die Harmonisierung der Geräteschnittstelle hat Eclipse Vorto das Potenzial, die Art und Weise zu verändern, wie Gerätehersteller, IoT-Plattformbetreiber und Anwendungsentwickler mit IoT-Geräten arbeiten.

Es kann den Entwicklungsaufwand für Hersteller reduzieren und die Geräteintegration für Plattformanbieter und Integratoren erleichtern und gleichzeitig viele der genannten Herausforderungen der IoT-Entwicklung bewältigen.

Wenn Sie mehr über das Projekt erfahren möchten, schauen Sie sich das GitHub-Repository an und geben Sie ihm einen Stern.

Sie können es auch versuchen und verwenden Sie die ausgeklügelten Tutorials zur Geräteerstellung, -integration und -visualisierung im Vorto Repository.


Internet der Dinge-Technologie

  1. X.509-basierte Geräteauthentifizierung in Eclipse Hono
  2. Smart Data:Die nächste Grenze im IoT
  3. Die wachsende Bedrohung durch Wi-Fi-fähiges IoT
  4. Glauben Sie dem Hype nicht:Warum das IoT ins Stocken gerät
  5. Das IoT verbinden – Die Schmalband-Chance
  6. Wir legen den Grundstein für das IoT im Unternehmen
  7. 5 Herausforderungen, vor denen das Internet der Dinge noch steht
  8. Die Rolle des IoT im Gesundheitswesen während Covid-19
  9. Warum die Direktverbindung die nächste Phase des industriellen IoT ist
  10. Aufdecken des blinden Flecks des IoT in einer postpandemischen Welt