From 2000 onwards, We have computers and desktop that runs web and desktop applications. A few years back, mobiles and tablets came into existences and popular still continues. The industry started developing mobile apps that run on these devices. overall programmers write a 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 group of devices connected to the internet to exchange the data. We have to write a program/embed a code on this hardware devices to share data across cloud and DB servers.
A lot of Devices types introduced and a lot of data. there are many things to dealing with devices.
It is very difficult to write an embed program or code and test it on each device type as it takes too much time to get it running and these devices produce/consumes a lot of data which needs Service API interaction with external services. To simplify this, we need to rapid application development to deal with devices. 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, develop and testing Internet of things applications
These devices already have support for programming services via different devices like Raspberry Pi, Android Arduino based devices
there are many Internet of things sample applications types
1. An electric motor can be 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 produced and stored in the cloud which we can use it for the analytical purpose to process and make better decisions for future purposes.
Node-red is the flow-based editor and it is an opensource application.
It provides browser-based visual flow editor and it is very easy for developers/designers to wire the different nodes and services. here nodes are hardware devices This is a lightweight tool and built on the node.js framework. performance is good.
To configure node-red tool, node.js installation is required. Please see steps documented at Npm and node installation.
Once NPM and node command is set up and running successfully. next step is to install node-red software
-g option is to install the node-red globally
npm install -g –unsafe-perm node-red
sudo npm install -g –unsafe-perm node-red
this installs node red successfully, run node-red command. this starts the node-red server on your machine and logs the below message to 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 login details not required.
This screen has three columns. the left column has node section center column flow editor where nodes dragged, dropped and wiring using API endpoints. Right side column has info and debugging tabs to test the flow Top right side has an option for production deployment.
Inject node is to manual triggering of a node during the scheduled interval. Time will be configured. Debug nodes are used to log the payload and object message to console. template node supports mustache based template dashboard section has different nodes for HTML form components social section has nodes supports social media providers. storage section nodes has support for file storage
there are nodes for TCP/WebSocket protocols support for communication with services
MQTT is abbreviated as Message Queuing Telemetry Transport. This is protocol based on messaging model using publish and subscribe pattern. This is implemented on top of the HTTP protocol. This is used in 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 pub-sub model, Need server/broker which accepted published messages and send a notification to subscribers.
MQTT Input node
This node is available in node-red admin panel under input section. This connect and subscribe to the server for message notification. This act as subscriber
MQTT output Node
This node is available in the node-red admin panel under the output section. This allows to publish messages to the server and act as publisher
messaging protocol MQTT Broker - Eclipse Mosquitto Mosquitto is an opensource messaging server for supporting MQTT protocol. It is lightweight and supports all devices. You can install on the same host where node red tool is running. In the Node-red, you need to provide a configuration in MQTT config node
Nodered is 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 communicate with different devices.. This is also based on nodejs framework
I will write next articles on Learn nodered examples on using raspberry PI devices.