If you haven’t already heard about the marriage of Node.JS and IoT which resulted in Node-RED, a flow-based programming tool that was originally developed by the IBM’s Emerging Technology Services team and is now a part of the JS Foundation, now’s the time to have a better look at it.
The framework consists of a Node.js-based runtime at which you point a web browser in order to access the flow editor. Within the browser, you create your application by dragging nodes from your palette into a workspace and start to wire them together. Seems simple enough, right?
Let’s have a closer look at its features and how you can get started.
Built on Node.js – Runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This makes it ideal to run at the edge of the network on low-cost hardware such as the Raspberry Pi as well as in the cloud. With over 225,000 modules in Node’s package repository, it is easy to extend the range of palette nodes to add new capabilities.
Social Development – The flows created in Node-RED are stored using JSON which can be easily imported and exported for sharing with others. An online flow library allows you to share your best flows with the world.
Head over to the official documentation for further information and if you are interested in a little history tour back to the early days of Node-RED make sure to check out Nicholas O’Leary video:
Before you get started, you have to make sure you have a working install of Node.js. Users of Node.js 6.x and 4.x should ensure they have the latest updates. Also, keep in mind that Node-RED no longer supports Node.js 0.12.x or 0.10.x.
Concerning hardware, you can find specific instructions for Raspberry Pi, BeagleBone Black, and Windows here. Linux and OSX users should keep in mind that they have to install the packaged version of Node.js for your specific operating system (you can find it here) or get the latest Long Term Support (LTS) version from the download site.
Head over to the getting started guide for all the relevant information.