สวัสดีครับนักศึกษาทุกคน ในบทที่แล้วเราส่งข้อมูลผ่าน HTTP ได้แล้ว แต่มันก็เป็นแค่ตัวเลขดิบๆ ที่อ่านยาก แถมยังสั่งงานกลับมาที่บอร์ดไม่ได้ จะดีกว่าไหม… ถ้าเราสามารถเปิดมือถือขึ้นมาแล้วเห็น “เกจวัดอุณหภูมิ” สวยๆ หรือกดปุ่มบนหน้าจอมือถือแล้วไฟที่บ้านติดทันที?

สิ่งที่จะมาช่วยให้เราทำแบบนั้นได้โดยไม่ต้องเขียนแอปพลิเคชันเองตั้งแต่ศูนย์ เรียกว่า “IoT Platform” ครับ และในบทนี้เราจะมาใช้งานแพลตฟอร์มขวัญใจนักประดิษฐ์ทั่วโลกที่ชื่อว่า Blynk (New Gen) กันครับ


1. IoT Platform คืออะไร? ทำไมต้องใช้?

ถ้าเปรียบ ESP32 เป็น “คนงาน” และมือถือเป็น “เจ้านาย” … IoT Platform ก็คือ “สำนักงานส่วนกลาง” ครับ ที่ทำหน้าที่:

  1. Connectivity: เป็นตัวกลางให้คนงานกับเจ้านายคุยกัน (ผ่าน Server ของเขา)
  2. Data Storage: เก็บข้อมูลย้อนหลังให้เรา
  3. Visualization: แปลงข้อมูลตัวเลข ให้เป็นกราฟ หรือปุ่มกดสวยๆ (Dashboard)

แพลตฟอร์มมีหลายเจ้า เช่น NETPIE (ของไทย), ThingSpeak, Tuya แต่ที่เรียนรู้ได้เร็วที่สุดและมีแอปฯ มือถือที่ใช้งานง่ายที่สุดคือ Blynk ครับ


2. เตรียมตัวก่อนเริ่ม (Blynk ยุคใหม่)

คำเตือน: ใครที่เคยเล่น Blynk เวอร์ชันเก่า (Legacy) ที่ไอคอนสีเขียวๆ ลืมมันไปก่อนครับ! ปัจจุบันเราเปลี่ยนมาใช้ Blynk IoT (New Gen) ที่ต้องมีการสร้าง “Template” ก่อนเสมอครับ

สิ่งที่ต้องเตรียม:

  1. สมัครสมาชิกที่เว็บไซต์ blynk.cloud (ใช้ฟรีได้ 2 อุปกรณ์)
  2. ดาวน์โหลดแอป Blynk IoT (ไอคอนสีเขียวเข้ม) ลงมือถือ

Download For iOS Download For Android


3. ขั้นตอนที่ 1: สร้าง Template และ Datastream (ทำบนเว็บ)

หัวใจสำคัญของ Blynk ใหม่คือ Datastream เปรียบเสมือน “ท่อน้ำ” หรือ “สายไฟจำลอง” ที่เชื่อมระหว่างฮาร์ดแวร์กับแอปฯ ครับ

1. Login เข้า blynk.cloud

2. ไปที่เมนู Templates (รูปสี่เหลี่ยมซ้อนกัน) -> กด + New Template

  • Name: ตั้งชื่อ เช่น ESP32 Smart Home
  • Hardware: เลือก ESP32
  • Connection Type: เลือก WiFi
  • กด Done

3. ไปที่แถบ Datastreams -> กด + New Datastream -> เลือก Virtual Pin

  • Name: ตั้งชื่อ เช่น Switch Control
  • Pin: เลือก V0 (จำเลขนี้ไว้ให้ดี!)
  • Data Type: เลือก Integer
  • กด Create

4. ขั้นตอนที่ 2: สร้าง Device เพื่อรับ “รหัสผ่าน”

1. ด้านซ้ายมือ -> กด + New Device

2. เลือก From template -> เลือก Template ที่เราเพิ่งสร้าง

4. สำคัญที่สุด: ทางด้านขวา คุณจะเห็นกล่องโค้ดสีดำที่เขียนว่า “Firmware Configuration”

  • ให้ Copy โค้ด 3 บรรทัดนี้เก็บไว้ครับ มันคือบัตรผ่านทางเข้า Server

C++
#define BLYNK_TEMPLATE_ID "TMPL6nv1-MaEH"
#define BLYNK_TEMPLATE_NAME "ESP32 Smart Home"
#define BLYNK_AUTH_TOKEN "ztbFzvfg_2yqnIE-HySnMJj5Ad00-371"

