Node-RED is an open source visual tool for wiring physical and digital world hence an ideal tool for developing IoT projects. IoT projects are most often quite complex since they need to combine different devices, APIs and one or many other services for the integrated solution. The idea behind Node-RED is to create and manipulate different streams of events from the both physical and/or digital world even if you are not a programmer. For more complex projects and specific requirements Node-RED does require some coding knowledge but even for these situations it greatly simplifies the whole process.
Node-RED started as a side project from a guy named Nicholas O’Leary but eventually managed to get approval and support from IBM while still remained open source. The solution is used to interconnect physical things, cloud systems, databases and most APIs in all sort of ways and it is very popular nowadays.
More information about Node-RED
Since Node-RED is before anything a flow based tool, for more information about flow control programming, you can find some more information here.
Node-RED can be run on a local computer and it supports docker. However, it can be run on small devices like Raspberry pi (Node-RED comes reinstalled on the Raspbian OS), Beaglebone Black, Android devices, and it can also interact with Arduino. It can be run in the cloud as well since it supports IBM Bluemix of course :), but also Amazon AWS, Microsoft Azure and more.
There are many companies in the IoT world using and supporting Node-RED. One of these is Multitech, a hardware IoT company that uses Node-RED as an environment for configuring the devices. Many companies sell it as a service, the famous being definitely AT&T, an American telco. There are other companies using it, like Opto22 in the IIOT field etc.
The Node-RED screen is quite simple to use and it is divided into three parts: on the left there are nodes to be used, the central part is used for drawing and configuring the flows and on the right side there is the info and debug part.
Node-RED supports adding packages (many packages are community provided) which are like plugins that allow using other services like MySQL database, MSSQL database etc.
The flows and nodes are easy to drag ‘n drop, cut, copy and paste. The biggest advantage is the fact that these nodes are self-contained and reusable later.
Also, the flows can be easily exported and imported. Nodes, group of nodes and templates can be saved or revoked from the library. Node-RED uses subflows which are sort of templates that can be reused on any location in the flow.
The flows are stored using JSON. JSON is actually not a programming language but a structured format for sending and receiving information so that any programming language be that Java script, Pyton or maybe C# can use it. Some other well known formats are XML and CSV.
Node-RED is open source and it is supported by a growing community. It has a very good getting started guide, user guide, cook book and API reference.
Here I will link you to a very good and free introduction course about Node-RED features. The main site can be found here. For any suggestions, comments and questions please contact me via nikola@simpleIoT.eu.