First of all, you need to install Node.js.

Before updating Node.js, please be sure to remove old versions:

sudo apt-get purge node nodejs node.js -y
sudo apt-get autoremove

Automatic Node.js installation

Add repositories:

curl -sL | sudo -E bash -

Install Node.js:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential nodejs -y

Manual Node.js installation

Automatic install might not work for you, in this case you can perform manual installation.
If uname -m gives you armv6l (on Raspberry Pi, usually), try this:

sudo su

cd /opt

wget -O - | tar -xz
mv node-v6.9.5-linux-armv6l nodejs

apt-get update && apt-get upgrade
apt-get install build-essential

ln -s /opt/nodejs/bin/node /usr/bin/node
ln -s /opt/nodejs/bin/node /usr/bin/nodejs
ln -s /opt/nodejs/bin/npm /usr/bin/npm


export PATH=$PATH:/opt/nodejs/bin/

Check your Node.js and npm installation

pi@raspberrypi:/ $ node --version

pi@raspberrypi:/ $ npm -v

Install Blynk globally

sudo npm install blynk-library -g
sudo npm install onoff -g

Run default Blynk client (replace YourAuthToken):

export PATH=$PATH:/opt/nodejs/bin/
blynk-client YourAuthToken

Creating a new Node.js project with Blynk

Installing Blynk globally may not work or can be undesired.
In this case, you need to create a new Node.js module with local Blynk library dependency.

mkdir my-awesome-project
cd my-awesome-project
npm init

It will prompt you for general information about your project and create a package.json file (project description). Next, add Blynk to your project: 

npm install blynk-library --save

You can also install onoff, if you want (allows direct pin operations):

npm install onoff --save

Now create your main script file index.js (just replace YourAuthToken):

var Blynk = require('blynk-library');

var AUTH = 'YourAuthToken';

var blynk = new Blynk.Blynk(AUTH);

var v1 = new blynk.VirtualPin(1);
var v9 = new blynk.VirtualPin(9);

v1.on('write', function(param) {
  console.log('V1:', param[0]);

v9.on('read', function() {
  v9.write(new Date().getSeconds());

 This is it. Run your project:

node index.js

You should see something like:

OnOff mode
Connecting to: 8441
SSL authorization...

Write our own script based on examples!

What next?

Read about Virtual Pins concept and unleash full power of Blynk.
Blynk supports huge amount of board types. Check if your favourite is on the list!
Our library is Open Source Software. Give us a star on GitHub.


If you are trying to connect to Blynk cloud, and get an error like:


you should use the date command to update current system time.

Further reading

Instructables: Use DHT11/DHT12 sensors with Raspberry Pi and Blynk
Node.js vs C++ library

Did this answer your question?