JavaScript and the Internet of Things Image

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.

11/01/2019

Featured Tool

Tessel2

Tessel 2

HIGHLIGHTS

  • Two 10-pin module ports to add sensors and other external hardware
  • Built-in Wifi and Ethernet
  • Each module has an open source library on NPM, with instructions and tutorials available online.

REVIEWS & PRICING
Sparkfun $44.95

USER & TECHNICAL
Developer Docs
Community
API

Tools

CYLON

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

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.

Ruff - A JavaScript runtime specialized in IoT development. Ruff makes embedded coding easy and more efficient by providing HAL, asynchronous I/O, event-driven programming.

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

tessel1

TESSEL 2

Tessel 2 is a robust IoT and robotics development platform. Leverage all the libraries of Node.JS to create useful devices in minutes with Tessel.

EDISON DEVELOPMENT BOARD

EDISON DEVELOPMENT BOARD

Intel's Edison IoT Development Platform is the first in a series of low-cost, product-ready, general purpose compute platforms that help lower the...

kinoma

KINOMA

The Kinoma Create V2 is the JavaScript-powered construction kit perfect for prototyping smart consumer electronics and Internet of Things devices.

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 hardwareArduino WirelessRaspberry Pi Wireless

Guide

Trevor Harwood


Trevor has been following the IoT and its implications since 2009. He is most interested in how we can utilize technology and connectivity to reduce resource usage.


Contact

SMART PRODUCT & SYSTEM TRENDS

Join 20,000+ readers for our free bi-monthly newsletter to stay a step ahead of the curve.

  • This field is for validation purposes and should be left unchanged.