เนื้อหาในบทความ
ภาพรวม Blynk 2.0 คืออะไร?
📱 IoT Platform สำหรับทุกคน
Blynk 2.0 เป็นแพลตฟอร์ม IoT (Internet of Things) แบบ No-Code/Low-Code ที่ช่วยให้คุณสร้างแอปมือถือสำหรับควบคุมอุปกรณ์ผ่าน Internet ได้ง่ายและรวดเร็ว โดยไม่ต้องมีความรู้ด้านการเขียนโปรแกรมมือถือ
เหมาะสำหรับผู้เริ่มต้นที่ต้องการ:
- ควบคุม ESP32/ESP8266 ผ่าน WiFi จากทุกที่
- สร้าง Dashboard สวยงามบนมือถือโดยไม่ต้องเขียนโค้ด
- รับข้อมูลจากเซ็นเซอร์แบบ Real-time
- สร้าง Automation และ Alerts ได้ง่ายๆ
Blynk 1.0 vs Blynk 2.0: อะไรต่างกัน?
| ฟีเจอร์ | Blynk 1.0 (เก่า) | Blynk 2.0 (ใหม่) |
|---|---|---|
| ราคา | ฟรีแต่จำกัด Energy | มีทั้งฟรีและแบบรายเดือน |
| Dashboard | แอปมือถือเท่านั้น | เว็บ + แอปมือถือ |
| Server | Cloud เท่านั้น | Cloud + Local Server |
| Automation | จำกัด | ขั้นสูง + Rules Engine |
จุดเด่นของ Blynk 2.0
Drag & Drop Dashboard
สร้างหน้าจอควบคุมสวยงายด้วยการลากวาง Widgets ต่างๆ เช่น ปุ่มกด, Slider, Gauge, Graph ได้อย่างง่ายดาย
Web + Mobile App
ควบคุมอุปกรณ์ได้ทั้งบนเว็บบราวเซอร์และแอปมือถือ (iOS/Android) พร้อมกัน
Real-time Data
รับและส่งข้อมูลแบบ Real-time ผ่าน WebSocket และ MQTT พร้อม SSL/TLS encryption
รองรับหลายบอร์ด
ใช้งานได้กับ ESP32, ESP8266, Arduino, Raspberry Pi และอีกมากมาย 400+ บอร์ด
Automation & Events
สร้างกฎอัตโนมัติ (If This Then That) และการแจ้งเตือนผ่าน Email, Push, SMS
Security First
ข้อมูลเข้ารหัสด้วย SSL/TLS พร้อมระบบ Authentication และ Device Management
สิ่งที่ต้องเตรียม
📦 Hardware
- ✓ESP32 Board
เช่น NodeMCU ESP32, Wemos ESP32, หรือบอร์ดอื่นๆ
- ✓LED + Resistor 220Ω
สำหรับทดสอบการควบคุม (หรือใช้ LED บนบอร์ด)
- ✓USB Cable
สำหรับอัปโหลดโค้ดและจ่ายไฟ
- ℹเซ็นเซอร์เพิ่มเติม (ไม่บังคับ)
DHT11, DHT22, LDR, Relay ฯลฯ
💻 Software
- ✓Arduino IDE 2.x
สำหรับเขียนและอัปโหลดโค้ด ESP32
- ✓บัญชี Blynk 2.0
สมัครฟรีที่ blynk.io
- ✓Blynk Library
ติดตั้งผ่าน Arduino Library Manager
- ℹบัญชี CynoIoT (ไม่บังคับ)
สำหรับเชื่อมต่อและเก็บข้อมูลเพิ่มเติม
ขั้นตอนที่ 1: ติดตั้งและตั้งค่า Blynk 2.0
📱 สมัครและสร้าง Template
- เข้าไปที่เว็บไซต์ Blynk.Console
- เข้าไปที่ https://blynk.io
- คลิก "Get Started" หรือ "Sign Up"
- กรอกข้อมูล Email และ Password (หรือใช้ Google Account)
- สร้าง New Template
- หลังจาก Login แล้ว คลิก " + New Template"
- ตั้งชื่อ Template: เช่น "ESP32 LED Control"
- เลือก Hardware: "ESP32"
- เลือก Connection Type: "WiFi"
- คลิก "Create"
- กำหนด Datastreams
- ใน Template คลิก " + Add Datastream"
- เลือก Type: "Integer"
- ตั้งชื่อ: "LED State" (Virtual Pin V0)
- Min: 0, Max: 1
- คลิก "Save"
- สร้าง Event
- ใน Template ไปที่ "Events" tab
- คลิก " + Add Event"
- ตั้งชื่อ Event: "LED Toggle"
- คลิก "Save"
- คัดลอก Template ID & Device Info
จดบันทึกข้อมูลสำคัญเหล่านี้ไว้:
- • Template ID
- • Device Name
- • Firmware Version (ถ้ามี)
ข้อควรระวัง: แพลตฟอร์มฟรีของ Blynk 2.0 มีข้อจำกัด เช่น จำนวน Device, Datastream และ Energy ต่อวัน อ่านรายละเอียดได้ที่ Pricing Page
ขั้นตอนที่ 2: ต่อวงจร ESP32
🔌 การต่อสาย LED
วงจร LED พร้อม Resistor
- ESP32 GPIO 2 → Resistor 220Ω → LED Anode (+)
- ESP32 GND → LED Cathode (-)
ใช้ LED บนบอร์ด (ง่ายกว่า)
หลายบอร์ด ESP32 มี LED บนบอร์ดที่ต่อกับ GPIO 2 อยู่แล้ว สามารถใช้ได้เลยโดยไม่ต้องต่อวงจรเพิ่ม
💡 Tip: ถ้าใช้ NodeMCU ESP32 หรือ Wemos ESP32 ส่วนใหญ่จะมี LED บนบอร์ด (สีฟ้า) ที่ต่อกับ GPIO 2 อยู่แล้ว สามารถใช้มันทดสอบได้ทันที!
ขั้นตอนที่ 3: เขียนโค้ด ESP32
📝 ติดตั้ง Blynk Library
- เปิด Arduino IDE
- ไปที่ Sketch → Include Library → Manage Libraries
- ค้นหา "Blynk"
- ติดตั้ง "Blynk" by Volodymyr Shymanskyy
🚀 Blynk 2.0 ESP32 Code
/*************************************************************
Blynk 2.0 ESP32 LED Control
- ควบคุม LED ผ่าน Blynk 2.0 Dashboard
- รองรับ WiFi Auto-reconnect
- รองรับ CynoIoT Integration
*************************************************************/
// ติดตั้ง Library ผ่าน Arduino IDE:
// Sketch → Include Library → Manage Libraries → ค้นหา "Blynk"
#define BLYNK_TEMPLATE_ID "TMPLxxxxxx" // แทนที่ด้วย Template ID ของคุณ
#define BLYNK_DEVICE_NAME "ESP32 LED Control" // ชื่อ Device ใน Blynk
#define BLYNK_AUTH_TOKEN "xxxxxxxxxx" // ไม่บังคับสำหรับ Blynk 2.0
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// ==================== ตั้งค่า WiFi ====================
const char* ssid = "YOUR_WIFI_SSID"; // ชื่อ WiFi ของคุณ
const char* password = "YOUR_WIFI_PASSWORD"; // รหัส WiFi ของคุณ
// ==================== ตั้งค่า Hardware ====================
const int ledPin = 2; // GPIO 2 - LED บนบอร์ด ESP32 ส่วนใหญ่
// ==================== ตั้งค่า Blynk ====================
BlynkTimer timer; // Timer สำหรับทำงานเป็นรอบ
// ==================== Setup Function ====================
void setup() {
Serial.begin(115200); // เปิด Serial Monitor สำหรับ Debug
delay(100);
Serial.println("\n=== Blynk 2.0 ESP32 LED Control ===");
// ตั้งค่า LED Pin เป็น Output
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // เริ่มต้นให้ LED ดับ
Serial.println("✓ LED Pin initialized");
// เชื่อมต่อ WiFi
WiFi.begin(ssid, password);
Serial.print("🔌 Connecting to WiFi");
int attempts = 0;
while (WiFi.status() != WL_CONNECTED && attempts < 20) {
delay(500);
Serial.print(".");
attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("\n✓ WiFi connected!");
Serial.print("📡 IP address: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("\n✗ WiFi connection failed!");
Serial.println("ํPlease check your WiFi credentials and restart");
}
// เชื่อมต่อ Blynk 2.0
Blynk.config(BLYNK_AUTH_TOKEN);
bool connected = Blynk.connect();
if (connected) {
Serial.println("✓ Blynk 2.0 connected!");
} else {
Serial.println("✗ Blynk 2.0 connection failed!");
Serial.println("หมายเหตุ: Blynk 2.0 อาจต้องใช้ BLYNK_TEMPLATE_ID");
}
// ตั้งเวลาอัปเดตสถานะ LED ทุก 1 วินาที (ถ้าต้องการ)
timer.setInterval(1000L, []() {
// สามารถเพิ่มโค้ดอื่นๆ ที่ต้องการทำงานเป็นรอบที่นี่
});
Serial.println("=== Setup Complete ===\n");
}
// ==================== Blynk Callbacks ====================
// ฟังก์ชันนี้จะทำงานเมื่อมีการเปลี่ยนค่าจาก Blynk Dashboard
BLYNK_WRITE(V0) {
int value = param.asInt(); // รับค่าจาก Virtual Pin V0 (0 หรือ 1)
Serial.print("📱 Received from Blynk V0: ");
Serial.println(value);
// ควบคุม LED ตามค่าที่ได้รับ
if (value == 1) {
digitalWrite(ledPin, HIGH); // เปิด LED
Serial.println("💡 LED turned ON");
} else {
digitalWrite(ledPin, LOW); // ปิด LED
Serial.println("🌑 LED turned OFF");
}
}
// ==================== Loop Function ====================
void loop() {
Blynk.run(); // ให้ Blynk ทำงานในแต่ละรอบ
timer.run(); // ให้ Timer ทำงาน
// ตรวจสอบสถานะ WiFi และเชื่อมต่อใหม่ถ้าหลุด
if (WiFi.status() != WL_CONNECTED) {
static unsigned long lastReconnectAttempt = 0;
unsigned long now = millis();
if (now - lastReconnectAttempt > 10000) { // ลองเชื่อมต่อใหม่ทุก 10 วินาที
Serial.println("🔄 WiFi disconnected. Reconnecting...");
WiFi.reconnect();
lastReconnectAttempt = now;
}
}
}
/*************************************************************
หมายเหตุ:
1. แทนที่ BLYNK_TEMPLATE_ID ด้วยค่าจาก Blynk Console
2. แทนที่ ssid และ password ด้วย WiFi ของคุณ
3. อัปโหลดโค้ดและเปิด Serial Monitor (115200 baud)
4. เพิ่ม Device ใน Blynk Console และคัดลอก Firmware Config
*************************************************************/วิธีหา Template ID: ไปที่ Blynk Console → Templates → เลือก Template ที่สร้าง → จะเห็น Template ID ที่มุมบนขวา
ขั้นตอนที่ 4: สร้าง Dashboard บนมือถือ
📱 สร้าง Web Dashboard
- สร้าง Device
- ไปที่ Blynk Console → Devices
- คลิก " + New Device"
- เลือก Template: "ESP32 LED Control"
- คลิก "Create"
- หา Firmware Config
- ในหน้า Device ใหม่ มองหา "Firmware Configuration"
- คัดลอก BLYNK_TEMPLATE_ID และ BLYNK_AUTH_TOKEN
- วางในโค้ด Arduino ของคุณ
- อัปโหลดโค้ดใหม่
- สร้าง Web Dashboard
- ไปที่ Blynk Console → Search → "Web Dashboard"
- คลิก " + New Web Dashboard"
- ตั้งชื่อ: "ESP32 Control Panel"
- คลิก "Create"
- เพิ่ม Widgets
- ใน Web Dashboard คลิก " + Add Widget"
- เลือก "Button"
- ตั้งค่า:
- Name: "Toggle LED"
- Datastream: "LED State" (V0)
- Mode: "Switch"
- On: 1, Off: 0
- คลิก "Save"
- ทดสอบ
- ตรวจสอบว่า ESP32 เชื่อมต่อ Blynk แล้ว (ดู Serial Monitor)
- กดปุ่ม Toggle LED บน Web Dashboard
- LED บน ESP32 ควรจะติด/ดับตามปุ่ม
📲 ดาวน์โหลดแอปมือถือ (iOS/Android)
- iOS: ดาวน์โหลด "Blynk IoT" จาก App Store
- Android: ดาวน์โหลด "Blynk IoT" จาก Google Play
- การใช้งาน: Login ด้วยบัญชีเดียวกับ Web Console และเลือก Device เพื่อควบคุม
ขั้นตอนที่ 5: เชื่อมต่อกับ CynoIoT (ไม่บังคับ)
🔗 CynoIoT + Blynk: ที่สุดของ IoT Platform
คุณสามารถใช้ Blynk สำหรับ UI และใช้ CynoIoT สำหรับ Data Logging, Analytics และ Advanced Features เพิ่มเติม
ข้อดีของการใช้ร่วมกัน:
- ✅ Blynk: Dashboard สวยงาม, ควบคุมง่าย, Mobile App
- ✅ CynoIoT: Data Storage, Analytics, Thai Language Support
- ✅ ทั้งคู่: ครบเครื่องทั้ง UI และ Backend!
วิธีเชื่อมต่อ:
- สร้างบัญชี CynoIoT
- ไปที่ cynoiot.com
- สมัครและสร้าง Device ใหม่
- รับ MQTT Credentials
- จดบันทึก MQTT Broker, Port, Username, Password
- เพิ่ม MQTT ในโค้ด ESP32
(ต้องติดตั้ง PubSubClient Library เพิ่มเติม)
- ส่งข้อมูลไปทั้ง Blynk และ CynoIoT
เพิ่มบรรทัดโค้ดส่งค่า MQTT ใน BLYNK_WRITE callback
📝 ตัวอย่างโค้ด CynoIoT + Blynk (บางส่วน)
// เพิ่ม Library สำหรับ MQTT (CynoIoT)
#include <PubSubClient.h>
// ตั้งค่า CynoIoT MQTT
const char* mqtt_server = "mqtt.cynoiot.com"; // ตัวอย่าง
const int mqtt_port = 1883;
const char* mqtt_user = "YOUR_CYNOIOT_TOKEN";
const char* mqtt_password = "";
const char* mqtt_topic = "devices/ESP32_LED/state";
WiFiClient espClient;
PubSubClient mqtt_client(espClient);
// ฟังก์ชันเชื่อมต่อ MQTT
void reconnectMQTT() {
while (!mqtt_client.connected()) {
Serial.print("🔗 Connecting to CynoIoT MQTT...");
if (mqtt_client.connect("ESP32Client", mqtt_user, mqtt_password)) {
Serial.println("✓ connected");
} else {
Serial.print("✗ failed, rc=");
Serial.print(mqtt_client.state());
Serial.println(" retrying in 5 seconds");
delay(5000);
}
}
}
// อัปเดต BLYNK_WRITE callback ให้ส่งข้อมูลไป CynoIoT ด้วย
BLYNK_WRITE(V0) {
int value = param.asInt();
// ควบคุม LED
digitalWrite(ledPin, value);
// ส่งค่าไป CynoIoT
if (mqtt_client.connected()) {
String payload = String(value);
mqtt_client.publish(mqtt_topic, payload.c_str());
Serial.println("📤 Sent to CynoIoT: " + payload);
}
}แก้ปัญหาที่พบบ่อย (Troubleshooting)
❌ ปัญหา: ESP32 เชื่อมต่อ WiFi ไม่ได้
สาเหตุ:
- ชื่อ WiFi หรือรหัสผ่านผิด
- ESP32 อยู่ไกลเกินไปจาก Router
- WiFi รองรับเฉพาะ 5GHz (ESP32 รองรับ 2.4GHz เท่านั้น)
วิธีแก้ไข:
- ตรวจสอบ ssid และ password ในโค้ด
- ลองนำ ESP32 ไปใกล้ Router
- ใช้ WiFi 2.4GHz
- รีเซ็ต ESP32 และลองใหม่
⚠️ ปัญหา: Blynk เชื่อมต่อไม่ได้
สาเหตุ:
- Template ID ผิด
- Device ยังไม่ถูกสร้างใน Blynk Console
- Firmware Config ไม่ตรงกัน
- WiFi ไม่เสถียร
วิธีแก้ไข:
- ตรวจสอบ Template ID จาก Blynk Console → Templates
- สร้าง Device ใหม่และคัดลอก Firmware Config
- วางค่าใหม่ในโค้ดและอัปโหลดใหม่
- ตรวจสอบ Serial Monitor ดู error message
ℹ️ ปัญหา: LED ไม่ติด/ดับ
สาเหตุ:
- ต่อสายผิดขา
- GPIO Pin ไม่ถูกต้อง
- LED เสีย
วิธีแก้ไข:
- ตรวจสอบวงจรใหม่
- ลองใช้ LED บนบอร์ด (GPIO 2) แทน
- ทดสอบด้วยโค้ดพื้นฐาน (Blink) ก่อนใช้ Blynk
🔧 ปัญหา: อัปโหลดโค้ดไม่ได้
สาเหตุ:
- ไม่ได้เลือก Board หรือ Port ที่ถูกต้อง
- USB Cable ไม่ใช่สายถ่ายข้อมูล
- Driver ไม่ถูกติดตั้ง (CP2102/CH340)
วิธีแก้ไข:
- Tools → Board → ESP32 Arduino → เลือกบอร์ดที่ใช้
- Tools → Port → เลือก COM Port ที่เชื่อมต่อ
- ใช้ USB Cable ที่รองรับการถ่ายข้อมูล
- ติดตั้ง Driver สำหรับ USB-to-Serial
ไอเดียโปรเจกต์ต่อยอด
Smart Weather Station
ใช้ DHT22 วัดอุณหภูมิและความชื้น ส่งค่าไป Blynk Dashboard พร้อม Graph แสดงผล
ระดับ: เริ่มต้นSmart Light Control
ควบคุมไฟบ้านผ่าน Relay Module พร้อม Timer และ Automation
ระดับ: เริ่มต้น - กลางAutomated Plant Watering
ใช้ Soil Moisture Sensor ตรวจสอบความชื้นดิน และปั๊มน้ำอัตโนมัติ
ระดับ: กลางRFID Smart Lock
ใช้ RFID-RC522 ปลดล็อคประตู พร้อมบันทึกประวัติการเข้าใช้งาน
ระดับ: กลาง - ขั้นสูงEnergy Monitor
วัดกระแสไฟด้วย SCT-013 Current Sensor คำนวณ Power และค่าไฟ
ระดับ: ขั้นสูงVoice Assistant with ESP32
ใช้ Blynk + Google Assistant/Alexa ควบคุมด้วยเสียง
ระดับ: ขั้นสูงสรุป
ในบทความนี้ เราได้เรียนรู้วิธีเริ่มต้นใช้งาน Blynk 2.0 กับ ESP32 ตั้งแต่การสมัคร, ติดตั้ง Library, เขียนโค้ด, ไปจนถึงสร้าง Dashboard และควบคุม LED ผ่านมือถือ
Blynk 2.0 เป็นแพลตฟอร์ม IoT ที่เหมาะสำหรับมือใหม่และผู้เริ่มต้น เพราะใช้งานง่าย มี UI สวยงาม และรองรับหลายบอร์ด
สิ่งที่คุณได้เรียนรู้
- ✅ สร้างบัญชีและ Template บน Blynk 2.0 Console
- ✅ เขียนโค้ด ESP32 เชื่อมต่อ Blynk ผ่าน WiFi
- ✅ สร้าง Web Dashboard และเพิ่ม Widgets
- � ใช้ BLYNK_WRITE callback รับค่าจาก Dashboard
- ✅ แก้ปัญหาที่พบบ่อย
ถัดไป
ลองฝึกทำโปรเจกต์เพิ่มเติม เช่น:
- เพิ่มเซ็นเซอร์ DHT22 และแสดงค่าอุณหภูมิใน Blynk
- สร้าง Automation เช่น "ถ้าอุณหภูมิ > 30°C ให้เปิดพัดลม"
- เชื่อมต่อกับ CynoIoT สำหรับ Data Logging
ดูบทความเพิ่มเติมได้ที่ บทความทั้งหมด