Icon

JavaScript and the Internet of Things

Find and compare Javascript IoT projects and hardware. Nodejs on your Pi, Arduino or custom Bluetooth or Wifi board.

Riding on the widespread popularity of JavaScript (particularly event-driven Node.js) in combination with low cost prototyping hardware, a new set of projects have emerged letting client side web developers use their skills to start controlling elements in the physical world.

The following Channel Guide will:

  • Provide overview of currently available tools and frameworks.
  • Help narrow down the right project fit based on hardware boards and spec comparison.
  • List out tutorials and featured projects to help get you started.

Tools

Cylon.js

"A JavaScript framework for robotics, physical computing, and the Internet of Things. It makes it incredibly easy to command robots and devices....

Johnny-Five

Released by Bocoup in 2012 Johnny-Five is a JavaScript Robotics & IoT Platform. Programs can be written for Arduino (all models), Electric...

Additional Projects:

NodeRed - Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.

KinomaJS - A runtime environment for delivering applications on a wide range of consumer electronic products. The primary programming interface to KinomaJS is an JavaScript API of global constructors, functions, and objects that define the containment hierarchy, appearance, behavior, and flow of applications and shells. KinomaJS also provides an optional XML programming interface.

JerryScript - Ultra-lightweight (run on devices with less than 64 KB of RAM and less than 200 KB of flash memory) JavaScript engine for the Internet of Things

CHIRIMEN - A Mozilla community Project
"CHIRIMEN is designed for Web developers to make real things connected to the Web only with Browser technologies like HTML, CSS and JavaScript."

NodeMCU
An open-source firmware and development kit that helps you to prototype your IOT product within a few Lua script lines

Mosca
Mosca is a node.js mqtt broker, which can be used: Standalone or Embedded in another Node.js application

Socket.IO
"Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed."

Nodebots
"NodeBots are robots that are controlled by node.js."

node-serialport
"Node.js package to access serial ports for reading and writing'

heimcontrol.js
"Awesome home automation with Raspberry PI and Arduino using Node.js, MongoDB, HTML5 and Websockets"

Resin
"Javascript on your devices,as simple as'git push'"

onoff - GPIO access and interrupt detection with JavaScript

UPM (Useful Packages & Modules) Sensor/Actuator repository for MRAA

node-http2 - An HTTP/2 client and server implementation for node.js

i2c - Native bindings for i2c-dev. Plays well with Raspberry Pi and BeagleBone.

IoT.js - A framework for Internet of Things based on JerryScript(lightweight JavaScript engine) and libuv for asynchronous I/O event handling.

Silk - A free (as in free beer) firmware for a number of smartphones based on the open-source Android operating system with a nodejs layer on top of it that makes it possible to write programs and get access to hardware aspects using only simple JavaScript.

mdns - Adds multicast DNS service discovery, also known as zeroconf or bonjour to node.js. It provides an object based interface to announce and browse services on the local network.

Serverless - An application framework for building serverless web, mobile and IoT applications exclusively on AWS Lambda

Favor - A javascript/node.js library to abstract away complex and inconsistent hardware interfaces into a single simple to use API.

Arduino

duino
"Arduino framework for node.js"

EventedArduino
"Evented Arduino and Node.js"

noduino - A simple and flexible JavaScript and Node.js Framework for accessing basic Arduino controls from Web Applications using HTML5, Socket.IO and Node.js.

Raspi

Pijs.io

"Pijs.io is a cloud-platform to write embedded applications for your Raspberry Pi, in JavaScript'

Hardware

Tessel 2

Tessel is a microcontroller that runs JavaScript. It's Node-compatible and ships with Wifi built in

Edison Development Board

Intel's innovation in cloud computing, data center, Internet of Things, & PC solutions is powering the smart and connected digital world we live in.

Kinoma

Hardware products & software solutions designed to take IoT and connected device ideas to prototype and production. #JavaScript...

Puck.js - An Open Source JavaScript microcontroller you can program wirelessly

Node.js* templates for the Intel® XDK IoT Edition

Sparkfun: Johnny-Five Inventor's Kit $124.95
- "The Johnny-Five Inventor’s Kit (J5IK) is your go-to source for developing projects using the Tessel 2 and the Johnny-Five programming framework."

Data Platforms

Zetta - "An open source platform built on Node.js for creating Internet of Things servers that run across geo-distributed computers and the cloud. Zetta combines REST APIs, WebSockets and reactive programming – perfect for assembling many devices into data-intensive, real-time applications."

Netbeast - An IoT development platform that empowers developers to easily create and deploy IoT apps - npm

IoT.me - A web application using Node.js as a server, Express.js for the framework and MongoDB as the database (the MEAN stack, without the A).

PageNodes - An in-browser fork of node-red. It requires no back-end server and is 100% browser-based.

Platform Specific:

ibmiotf - The node.js client is used for simplifying the interacting with the IBM Watson Internet of Things Platform. The following libraries contain instructions and guidance on using the nodejs ibmiotf node to interact with devices and applications within your organizations.

AWS IoT SDK for JavaScript - The aws-iot-device-sdk.js package allows developers to write JavaScript applications which access the AWS IoT Platform via MQTT or MQTT over the Secure WebSocket Protocol. It can be used in Node.js environments as well as in browser applications.

iothub-explorer - A sample CLI tool to manage device clients using the Azure IoT Hub service SDK.

Tutorials


Additional resources

Presentations & Resources:

Overview

Projects:

Arduino Focused

Books

General:

  • Website: The Floppy Disk: Javascript is the new C" - Robert Drummond
  • Website: TangibleJS
  • Event: NodePDX 2013 "Portland's home grown hardware hacking, code slinging conference around Node.js and JavaScript.

See Also: Internet of Things prototyping hardware, Arduino Wireless, Raspberry Pi Wireless