NodeJS and IoT - An Overview
Tags: node, javascript, iot
Published: 2020-01-03 03:35:14

#What exactly is Node.js

As most DEVs here may be acquainted with the term Node.js, I would focus more on explaining the concept of IoT.
 NodeJS (Node) is an open source development platform for executing JavaScript code server-side. Node is useful for developing applications that require a persistent connection from the browser to the server and is often used for real-time applications.

#What is the Internet of Things (IoT)

The Internet of Things (IoT) is an ecosystem of computer devices, automated/digital machines or objects which hold unique identifiers and has the ability to transfer data over the network without involving human-to-human or human-to-computer interaction.

The Internet in Internet of things can be any device capable of sending and receiving signal, can be a person with heart monitor implant, can be any automobile that has sensor built-in to signal driver when fuel/tire pressure is low or can be any natural or human made object that has unique IP address assigned to it and has the  capability to send and receive signal when required.

IoT has been brought in the picture with the union of wireless technology, micro electromechanical system, microservices, and the internet. This union has bridged the gap between operational technology (OT) and information technology (IT) they are by allowing unstructured machine generated data to analyzed and plotted for useful statistics.

###Brief history of Node&IoT

The concept of IoT was first officially announced in the year 1999 but has been in development for decades. The first internet machine was a Coke machine at Carnegie Melon University in the early 1980s. The developer was able to connect to the machine to Internet, check the status of the machine and determine whether or not there would be a cold drink waiting, and deciding whether to re-fill machine or not.

Internet of things (IoT) concept is generally executed on IoT boards. These boards come with pre-configured hardware capable of sending and receiving signals. These boards are generally controlled by software running on top of hardware devices like our personal computers. Latest IoT boards comes with Bluetooth and Wifi pre-configured as part of hardware capable of sharing and receiving data. Popular IoT boards variants are –

Arduino
Raspberry PI
Intel IoT Edition
BeagleBone Black

The key feature of any IoT driven application is collecting data, communicating, analyzing and acting. Node js makes a perfect partner for all above features.

Sockets and MQTT protocol are well suited in Node js which are generally used for continuous data transmission in IoT applications.IoT-application cable boards, such as Intel Edison,  BeagleBone Black, and Raspberry Pi, can easily install Node js as a programming environment. Node js comes with NPM packages manager which contains many useful IoT modules,  which can be used for rapid and robust application development.Node js is known for its speed, scalability, and efficiency making it the key player for data- intensive real time application. This makes Node js well suited for IoT which relies on data intensive real-time traffic.

IoT with Node.js inside
offers Node.js — this JavaScript runtime environment built on Google Chrome’s V8 JavaScript engine uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

Node.js is a place to run IoT app software (runtime environment) built using technology to translate JavaScript into code that machines understand (Google V8) that is capable of handling lots of things happening at once (an asynchronous event-driven Input/Output model) that is small in terms of its total installation footprint (lightweight code).

Node.js in IoT started at a hobbyist pursuit, but has grown tremendously since it first debuted in 2012.

There are NodeBots chapters (special interest group fan meetups) around the world, Skycatch used Node.js in construction-grade drones to find areas affected by the Nepal earthquake.

Node.js is also being used front and center in commercial products like Siemens Smart Grid product (Monet) — this “Energy-of-Things” power management solution uses Microsoft Azure to host applications developed in HTML5, JavaScript, Node.js and MongoDB on Linux.

To get started with Node and IoT, there are numerous resources online. You could start from this [W3Schools guide](
https://www.w3schools.com/nodejs/nodejs_raspberrypi.asp). If you prefer the cheaper and more suitable Arduino over Raspberry Pi's for IoT development, check out this [awesome community](http://johnny-five.io/)

Thanks for reading this post. I hope it was helpful, suggestions or feedback will be appreciated as this is my first post.

![Image](https://thepracticaldev.s3.amazonaws.com/i/b74wyixr4zugmpt2rvrl.jpeg)