🔰 Introduction
In this lesson, you will learn the most important cloud tool used in this course:
👉 Blynk IoT Platform
Blynk allows your ESP32 to:
-
Connect to the internet
-
Send sensor data to a mobile app
-
Receive control commands from a mobile app
-
Create real IoT dashboards
By the end of this lesson, you will clearly understand:
-
What Blynk is
-
How ESP32 connects to Blynk
-
What the Blynk library does
-
What virtual pins are
-
How to send data to Blynk
-
How to receive commands from Blynk
PART 1 – What is Blynk?
1️⃣ What is Blynk?
Blynk is a cloud + mobile app platform used to build IoT applications without writing mobile app code.
It provides:
-
A mobile app (Android / iOS)
-
A cloud server
-
A software library for ESP32
Together, these three parts allow your ESP32 to communicate with your phone over the internet.
2️⃣ Why We Use Blynk in This Course
We use Blynk because:
-
No need to build Android apps
-
No need to manage servers
-
Very beginner-friendly
-
Works with ESP32
-
Free for basic use
-
Supports dashboards, buttons, sliders, displays, alerts
3️⃣ Basic Working of Blynk (Simple Flow)
[ Sensor ] → [ ESP32 ] → [ WiFi ] → [ Blynk Cloud ] → [ Blynk App ]
↑
[ User Control ]
-
ESP32 sends sensor data to Blynk Cloud
-
Blynk Cloud sends data to your phone
-
When you press a button in the app:
→ Blynk Cloud sends a command to ESP32
PART 2 – What is the Blynk Library?
4️⃣ What is a Library?
In programming, a library is a collection of ready-made code that helps us perform complex tasks easily.
Instead of writing hundreds of lines of networking code, we use a library.
5️⃣ What is the Blynk Library?
The Blynk library is a software package that:
-
Connects ESP32 to Blynk Cloud
-
Sends data to the Blynk app
-
Receives data from the Blynk app
-
Manages authentication and communication
6️⃣ Why We Need the Blynk Library
Without the Blynk library, you would need to:
-
Write WiFi connection code
-
Write internet communication code
-
Write server communication code
-
Handle mobile app data manually
This is very difficult for beginners.
So we use the Blynk library to do all this automatically.
7️⃣ How Blynk Library Works (Concept)
When your ESP32 runs this function:
Blynk.begin(auth, ssid, pass);
The library automatically:
-
Connects ESP32 to WiFi
-
Connects ESP32 to Blynk Cloud
-
Authenticates using your Auth Token
-
Keeps the connection alive
PART 3 – Important Blynk Library Functions
8️⃣ Blynk.begin()
Blynk.begin(auth, ssid, pass);
What it does:
-
Connects ESP32 to WiFi
-
Connects ESP32 to Blynk server
-
Logs in using Auth Token
9️⃣ Blynk.run()
Blynk.run();
What it does:
-
Keeps ESP32 connected to Blynk
-
Listens for commands from app
-
Sends data to app
⚠ This must be inside loop().
🔟 Blynk.virtualWrite()
Blynk.virtualWrite(V5, value);
What it does:
-
Sends a value from ESP32 → Blynk app
-
Displays it on a widget linked to V5
Example:
Blynk.virtualWrite(V5, 25);
Sends number 25 to Blynk.
PART 4 – What are Virtual Pins?
1️⃣1️⃣ What is a Pin?
In microcontrollers, a pin is a physical leg used to connect sensors or devices.
Example:
GPIO 2, GPIO 4, GPIO 5, etc.
1️⃣2️⃣ What is a Virtual Pin?
A virtual pin is a software-only pin created by Blynk.
It does NOT exist physically on ESP32.
It is used to:
-
Send data to the app
-
Receive commands from the app
1️⃣3️⃣ Why Virtual Pins Are Needed
We use virtual pins because:
-
We don’t want to link app buttons directly to ESP32 GPIO pins
-
We want flexible control logic
-
We want multiple widgets to talk to code
1️⃣4️⃣ Virtual Pin Naming
Virtual pins are named like:
-
V0
-
V1
-
V2
-
V3
-
…
-
V255
PART 5 – Receiving Data from Blynk (App → ESP32)
1️⃣5️⃣ BLYNK_WRITE() Function
BLYNK_WRITE(V1) {
int value = param.asInt();
}
What it does:
-
Runs automatically when widget on V1 changes
-
Reads value sent from app
-
Stores it in
value
1️⃣6️⃣ Example Logic
BLYNK_WRITE(V1) {
int buttonValue = param.asInt();
if (buttonValue == 1) {
digitalWrite(2, HIGH);
} else {
digitalWrite(2, LOW);
}
}
Meaning:
-
Button ON → LED ON
-
Button OFF → LED OFF
PART 6 – Sending Data to Blynk (ESP32 → App)
1️⃣7️⃣ Sending a Sensor Value
int temp = 30;
Blynk.virtualWrite(V5, temp);
Meaning:
-
Send value 30 to widget on V5
1️⃣8️⃣ Sending Text
Blynk.virtualWrite(V6, "System ON");
PART 7 – Typical Blynk Program Structure
1️⃣9️⃣ Basic Blynk Code Template
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "YOUR_AUTH_TOKEN";
char ssid[] = "YOUR_WIFI_NAME";
char pass[] = "YOUR_WIFI_PASSWORD";
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
}
2️⃣0️⃣ Where Virtual Pins Fit
BLYNK_WRITE(V1) {
int value = param.asInt();
}
Goes outside setup() and loop().
PART 8 – Common Beginner Mistakes
❌ Mistake 1: Forgetting Blynk.run()
Result:
App not responding
Fix:
Always add Blynk.run() in loop()
❌ Mistake 2: Wrong Auth Token
Result:
Device offline
Fix:
Copy correct token from Blynk app
❌ Mistake 3: Wrong Virtual Pin Number
Result:
Button not working
Fix:
Match V-pin in app and code
❌ Mistake 4: Blocking Code (delay)
Result:
App becomes slow
Fix:
Avoid long delays in loop()
PART 9 – Summary
-
Blynk is a cloud + app platform for IoT
-
Blynk library connects ESP32 to Blynk
-
Virtual pins are software pins
-
Blynk.virtualWrite()→ ESP32 → App -
BLYNK_WRITE()→ App → ESP32 -
Blynk.run()keeps everything alive