Tools for the IoT
Every other engineer we meet is into designing some product or the other for the IoT. So we thought it would be a good idea to have one section focusing entirely on the software tools available for those working on IoT products.
If you are trying to build M2M applications like remote monitoring or fleet management, M2MLabs Mainspring is a good framework that you could check out. Written in Java, it is an open source framework that allows flexible modelling of devices, their parts and characteristics. For instance, a temperature sensor can have a set of attributes related to indoor and outdoor data that it sends.
All data is time-stamped and sent according to a REST Web service. When new data is received, it triggers execution of Groovy scripts (programming language for Java platform) to perform boundary checking of data, interpolation or threshold supervision. Data is stored on scalablenoSQL database.
DeviceHive and the IoT toolkit are other frameworks that you could try out, too.
Node-RED is a tool for wiring together hardware devices and online services through different flows. It works with popular boards like Raspberry Pi (or Raspi), BeagleBone Black and Arduino. Flows could be created by adding an inject node and a debug node and then wiring the two together through a simple drag-and-drop GUI. You can then deploy the nodes. If you want to apply some function to each message from the inject node to the debug node, you can add a function node in between these—it is that simple!
Wyliodrin is a tool that Intel recommends. It can be used to create IoT projects using just your browser. Being a cloud based tool, it saves everything automatically, works in most browsers and is compatible with most popular boards. It allows boards to talk to each other, and enables mobile devices and Web services to talk to the board.
There are also neutral home automation software like OpenHAB that allow smart devices in your home to talk to each other. Being vendor-neutral, it allows users to easily add new features to their devices. To top these off, there are middleware like IoTSyS and OpenIoT that ease the process of communicating data to and from devices.