A Quick Look at Open Source Tools and Services for IoT

3
5369

IoT is gaining ground in our lives at a very rapid rate. This makes the study of IoT and its related aspects very important. This article presents open source IoT tools and services in a nutshell.

The term ‘open source’ is primarily related to software in which the source code is freely accessible to users other than the developer —for examination, use and modification or expansion.

The growth of the Internet of Things (IoT) is based on the continuous developments in the fields of microelectronics, IT and communications, and it is evident this trend will continue. Openness has been the most noted driver of the IoT revolution. It has helped create many interesting applications, ranging from automated kettles to data analysers.

As IoT comprises connected objects like smart appliances, machinery, wheels, etc, the user experience with it relies on the physical structure, its specifications and the way it’s been applied.

What drives open source

There are three main elements behind the growth of the open source movement.

  • Beneficiaries: They wish to use a wide category of consumer technologies and not just those from a particular vendor.
  • IoT service providers: They have developed various technologies, paving the way to versatile compatibility.
  • Developers: They develop openly accessible code supporting a range of devices, platforms and technologies, rather than being locked with just one vendor.
Figure 1: Internet protocol vs IoT protocol

What follows is a bird’s eye view of the various open source tools and services that will help in the development of IoT.Open source IoT development tools

Arduino is an open source prototyping platform with both software and hardware offering ease of use. It is also interactive, with a simple programming language and an IDE.

Kinoma is a prototyping hardware platform from Marvell Semiconductor, which controls over three open source projects, namely, Kinoma Create, a DIY construction kit; Kinoma Studio, a development environment; and Kinoma Connect, a free app for Android and iOS, connecting IoT devices and mobile devices.

The Eclipse project sponsors numerous projects on IoT, including application services and frameworks, open source implementation of IoT protocols, and Lua development tools.

M2M Labs is another open source framework for building M2M applications such as smart grids, fleet management, remote monitoring, etc. Its capabilities include flexible device modelling, device configuration, device and application communication, data validation and normalisation, prolonged data storage and recovery. It is based on the Apache Cassandra NoSQL database.

Open source hardware

Arduino Yun combines the microcontroller and Linux for the Arduino board. It comprises the ATmega32u4 (which supports Arduino) and the Atheros AR9331 (which runs on Linux) processors. Its built-in features are Wi-Fi, Ethernet, a USB port, microSD card, reset buttons, etc.

BeagleBoard offers credit card-sized boards that run Android and Linux. Since its power requirements are very low, the BeagleBoard is obviously the better choice for IoT devices. It is available with a wide range of vendors—both hardware and software are open source and sold under the name BeagleBone.

Flutter is a programmable electronics processor core for hobbyists, students and engineers. It is based on Arduino, and has a wireless transmitter with a half-mile range. It requires no router and communicates directly with other boards. It includes an asynchronous encryption of 256 bits and offers flexible usage.

LightBlue Bean Punch Through is a low power microcontroller for Bluetooth Arduino. It is wirelessly programmed, runs on a coin cell battery and is ideal for smartphone-controlled projects using Bluetooth 4.0.

Open source operating systems

AllJoyn is a free-licence OS for IoT, originally designed and developed by Qualcomm and now sponsored by the AllSeen Alliance of organisations, which includes LG, Qualcomm, Panasonic, Microsoft, Sharp, Cisco, Symantec and many others. It offers a range of services and frameworks, which enable producers to design compatible devices. It is a cross-platform API for OS X, iOS, Windows 7 and Android applications.

Contiki is an open source operating system for the Internet of Things. It merges microcontrollers to the Internet. It supports standards such as RPL, CoAP, IPv6 and 6lowpan.

Raspbian is a credit card-sized computer that is popular among developers though it was introduced as an educational device. This is not entirely open source, though much of its software and documentation is. It is the most famous Raspberry Pi OS based on Debian Linux.

Figure 2: Eclipse IDE

Open source protocols

Advanced Message Queuing Protocol (AMQP) is a business messaging Internet protocol. It is an open standard for communicating between applications or companies. It connects systems, feeds business processes with the information they need, and transmits instructions to achieve set objectives reliably.

Constrained Application Protocol (CoAP) is a “specialised Web transfer protocol to be used in the Internet of Things with restricted nodes and networks.” This protocol is intended for machine-to-machine (M2M) applications such as intelligent energy and the automation of building infrastructure.

Very Simple Control Protocol (VSCP) probably should be called a framework rather than a protocol. It is a highly scalable, very low footprint, free and open solution for the discovery and identification of devices, their configuration, autonomous device functionality, securely updating the devices — overall, a solution from the sensor to the user.

