12 Open Source IoT Platforms that you should know
The Internet of Things (IoT) has opened up a new, virtually inexhaustible source of technical innovations, which are equally valuable for a broad variety of industries. Applying smart connected devices, sensors, and gateways to control each part of the production process, manufacturing and infrastructure companies are dramatically increasing their operational efficiency. At the same time, the consumer tech market has exploded with abundance of smart products and spin-off cloud services that they brought to life.
With this context, now lets look at some of the notable open source projects in IoT arena!
Eclipse Kura is a platform for building IoT gateways. It enables remote management of gateways and provides APIs for writing and deploying your own IoT applications.
Kura runs on top of the Java Virtual Machine (JVM) and leverages OSGi, a dynamic component system for Java, to simplify the process of writing reusable software building blocks. Kura APIs offer easy access to the underlying hardware including serial ports, GPS, watchdog, USB, GPIOs, I2C, etc. It also offer OSGI bundle to simplify the management of network configurations, the communication with IoT servers, and the remote management of the gateway.
Eclipse Kura simplifies network configuration management, communication with servers, and remote gateway management with the help of OSGI bundles.
Kura offers following services:
- I/O Services
- Data Services
- Cloud Services
- Configuration Service
- Remote Management
- Watchdog Service
- Web administration interface
ThingSpeak is a IoT platform and API for data collection and analytics. It serves as a bridge connecting edge node devices, such as temperature and pressure sensors that collect data and data exploratory analysis software that analyzes the data.
In addition to storing and retrieving numeric and alphanumeric data, the ThingSpeak API allows numeric data processing which includes
- Time scaling
ThingSpeak has integrated support from the numerical computing software such as MATLAB from MathWorks.
Zetta is an API-first platform for the Internet of Things (IoT).
Zetta is built on Node.js. It combines, REST APIs, WebSockets, and reactive programming. Zetta server is capable of running in cloud, PC, and single-board computers.
Zetta can turn any device into an API. The Zetta servers communicates with microcontrollers like Arduino and Spark Core, giving every device a REST API both locally and in the cloud.
Key Features :
- Open source – Zetta is an open source Node.js based platform for the internet of things. It’s a complete toolkit for generating HTTP APIs for devices.
- Real time – Zetta exposes websocket endpoints to stream real time events out of the Zetta system. This paradigm of merging Hypermedia with websocket streaming is also known as Reactive Hypermedia.
- Protocol agnostic – Zetta can support almost all device protocols, and mediate them to HTTP.
- Persistent connections – Zetta can create persistent connections between servers to expose APIs in new and unique ways. You can peer a Zetta server in your home with a server in the cloud, and allow for access to devices on the open internet.
- App creation – Zetta allows you to write stateless applications that live in the server itself. You can query for devices, and wire up interactions between them in these applications. The apps run consistently whether or not your hub has internet connectivity.
- Query and notification – Zetta has a robust query system that allows you to not only search for devices, but also subscribe to websockets to be notified when new devices come online that fulfill the query. The queries have a SQL-like syntax that makes it easy to wrangle devices in the API, and Zetta itself.
- Consistent interfaces – Built from the ground up, Zetta solves specific problems around generating consistent interfaces for devices.
Open Hybrid is a platform for interacting with everyday objects. It amalgamates the benefits of a flexible augmented user interface with physical objects.
This platform allows you to:
- Create Augmented Reality content with HTML tools
- Create Augmented Reality without any knowledge about 3D Programming
- Connect the functionality of objects with a simple drag and drop paradigm
- Program your objects with Arduino
It superimposes the cellphone app directly onto the devices we want to operate in daily life with an interactive set of knobs and buttons.The interface of Open Hybrid is viewed through the lens of a tablet or smart mobile device.
Node-RED is a visual application for building IoT systems by wiring together hardware devices, APIs, and other services.
Node-RED is built on Node.js, taking full advantage of event-driven and non-blocking models, making it ideal to run on low-cost hardware such as Raspberry Pi and in cloud.
The flows created in Node-RED is stored using JSON, which can be easily imported and exported.
Wio Link is an ESP8266 SoC-based Wi-Fi development board. It has an associated platform that allows you to create IoT applications by virtualizing plug-n-play modules to RESTful APIs with mobile Apps. In other words, there is no need of hardware programming, breadboard, jumper wires, and soldering.
All you need to do is to install an App on your mobile phone, and you are can build a simple IoT project in 5 minutes.
- No Hardware Programming – Simple visual configuration via mobile APPs to replace the complex micro-controller programming.
- Strong support from the big family of open-source, plug and play Grove sensors and actuators.
- Drag and drop the sensor tags to certain Pins then you can visually set up the hardware.
- RESTful API resources let you work easily with the “visualized” sensors and actuators.
- All the hardware libraries are ready in the cloud for use and you can focus on applications development.
- You can interact with friends at Facebook, Twitter and Instagram through IFTTT channels.
Macchina.io is a toolkit for quickly building embedded applications for IoT. It run on Linux-based devices like the Raspberry Pi, Beaglebone, RED Brick or Galileo/Edison.
The Physical Web’s core value proposition is to enable users to have information at their fingertips no matter their physical context. This information can take the form of a simple static web page to a more robust web application. A few examples might include:
- A dog collar could allow passerby to call a service to find the owner.
- A bus that could alert users of its next stop.
- A city rent-a-bike service could enable users to sign up on the spot.
- A home appliance could offer an interactive tutorial.
- An industrial robot could display diagnostic information.
- A mall that could offer a map.
Each of these examples, taken by itself, is modestly useful. In the aggregate, they imply a vast “long tail” of interaction where anything can offer information and utility. The web enables the low friction and ephemerality to enable this kind of interaction on demand.
The physical web extends the capabilities of the web we know into our physical world. This creates an open ecosystem where smart devices can broadcast URLs into the physical world around them. Devices such as phone or tablet captures these URLs and users can see a list of URLs and their offerings. This makes user experience with smart objects much like links in a web browser and interaction with just a tap, eliminating the need to download an app.
Any object can be embedded with a Bluetooth Low Energy (BLE) beacon, which is a low- powered, battery-efficient device that broadcasts content over Bluetooth. Beacons use Eddystone protocol to broadcast the URLs.
It is a tiny operating system designed for IoT devices. At the heart of Ubuntu Core Snappy there is a super-secure, remotely upgradable, Linux application package known as “snaps.”
Ubuntu Core Snappy is transactional in nature; i.e., failures are automatically rolled back. This gives developers enough confidence to build new features into the system and fix issues without messing it up.
Ubuntu Core Snappy is compatible with desktops, servers, Intel Joule, Qualcomm Dragonboard, Samsung Artik, Raspberry Pi2, and Raspberry Pi3.
Ubuntu Core uses the same kernel, libraries and system software as classic Ubuntu. You can develop snaps on your Ubuntu PC just like any other application. The difference is that it’s been built for the Internet of Things.
IoTivity is a software framework which enables seamless connectivity between the devices. This project is sponsored by OIC, which is a group of technology companies, including Samsung and Intel.
IoTivity is designed for constrained devices and supports multiple operating systems. Server component of IoTivity is designed to run on small devices, however, the client applications can run on high-end devices like tablets, cell phones, televisions, etc.
It supports Bluetooth Low Energy using GATT, Bluetooth EDR (Enhanced Data Rate) using RFCOMM, Dual IPv4/v6 stack, and XMPP (remote access connectivity).
Graphically design your farms with just a drag and drop and the rest is taken care of by FarmBot. It is the first commercial version of this autonomous gardening idea.
FarmBot is an all-in-one kit with almost everything you need to get started, which includes
- All the metal frames
- Raspberry Pi 3 and others
Kaa is a multi-purpose middleware platform for the Internet of Things that allows building complete end-to-end IoT solutions, connected applications, and smart products. The Kaa platform provides an open, feature-rich toolkit for the IoT product development and thus dramatically reduces associated cost, risks, and time-to-market. For a quick start, Kaa offers a set of out-of-the-box enterprise-grade IoT features that can be easily plugged in and used to implement a large majority of the IoT use cases.
Kaa has a innovative concept of the endpoint profile which includes client-side and server-side components. Client-side endpoint profile has a set of data that the client components have exposed to Kaa application.
Server-side endpoint profile has a set of data that is controlled by Kaa server users via Admin UI or by other server apps via REST API. These profiles can be used to organize the endpoints into groups. These endpoint groups can be used, to send targeted notifications, etc.
Like this post? Don’t forget to share it!