After almost a year, a lot of research and testing different IoT devices we are now live! In this short post we will be introducing the I2T Hub, explain how it works and what we envision for the future.
A little background
As you might know, IOT2TANGLE is a project we envisioned while working with XDK2MAM. Back then, we understood that providing an easy to run open source codebase together with clear step by step instructions was a big enabler for those trying to validate simple IoT concepts: plug the XDK110, follow our steps, start retrieving measures and send them to the Tangle.
It didn’t take us long to realize that if we could provide the same solutions for multiple devices being used by IoT developers, we would simplify and speed up the roll out of projects based on these solutions.
Back then, we started integrating some IoT devices such as Raspberries and Ruuvitags with IOTA MAM. That was the start of I2T, but the features provided by MAM were not sufficient. Fortunately, today that has changed.
Integrate everything with the Tangle
I2T Hub is an open source repository in which we will provide all the necessary code to have very commonly used devices (Raspberry, BeagleBone, XDK110, CISS, ESP32, ESP8266, STM32, MSP430 and others) sending data to the Tangle.
For this, we have selected a set of sensors (the I2T Sensors Stack) that will be put to work on each board we provide code for.
The I2T Sensors Stack consists of:
- BME280 (Bosch) — Temperature, Humidity and Pressure sensor.
- MPU6050 (InvenSense-TDK) — Accelerometer and Gyroscope 6-axis.
- BH1750 (ROHM) — Ambient Light Sensor.
- A Generic Adjustable Sound Sensor with digital output (like KY038 Module).
Note that you won’t have to use them all if you don’t want to. Our code will detect which sensors you connected and work out of the box with them. Also, adding additional sensors that are currently not covered will be extremely easy to accomplish.
Of course, our extensive step by step guides will guide you through the sensor’s connection process, so there is no need to be an electric engineer at all! Just have them shipped to your home and get them sending data to the Tangle.
Have a look at the following diagram to get an idea of how easy it will be to connect our Sensors Stack.
I2T Universal Streams Gateway
We have developed a Streams Gateway that will run as a listener for every device sending data to it, as long as the I2T datasets structure is respected. Depending on the devices, you can decide whether you will run the Gateway on the device or at a Fog level. On devices with little capabilities, it will always be best to run the Streams Gateway at a Fog or Cloud level.
However, some devices such as the Raspberry Pi or Beagle Bone can be used as Edge/Fog devices and perform really well. If you take a look to some of our repositories you will find code that allows to gather the I2T Sensors Stack or the Sense Hat and run the Streams Gateway on the same device.
Having a Universal Streams Gateway is essential not only for our integrations but also to have members from the open source community use this solution. The I2T Hub will be built by our team, but we encourage anyone working on IoT integrations to add their work to our Hub. We will even assist those who need help making things work.
What’s in this release?
While we open the I2T Hub to the world, we are releasing some very interesting solutions that will make you understand how this project will work.
The I2T Streams Gateway is the software in charge of receiving the datasets sent by the sensors through various connectivity methods (HTTP, MQTT, BLE, LoRA), start a Streams channel and send data over this channel. For now, our release includes only HTTP but we are already working on MQTT and will continue adding other methods. It is important to point out that the communication layer is abstracted from the Streams engine. This allows us to handle different connectivity alternatives using the same core, thus making upcoming upgrades easy.
We are releasing our own I2T Streams Explorer PoC! Yes, you will be able to search for messages using the channel id and view them in something fancier than a console. This explorer runs on a dedicated full node, so it performs pretty nicely.
We are adding support for the XDK110 as one of the I2T devices and will continue supporting it together with the others. You can now use it with Streams.
Raspberry PI3/4 + I2T Sensors Stack
C code to detect our sensors stack in a plug and play fashion and get their data sent to the Tangle through our Streams Gateway.
Raspberry PI3/4 + Sense Hat
Python code to detect and configure the Sense Hat sensors and get their data sent to the Tangle through our Streams Gateway.
We are already working to integrate the NodeMCU8266 with the I2T Sensors Stack and will move forward device per device. As always, some other devices will arise, and we probably won’t resist and will integrate them as well.
It is extremely important to remark that we aim for a Hub built mostly by the community contributions. If you are out there working with some IoT device and have something of value, consider requesting us to add your integration to the I2T hub.
Many community and IF members helped us a lot on this release. Thanks to Huhn for his great work setting up a front-end for the I2T Explorer, to Alejandro Elustondo for reviewing the XDK110 C code on the latest Workbench release, to Sam Chen, Yu Wei Wu and Bernardo Araujo for always being available to discuss C/Rust issues (specifically on the Rust for embedded topic ;), to Kumar Anirudha for his advices on best practices, to Winston for his outstanding interviews and articles, to Herbert Bossaerts for his help correcting our texts and to the IEN Network for their continuous support.
We are IOTA!
See you on the next release!