5. ขั้นตอนที่ 3: ติดตั้ง Library และเขียนโค้ด

1. ใน Arduino IDE ให้ลง Library ชื่อ “Blynk” (โดย Volodymyr Shymanskyy)

2. เขียนโค้ดเชื่อมต่อเบื้องต้นดังนี้:

C++
// 1. นำ 3 บรรทัดที่ Copy จากเว็บมาวาง "ไว้บนสุด" เสมอ!
#define BLYNK_TEMPLATE_ID "TMPLxxxxxx"
#define BLYNK_TEMPLATE_NAME "ESP32 Smart Home"
#define BLYNK_AUTH_TOKEN "นำTokenของคุณมาใส่ตรงนี้"

// 2. เรียกใช้ Library
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

// 3. ตั้งค่า WiFi
char ssid[] = "YOUR_WIFI_NAME";
char pass[] = "YOUR_WIFI_PASS";

void setup() {
  Serial.begin(115200);
  
  // คำสั่งเชื่อมต่อ Blynk (มันจะต่อ WiFi ให้เอง)
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}

void loop() {
  // หัวใจสำคัญ: ต้องมีบรรทัดนี้เพื่อให้ Blynk ทำงานตลอดเวลา
  Blynk.run();
}

3. เชื่อมต่อสำเร็จ จะขึ้นสถานะ Online


6. ขั้นตอนที่ 4: สร้างปุ่มบนมือถือ (Mobile Dashboard)

1. เปิดแอป Blynk IoT ในมือถือ

2. Log in และเลือก Device ที่เราสร้างไว้ (จะเห็นชื่อขึ้นมาแล้ว)

3. กดรูป ประแจ (Setup Dashboard)

4. กดปุ่ม + แล้วลาก Button มาวาง

5. จิ้มที่ปุ่มเพื่อตั้งค่า -> ตรงช่อง DataStream ให้เลือก Switch Control (V0) ที่เราสร้างไว้

6. เปลี่ยน Mode จาก Push เป็น Switch

7. กด Back ออกมา แล้วกด Switch


7. ทดสอบผลลัพธ์

  1. Upload โค้ดลงบอร์ด ESP32
  2. เปิด Serial Monitor ดูว่าขึ้น “Ready” หรือยัง
  3. เปิดแอปในมือถือ จะเห็นจุดสีเขียวบอกสถานะว่า “Online”
  4. ลองกดปุ่มบนมือถือ -> ตอนนี้จะยังไม่มีอะไรเกิดขึ้นที่บอร์ด แต่ในแอปปุ่มจะเปลี่ยนสถานะได้

ทำไมไฟยังไม่ติด? เพราะเรายังไม่ได้เขียนโค้ดบอก ESP32 ว่า “ถ้า V0 ถูกกด ให้ทำอะไร” ครับ ซึ่งเราจะมาลุยกันต่อในบทหน้าครับ


สรุปท้ายบท

วันนี้เราได้วางโครงสร้างพื้นฐานที่สำคัญที่สุด คือการสร้าง “สะพาน” เชื่อมระหว่าง ESP32 กับมือถือผ่าน Blynk Cloud เรียบร้อยแล้วครับ แม้จะดูขั้นตอนเยอะในช่วงแรก (Template -> Datastream -> Device) แต่ถ้าเข้าใจคอนเซปต์นี้แล้ว แพลตฟอร์มไหนๆ ก็หลักการเดียวกันครับ

ภารกิจต่อไป: มีสะพานแล้ว แต่รถยังไม่วิ่ง! ในบทความหน้า เราจะมาเขียนโค้ดสั่งงานจริง “กดปุ่มบนมือถือ สั่งไฟ LED ที่บอร์ดติด” และ “โชว์ค่าอุณหภูมิจากบอร์ด ขึ้นไปบนมือถือ” เพื่อให้เป็นระบบ Smart Home ที่สมบูรณ์แบบครับ


หมายเหตุ:

  • Blynk New Gen ค่อนข้างเข้มงวดเรื่อง Template ID ครับ ถ้านักศึกษาเอาโค้ดเก่าๆ ในเน็ตมาใช้โดยไม่มี Template ID จะต่อไม่ได้เลย ต้องย้ำจุดนี้ครับ
  • ในบทนี้ผมเน้นแค่การ “เชื่อมต่อ (Connect)” ให้ผ่านก่อน เพื่อไม่ให้เนื้อหายาวเกินไป