This article gives an overview of top 10 open source tools for IoT application development. These tools represent a great entry point into this exciting field, which hides a tremendous amount of opportunities for those who are not afraid to learn new things and challenge the current way of life.
1. Arduino Ethernet ShieldThe popular open-source electronic prototyping platform used in conjunction with Arduino Ethernet Shield is the perfect hardware combination for simple IoT projects and even more sophisticated applications. All that users have to do in order to control their creations from anywhere in the world is to connect the Arduino board to the Internet with an RJ45 cable and complete a basic setup procedure.
Compared to some heavyweight representatives of the IoT-ready single-board computers, such as the Raspberry Pi or BeagleBone, Arduino is very inexpensive, available virtually anywhere in the world, and used by thousands of enthusiastic users, who love to share their creations with others. Documentation is plentiful and so is the inspiration to turn this wonderful device into something of a great use.
2. Eclipse IoT ProjectEclipse IoT strives to simplify IoT development by implementing IoT standards like MQTT, CoAP, LWM2M, and oneM2M. MQTT is a machine-to-machine (M2M)/”Internet of Things” connectivity protocol and the base for the Eclipse Paho project, which provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existing, and emerging applications for M2M and IoT.
CoAP stands for The Constrained Application Protocol, and it is a specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things. Lightweight M2M (LWM2M) and oneM2M were created to ensure the most efficient deployment of M2M communications systems.
Together, these standards and tools represent a comprehensive toolkit for any Java programmer who would like to branch out from his or her daily routine.
3. OpenHABThis vendor- and hardware-neutral open source automation software is designed to let smart devices talk to one another and allow users to add new features to them. openHAB is developed in Java, which makes it possible to run it on any device that is capable of running a JVM. It comes with different web-based UIs as well as native UIs for iOS and Android, and provides APIs for being integrated into other systems.
Creators of OpenHAB recognized that proprietary smart devices quickly become obsolete, incompatible, and unable to meet security requirements of modern-day users. Their solution leverages data from all available subsystems and integrates them into one cohesive package. The tool received a People’s Choice Winner at the Postscapes IoT Awards 2014/15 and the Duke’s Choice Award 2013.
4. RIOT OSRIOT is an open-source operating system developed by a grassroots community to power various Internet of Things solution. When compared to regular Linux or other IoT operating systems, such as Tiny OS and Contiki, RIOT supports both C and C++, comes with multi-threading with ultra-low threading overhead (<25 bytes per thread), real-time capability due to ultra-low interrupt latency (~50 clock cycles) and priority-based scheduling, and excellent modularity.
There’s even a native port of RIOT that allows developers who are not familiar with embedded programming to run RIOT inside a process on Linux or Mac OS. All code is hosted on GitHub and the provided wiki contains plenty of useful information to get started with RIOT.
5. Thinger.ioThinger.io provides a ready to go scalable cloud infrastructure that can be controlled with their easy to use admin console, or integrated into a business logic with REST API. The entire project is open-source and completely hardware agnostic. The ready-to-use scalable cloud infrastructure allows for easy deployment of your own infrastructure, both in local machines or in the cloud.
As such, Thinger.io essentially eliminates the need to select a compatible vendor hardware and use bloated software to accomplish very simple things.
6. OpenIoTOpenIoT is a joint effort of prominent open source contributors who want to provide support for cloud-based and utility-based sensing services. This middleware will support flexible configuration and deployment of algorithms for collection, and filtering information streams stemming from the internet-connected objects, while at the same time generating and processing important business/applications events, according to OpenIoT’s GitHub page.
The entire architecture consists of three main planes: the Utility/Application Plane, the Virtualized Plane and the Physical Plane. Each plane includes several elements, such as the Request Definition, Request Presentation and Configuration and Monitoring components. OpenIoT comes with a built-in Scheduler, Cloud Data Storage, and even Service Delivery & Utility Manager.
7. IoTSySOpenIoT is not the only integration middleware for the Internet of Things in existence; there is also IoTSyS, which provides a communication stack for embedded devices based on IPv6, Web services and oBIX to provide interoperable interfaces for smart objects. The main objective of IoTSyS is to leverage the power of existing automation systems and sensors and use it easily create and deploy a new solution, while addressing security, discovery, and scalability issues.
8. FreeboardNot to be mistaken with the unique skateboard, Freeboard is an elegant dashboard for the IoT. It allows anyone to quickly build real-time, interactive dashboards and visualizations using the intuitive drag & drop interface. The dashboard stands on top of a secure, high-performance, enterprise-class cloud system and the entire project is open-source and publically hosted on GitHub.
It features seamless integration with dweet.io, or access any web-based API, the ability to select from a growing list of included widgets, and instant sharing via email, SMS, and social networks. Some notable examples include The Heising-330, which is a modern, internet-connected, and fully automated continuous still, built by and for the craft distillery and a prototype of air quality monitoring dashboard.
9. Interstacks“Interstacks are snap-together electronic blocks and Stackbuilder visual authoring tool. In minutes, invent any smart devices you can imagine. Then connect them to each other and the internet. Interstacks empowers you to become master of your internet of things universe, according to the official website.
Getting started with Interstacks is made simple thanks to the modular approach and desktop applications for Windows and Mac built around the Phyton programming language. The holistic approach to prototyping allows users to configure their system of devices and internet services, build macros, and write rules to automate systems. Maya Design created Interstacks & Stackbuilder products with decades of user interface / user experience (UI/UX – HCD) expertise guiding their innovative and intuitive approach. The Stackbuilder interface is a visual authoring tool (drag-and-drop) that enables the user to build, test and tweak their stacks in a very intuitive fashion. The concept of rapid prototyping lives at the core of this product line.
10. ZettaBuilt on Node.js, Zetta is an open source platform for creating Internet of Things servers that run across geo-distributed computers and the cloud. Zetta achieves this by combining REST APIs, WebSockets and reactive programming.
Once installed, Zetta servers can run everywhere and have no problems communicating with Arduino, Spark Core, and other microcontrollers. Coding is simplified by a series of helpful abstractions that allow developers to focus on the big picture and not get too bogged down with insignificant details.