Industry consortia for open source

Open Interconnect Consortium (OIC) is a non-profit organisation founded by leading technology companies with the aim of defining the requirements for connectivity and the interoperability for the billions of devices that make up the Internet of Things.

Eclipse IoT supports open Internet of Things standards. It provides the IoT protocols open source implementations such as CoAP, oneM2M, LWM2M, MQTT, OPC-UA, and more.

Open source APIs

Zetta is an open source platform, built on Node.js to create servers running over geo-distributed computers and the cloud. Zetta combines WebSockets and REST APIs with reactive programming. This is ideal for assembling many devices in data-intensive applications in real-time.

BipIO exposes an easy-to-access HTTP API for any device. We can use its drag-and-drop simplicity to automatically connect to Web APIs with dozens of pods.

Open source middleware

IoTSyS is middleware that comes with an intelligent device communication stack. It supports several IPv6, oBIX, 6LoWPAN, Constrained Application Protocol and Efficient XML Interchange standards and protocols.

OpenIoT: Its website explains that the project is open source middleware for sensor cloud information, which saves users from having to worry about the exact sensors used. It aims to enable cloud-based ‘Sensing-as-a-Service’ and has developed cases for intelligent agriculture, smart production, urban crowd sensing, smart living and smart campuses.

Figure 3: Hazelcast IMDG

Open source integration tools and platforms

DeviceHive offers a communication framework for connecting M2M devices to the IoT. It includes easy-to-use Web management software for networking, application security regulations and live monitoring devices. It also contains files on sample projects developed with DeviceHub, and has a simulation section where it provides visualisation of how DeviceHub works online.

DeviceHub.net could be considered the ‘open source backbone of IoT’. It renders a cloud facility to monitor, track and control the devices, and stores the data collected from the Web page directly, and in real-time. It is mainly concerned with tracking health care information, the location of children and vehicles, monitoring weather, etc.

Open source toolkits

IoT Toolkit is a collection of libraries that enables communication with the latest IoT based environments and devices. This high-performance library collection is optimised for minimal memory consumption in RAM, ROM, high speed and versatility, on any device.

KinomaJS is a JavaScript based framework designed to create core embedded device applications. It has support for Linux, Mac OS X, Windows, Android and iOS.

Open source Node Flow editors

Node-RED is a Flow-based Internet of Things programming tool for connecting hardware devices, APIs and online services in an interesting and new way.

ThingBox is a set of ready-to-use software that is already installed and set up on an SD card. It’s not a new automatic home box. It aims to help create new use cases that go much further than home automation.

Open source data visualisation

ThingSpeak is an IoT analytics service that allows you to aggregate, view and analyse live data streams from the cloud. It provides instant visualisation of data posted to ThingSpeak by your devices.

Freeboard is a free, open source dashboard project with optional hosted subscriptions that can be easily integrated and elegantly designed with a variety of data sources.

Open source home automation software

OpenHAB integrates different home automation systems, devices and technologies into a single solution. It is supplier- and hardware-neutral, and runs on any Java-activated system. One of its objectives is to enable users to add and combine new features to their devices.

Thing System comprises software and network protocols. It promises to find and bring together all the things in your home that are connected to the Internet so that you can control them. It supports a wide range of devices including Nest thermostats, Samsung smart air conditioners, Insteon LED bulbs, Roku, Google Chromecast, Pebble smart clocks, Goji smart locks and more. It is written in Node.js and can be connected to a Raspberry Pi.

Open source in-memory data grids (IMDG)

Hazelcast IMDG is often used as a database operating memory layer to improve application performance; distribute data across servers, clusters and geographies; ingest data at very high rates and manage large data sets.

Ehcache is a standards-based open source cache that improves performance, offloads your database and simplifies scalability. It is the most commonly used Java cache because it is robust, proven, fully functional and integrates with other popular libraries and frames.

The top ten IoT trends for 2019 and beyond

Gartner shared a write-up about the ten vital trends that will influence the Internet of Things (IoT), from 2019 through to 2023, at the Gartner Symposium/IT Expo in Barcelona, Spain in 2018. These are:

  • New wireless networking technologies for IoT
  • New IoT user experiences
  • Social, legal and ethical IoT
  • IoT governance
  • Sensor innovation
  • Artificial intelligence (AI)
  • Infonomics and data broking
  • The shift from the intelligent edge to the intelligent mesh
  • Trusted hardware and operating systems
  • Innovation on the chip

3 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here