Introducing the Thingsboard Open Source IoT Gateway
Thingsboard is hard at work on a new open source gateway that should allow devs from hobbyists to IIoT specialists to connect to devices regardless of protocol.
Join the DZone community and get the full member experience.
Join For FreeThere are numerous IoT protocols and data formats. Some of them are more popular, like MQTT and JSON, and some are quite rare. Many IoT platforms provide support for the most popular protocols and data formats out-of-the-box, but it is hard to support all of them in a single solution. With the growth of the Thingsboard open-source community, we have started receiving requests about supporting IIoT protocols, like OPC-UA and some specific data formats.
We have decided to implement this functionality as a separate open-source project that will allow us to bridge the platform API to literally any device. The data flow diagram is attached, and we will describe it in detail below.
The IoT Gateway is built on top of Java, but is different from similar projects that leverage OSGi technology. The idea is distantly similar to a microservices architecture. After all, there are other programming languages (C, C++, Python, Javascript, Go, etc.) that may be more suitable for application development for target IoT devices, especially when we are talking about language APIs and existing libraries to work with serial ports, GPIOs, I2C, and new modules and sensors that are released every day.
The Gateway provides simple integration APIs and encapsulates common Thingsboard-related tasks: device provisioning, local data persistence and delivery, message converters/adapters, and more. As an application developer, you are able to choose Python, Go, C/C++, and other languages and connect to Thingsboard Gateway through external MQTT broker or OPC-UA server. Devices that support other protocols may be connected to gateway by implementing custom extensions.
Thingsboard IoT Gateway provides following features:
OPC-UA extension to collect data from devices that are connected to OPC-UA servers.
MQTT extension to collect data that is published to external MQTT brokers.
Persistence of collected data to guarantee data delivery in case of network and hardware failures.
Automatic reconnecting to Thingsboard clusters.
Simple yet powerful mapping of incoming data and messages in a unified format.
The initial Gateway release goal is to bring Thingsboard data collection feature to OPC-UA- and MQTT-enabled devices. The Gateway project is currently in the active development stage, and you should expect major feature releases in next two months. Our next goal is to bridge all other Thingsboard features and allow you to configure and manage IoT devices through the gateway using Thingsboard widgets and dashboards.
Links:
Opinions expressed by DZone contributors are their own.
Comments