From 2000 onwards, We have computers and desktop that runs web and desktop applications. A few years back, mobiles and tablets came into existence and their popularity continues.
The industry started developing mobile apps that run on these devices. overall programmers write software code for web, desktop, and mobile applications.
With recent advancements in technology. a lot of devices came into existence. different devices are sensors in cars/motors/home and electronic devices.
`Internet of things is a concept where these groups of devices are connected to the internet to exchange data.
We have to write a program/embed a code on these hardware devices to share data across cloud and DB servers.
A lot of Device types produce a lot of data.
There are many things to dealing with devices such as analyzing the data and displaying data in the nice analytics dashboard.
Writing an embed application or code and testing it on each device type is difficult since it takes too long to get it working on these devices.
Produce/consume a large amount of data that requires interaction with external services via the Service API. To deal with it, we’ll need to write code and develop applications development quickly.
Because of all these things, Node-red visual flow tool Editor was introduced to link/integrate with different services without complex coding knowledge.
It just needs to connect wires/flows node points in the editor and deploy the code easily. Mainly Node-red is useful for design, development, and testing Internet of things applications.
These devices already have support for programming services via different devices like Raspberry Pi and Android Arduino-based devices.
there are many Internet of things sample applications types
1. An electric motor is controlled using Android devices to start/stop.
2 Home applications like door lock and fan sensors to switch on/off via mobile
3. Weather sensors
From all these devices, a lot of data is produced and stored in the cloud that we can use for the analytical purpose to process and make better decisions for future purposes.
What is a node-red tool?
Node-red is the flow-based editor and it is an open-source application.
It provides a browser-based visual flow editor and easy for developers/designers to wire the different nodes and services.
here node is a hardware device. This is a lightweight tool, built on the node.js framework, and its performance is good.
Node-red Installation and setup
node.js installation requires configuring the node-red tool.
Please see the steps documented at Npm and node installation.
Once NPM and node command are set up and running successfully. The next step is to install node-red software
Setup on windows
-g option is to install the node-red globally
npm install -g --unsafe-perm node-red
Setup on Linux-based operating systems
sudo npm install -g --unsafe-perm node-red
It installs node-red successfully Next, run node-red command. starts the node-red server on your machine and logs the below message to the console.
17 Jul 22:28:41 - [info] Starting flows
17 Jul 22:28:41 - [info] Started flows
17 Jul 22:28:41 - [info] Server now running at http://127.0.0.1:1880/
then access http://127.0.0.1:1880/ in your browser, admin UI opened. By default user, log-in details are not required.
nodered dashboard admin tutorials
This screen has three columns.
- a left column has a node section center column named flow editor where nodes are dragged, dropped, and wiring using API endpoints.
- The right side column has info and debugging tabs to test the flow.
- The top right side has an option for production deployment.
Node types in node-red
- Inject node is the manual triggering of a node during the scheduled interval time. Time is configured.
- Debug nodes are used to log the payload and object message to the console.
- template node supports mustache-based template
- dashboard section has different nodes for HTML form components
- social section has nodes that support social media providers.
- storage section nodes has support for file storage
there are nodes for TCP/WebSocket protocols support for communication with services
Node-red application Features
- It is built on Nodejs architecture
- Simple to use graphical flow editor
- Very easy to set up the local environment
- There are a lot of cloud providers like Microsoft Bluemix, Bluemix, and amazon web services
- support for accessing third-party services
- Easily save and get the data from the database.
- Rapid application development for the Internet of things
- Created Flows are stored as a JSON object. So you can do import/export flows
- Docker support
node-red MQTT protocol support
MQTT is abbreviated as Message Queuing Telemetry Transport. This is a protocol based on messaging model using publish and subscribe pattern.
This is implemented on top of the HTTP protocol.
This is used in the Internet of things - physical devices or mobile devices to communicate the messages over this protocol with limited network bandwidth. Facebook used this protocol for their online chat messenger application.
Node-red provides MQTT Input node and MQTT output Node, MQTT Config node to connect to MQTT brokers to allow publish and subscribe messaging.
To have a pub-sub model, Need a server/broker which accepts published messages and sends a notification to subscribers.
MQTT Input node
This node is available in the node-red admin panel under the input section. It connects and subscribes to the server for message notification. This act as a subscriber
MQTT output Node
This node is available in the node-red admin panel under the output section. It allows publication messages to the server and acts as a publisher messaging protocol.
MQTT Broker - Eclipse Mosquitto
Mosquitto is an open-source messaging server for supporting the MQTT protocol. It is lightweight and supports all devices.
You can install it on the same host where the node-red tool is running. In the Node-red, you need to provide a configuration in MQTT config node
nodered alternative tools
Node-red is a flow-level programming tool.
there is another alternative flow tool to nodered is a total.js platform available for the Internet of things (IoT) and Apache Nifi framework for communicating with different devices. This is also based on the nodejs framework
To summarize, Learned about the node-red framework based on Nodejs for the Internet of things.