Controlling an Arduino with Node.js and Johnny-Five

Share this article

One of the advantages of being a JavaScript developer is the array of APIs and frameworks that bring a whole new level of possibilities to what previously was restricted to web development. A great example of this is the world of electronics and Arduinos. JavaScript libraries/frameworks such as Firmata and Johnny-Five make it a lot easier for JavaScript developers to get more involved and develop applications that can interact with, respond to and control Arduino powered technology. This video aims to help those new to Arduinos and Node.js understand the basics of getting started. I’ll provide an overview of what you’ll need to do in order to get a Node application speaking to an Arduino using the Johnny-Five JavaScript framework. By the end we will have used the power of JavaScript to turn an LED light on and off!

Frequently Asked Questions about Controlling Arduino with Node.js and Johnny-Five

How do I install Johnny-Five on my system?

To install Johnny-Five on your system, you need to have Node.js installed first. Once you have Node.js, you can install Johnny-Five using npm (Node Package Manager). Open your terminal or command prompt and type the following command: npm install johnny-five. This will install Johnny-Five and its dependencies on your system.

What is the role of Firmata in Johnny-Five?

Firmata is a protocol for communicating with microcontrollers from software on a host computer. Johnny-Five uses Firmata to communicate with the Arduino. It allows Johnny-Five to control the Arduino’s input and output operations.

Can I use Johnny-Five with other microcontrollers apart from Arduino?

Yes, Johnny-Five is compatible with many other microcontrollers apart from Arduino. These include Raspberry Pi, BeagleBone, Photon, and many others. You can check the Johnny-Five website for a complete list of supported platforms.

How do I control an LED using Johnny-Five?

Controlling an LED using Johnny-Five involves creating an instance of the Led class and calling its on and off methods. Here’s a simple example:

var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
var led = new five.Led(13);

How can I read sensor data using Johnny-Five?

Reading sensor data involves creating an instance of the Sensor class and listening to its data event. Here’s an example of reading data from a temperature sensor:

var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
var temperature = new five.Thermometer({
controller: "LM35",
pin: "A0"

temperature.on("data", function() {
console.log(this.celsius + "°C", this.fahrenheit + "°F");

Can I use Johnny-Five to control multiple devices simultaneously?

Yes, Johnny-Five supports controlling multiple devices simultaneously. You can create multiple instances of device classes (like Led, Servo, etc.) and control them independently.

How do I debug my Johnny-Five code?

Debugging Johnny-Five code is similar to debugging any other Node.js code. You can use console.log statements to print out values at various points in your code. You can also use Node.js’s built-in debugger or a tool like Node Inspector.

Can I use Johnny-Five with Node.js frameworks like Express?

Yes, you can use Johnny-Five with any Node.js framework. This allows you to build web applications that can interact with hardware devices.

How do I update Johnny-Five?

You can update Johnny-Five by running npm update johnny-five in your terminal or command prompt.

Where can I find more resources to learn about Johnny-Five?

The Johnny-Five website is a great resource for learning more about the library. It has a comprehensive API documentation, as well as many examples and tutorials. You can also check out the Johnny-Five GitHub repository for more information and to contribute to the project.

Patrick CatanzaritiPatrick Catanzariti
View Author

PatCat is the founder of Dev Diner, a site that explores developing for emerging tech such as virtual and augmented reality, the Internet of Things, artificial intelligence and wearables. He is a SitePoint contributing editor for emerging tech, an instructor at SitePoint Premium and O'Reilly, a Meta Pioneer and freelance developer who loves every opportunity to tinker with something new in a tech demo.

arduinodeviceEmerging TechInternet-of-ThingsNode-JS-Tutorials
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week
Loading form