Blynk, NodeMCU and DHT-22

Setup a home temperature monitoring system on your phone within minutes! Literally just copy and paste!


Blynk, NodeMCU and DHT-22

Things used in this project


Hardware components

1 DFRobot DHT22 Temperature and Humidity Sensor
1 NodeMCU ESP8266 Breakout Board

Software apps and online services




Arduino IDE



As my first attempt to automate my electric heater, I have decided to develop a remote temperature monitoring system. This is the Part I of this project.

My background is mechanics and hydraulics so don't expect details on why do electrons flow opposite to the theoretical representation of current! :)

I will try to be as thorough as possible on my explanations.




Step One: First Things First

Install libraries:






Don't know how? Check the link below:

Visual guy? Get sleepy reading? Check this youtube video:




Step Two: Setting Up for Sketch Upload

Set up as per Fritzing schematics.






Step Three: Creating Your Blynk App

Extracted of instructions from:

Getting Started With The Blynk App

1. Create a Blynk Account

After you download the Blynk App, you’ll need to create a New Blynk account. This account is separate from the accounts used for the Blynk Forums, in case you already have one.

We recommend using a real email address because it will simplify things later.

2. Create a New Project

After you’ve successfully logged into your account, start by creating a new project.

3. Choose Your Hardware

Select the hardware model you will use. Check out the list of supported hardware!

4. Auth Token

Auth Token is a unique identifier which is needed to connect your hardware to your smartphone. Every new project you create will have its own Auth Token. You’ll get Auth Token automatically on your email after project creation. You can also copy it manually. Click on devices section and selected required device :

And you’ll see token :

NOTE: Don’t share your Auth Token with anyone, unless you want someone to have access to your hardware.

It’s very convenient to send it over e-mail. Press the e-mail button and the token will be sent to the e-mail address you used for registration. You can also tap on the Token line and it will be copied to the clipboard.

Now press the “Create” button.

5. Add a Widget

Your project canvas is empty, let’s add a button to control our LED.

Tap anywhere on the canvas to open the widget box. All the available widgets are located here. Now pick a button.

Widget Box

Drag-n-Drop - Tap and hold the Widget to drag it to the new position.

Widget Settings - Each Widget has it’s own settings. Tap on the widget to get to them.

Select "Labeled Value".


Drag-n-Drop - Tap and hold the Widget to drag it to the new position.

Widget Settings - Each Widget has it’s own settings. Tap on the widget to get to them.

Choose a name for your widget.


Select the source of data. My case I am using NodeMCU.


The most important parameter to set is PIN. The list of pins reflects physical pins defined by your hardware. If your value is connected to Virtual Pin 0 - then select V0 (V - stands for Virtual).


You can add a label to it.


6. Run The Project

When you are done with the Settings - press the PLAY button. This will switch you from EDIT mode to PLAY mode where you can interact with the hardware. While in PLAY mode, you won’t be able to drag or set up new widgets, press STOP and get back to EDIT mode.

You will get a message saying “Arduino UNO is offline”. We’ll deal with that in the next section.

Click on Play Icon.


Here's how it looks like when the project is running with no connection.

The red number one should go once it is connected.

Enjoy! Try adding graphs and other sensors to it! Next I am including a relay to turn a heater on and off remotely pressing a button and/or using a timer on Blynk!




Step Four: Open a beer!





Wiring Diagram





Upload to your NodeMCU

#include "DHT.h"                              // DHT Sensor
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "Blynk Auth";
char ssid[] = "SSID";
char pass[] = "Password";

DHT dhtA(5, DHT22);                           // DHT instance named dhtA, D1 and sensor type

void setup() {
  Blynk.begin(auth, ssid, pass);              // Connecting to blynk
  dhtA.begin();                               // Starting the DHT-22

void loop() {;
  climateRoutine();                           // Climate routine
  delay(4700);                                // 4.7 sec between routines

void climateRoutine() {
    byte h1 = dhtA.readHumidity();            // f1 and h1 are celsius and humidity readings
    // byte t1 = dhtA.readTemperature(true);  // for temperature in farenheits
    byte t1 = dhtA.readTemperature();         // from DHT/A
    Blynk.virtualWrite(V0, t1);               //  Set Virtual Pin 0 frequency to PUSH in Blynk app
    Blynk.virtualWrite(V1, h1);               //  Set Virtual Pin 1 frequency to PUSH in Blynk app

The article was first published in hackster, April 8,  2019


author: Cmtelesann


All Rights