17 open source IoT projects to work on in 2017

2017 is round the corner and it's time to build a checklist of New Year resolutions. And I am sure one resolution is common among all the IoT developers, i.e, contributing to open source IoT projects. If you are looking for interesting open source IoT projects to contribute to, I have compiled a list of 17 open source IoT projects where you can find something interesting to work on!

Eclipse Kura

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.

It runs on Java Virtual Machine and uses OSGi. APIs offered by Eclipse Kura gives easy access to underlying hardware such as serial ports, GPS, watchdog, USB, GPIOs, and I2C.

Eclipse Kura simplifies network configuration management, communication with servers, and remote gateway management with the help of OSGI bundles.

Languages used: Java, HTML, C, Shell, C++, JavaScript

License: Eclipse Public License - v 1.0

Find Eclipse Kura on Github

Thingspeak

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
  • Averaging
  • Median
  • Summing
  • Rounding

ThingSpeak has integrated support from the numerical computing software such as MATLAB from MathWorks.

Languages used: Ruby, HTML, JavaScript, CSS

License: GPL Version 3

Find Thingspeak on Github

Zetta

It is a platform for creating IoT servers which run across geo-distributed computers and cloud. 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.

Languages used: JavaScript, Shell

License: MIT

Find Zetta on Github

Open Hybrid

Open Hybrid is a platform for interacting with everyday objects. It amalgamates the benefits of a flexible augmented user interface with physical objects.

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.

Language used: JavaScript, C++, C

License: Mozilla Public License, version 2.0

Find Open Hybrid on Github

Casa Jasmina

Casa Jasmina is a two-year pilot project on building Internet of Things in the home. It brings together traditional Italian skills in furniture and interior design with emergent skills in Italian open-source electronics. In short, Casa Jasmina is an open source project to build a smart apartment.

The idea of Casa Jasmina is conceived in part by futurist and science fiction author Bruce Sterling.

After the project is complete, Casa Jasmina will be available for rent on Airbnb for a short time. The idea is not just to showcase the various contributions but to provide an opportunity for anyone and everyone to experience a “smart” living space.

Languages used: Arduino, JavaScript, C, PHP, Shell

License: GNU lesser general public license Version 2.1

Find Casa Jasmina on Github

Node-RED

Node-RED is a visual application for building IoT systems by wiring together hardware devices, APIs, and other services.

It is a browser-based flow editor which allows you to create JavaScript functions with ease. It also has a built-in library with which you can save useful functions and flows for reuse.

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.

Language used:JavaScript,HTML, CSS

License: Apache License V2.0

Find Node-Red on Github

Wio Link

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.

Languages used: C, C++, Python, HTML

License: GNU GPL v3 License

Find Wio Link on Github

OpenThread

OpenThread is a open source implementation of Thread networking protocol. The project is led by Nest Labs with an aim to accelerate the development of products for smart homes.

Thread makes device-to-device connections, simple, secure, and reliable. It is an IPv6 networking protocol built on open standards.

Project OpenThread is backed by leading technology companies such as ARM, Big Ass Solutions, Nest Labs, NXP Semiconductors, OSRAM, Qualcomm, Samsung Electronics, Schneider Electric, Silicon Labs, Somfy, Tyco, and Yale Security.

Languages used: C++, Python, C, MakeFile, M4, C#

License: BSD-3-Clause

Find OpenThread on Github

Macchina.io

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.

It implements a web-enabled, modular and extensible JavaScript and C++ runtime environment and provides readily available, easy to use building blocks. These building blocks allow your application to talk to various sensors and devices and cloud services.

macchina.io brings together power of JavaScript in rapid application development with the performance of native C++ code. macchina.io is based on V8 JavaScript engine and POCO C++ libraries.

Languages used: C++, C, Objective-C, Makefile, HTML, Shell

License: Apache License V2.0

Find Macchina.io on Github

The physical Web

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.

Languages used: Java, Objective-C, Python, HTML, Shell

License: Apache License V2.0

Find The physical web on Github

DragonBoard™ 410c

It is the first development board based on the Qualcomm® Snapdragon™ 400 series processor.

OS Support: Android 5.1 (Lollipop) on Linux Kernel 3.10, Linux based on Debian 8.0, and Windows 10 IoT Core

Memory/storages: 1GB LPDDR3 533MHz / 8GB eMMC 4.5 / SD 3.0 (UHS-I)

Connectivity and Location:

  • Wi-Fi 802.11 b/g/n 2.4GHz, integrated digital core
  • Bluetooth 4.1, integrated digital core
  • Qualcomm® IZat™ location technology Gen8C
  • On-board Wi-Fi, BT, and GPS antenna

The DragonBoard™ 410c is designed to support rapid software development, education, and prototyping.

It is ideal for building IoT products such as the following

  • Robotics
  • Cameras
  • Medical devices
  • Vending machines
  • Smart buildings
  • Digital signage
  • Casino gaming consoles

Netbeast

Netbeast is an environment-agnostic IoT platform where you need not worry about details like wireless protocols, brand-specific public APIs, or device detection when developing IoT systems.

“Plugins are the ‘secret sauce’ behind Netbeast's API engine.” They allow you to control the devices through Netbeast API.

Netbeast applications allow you to control devices-to-device interaction. This brings in the interoperability between the devices of two or more different brands.

Languages used: JavaScript, HTML, Shell, Java, CSS

License: GNU Public License

Find Netbeast on Github

Ubuntu Core Snappy

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.

Languages used: Shell, Go, Python, C++, C

Find Ubuntu Core Snappy on Github

IoTivity

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).

Languages used: C++, C, Shell, JavaScript, Python

License: Apache License V2.0

Find IoTivity on Github

AllJoyn (AllSeen Alliance)

AllJoyn is an open source software framework which enables devices and frameworks to discover, communicate, and collaborate with each other, independent of product category, platform, brand, and connection type. AllJoyn achieves interoperability among the products and applications using D-Bus message bus.

Project AllJoyn is led by Qualcomm and is supported by major OEM and ODM partners such as LG, Xiaomi, LeTV, Foxconn, Technicolor, and Innotek. Applications of AllJoyn can be found in the field of Connected Home, Broadband Gateways, Smart TV, Automotive, etc.

Languages used: C, C++, Java, Objective-C, JavaScript

License: Creative Commons License

Find AllJoyn on Github

FarmBot

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
  • Nozzles
  • Motors
  • Belts
  • Pulleys
  • Raspberry Pi 3 and others

Kaa project

Kaa project is a platform for building, managing, and integrating applications in IoT. It also provides a mechanism for the delivery of configurable event messages across the connected devices.

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.

Languages used: Java, C, Objective-C, C++, Python, Shell

License: Apache License V2.0

Find Kaa project on Github

"In real source, you have the right to control your own destiny" - Linus Torvalds

About the Author

Vasudhendra Badami
Vasudhendra Badami is a category head (IoT) at HackerEarth. A writer by day and a reader by night. Covers topics like Internet of Things, electronics and analytics. You can find Vasudhendra on Twitter (@BadamiVasu)
4
89
2