ควบคุม LED ผ่านแอป Blynk ด้วย Arduino Uno
เริ่มแรกต้องต่อ LED เข้ากับ Arduino Uno จากนั้นก็ต่อ HC05 หรือ HC06 (โมดูลบลูทูธ) เข้ากับ Arduino อัพโหลดโค้ด & เซ็ตอัพ Blynk เสร็จแล้ว
เดี๋ยวพี่จะอธิบายให้น้องดูผ่านวิดีโอนะ
หน้าจอควบคุมบนมือถือ: แอป BLYNK IoT ผ่านบลูทูธ
การควบคุม Arduino จากมือถือแบบเนทีฟเนี่ย ถ้าจะเขียนเองต้องไปงมกับแอปพลิเคชัน Java/Swift ที่โคตรจะซับซ้อน เฟรมเวิร์ก BLYNK IoT นี่แหละที่ช่วยลบความยุ่งยากนั้นทิ้งไปซะ! แม้ว่า Blynk จะดังมากในเรื่องการทำแดชบอร์ด IoT ผ่าน Wi-Fi แต่มันยังมีโหมดลับๆ ที่ไม่ค่อยมีใครรู้และเอกสารก็น้อยมาก ที่ให้เราใช้งานผ่านการเชื่อมต่อ บลูทูธ HC-05 / HM-10 แบบออฟไลน์โดยตรงเลย! เราแค่ใช้แอปบนมือถือที่ต่อคลาวด์อยู่แล้ว มาลากๆ วางปุ่มเสมือน (Virtual Buttons) ลงไป พอเรากดปุ่มในแอป Blynk มันจะสร้างข้อมูล Serial ที่ซับซ้อนให้เองอัตโนมัติ แล้วยิงผ่านบลูทูธเข้าไปหา Arduino โดยตรงเลย ไม่ต้องพึ่งเน็ต ก็สามารถควบคุม LED จริงๆ ได้แล้ววว!
ไปป์ไลน์เชื่อมต่อ SoftwareSerial / BLYNK
ถ้าน้องต่อโมดูลบลูทูธตรงๆ ไปที่ขา 0 กับ 1 ของ Arduino นะ มันจะทำให้อัพโหลดโค้ดใหม่ไม่ได้เลย ต้องใช้วิธีตั้งพอร์ตเสมือนแทน
- ใช้ไลบรารี
<SoftwareSerial.h>สร้างพอร์ต Serial เสมือนขึ้นมาบนขา10, 11 - โยนไลบรารีหลักอย่าง
<BlynkSimpleSerialBLE.h>เข้าไปให้เต็มที่! - พอ Arduino บูท มันจะยอมจำนน ส่งต่อการควบคุมพอร์ต Serial ทั้งหมดให้เฟรมเวิร์ก Blynk จัดการแทน!
#define BLYNK_PRINT Serial // สำคัญมากสำหรับการตามหาบั๊กตอนเชื่อมต่อ!
#include <SoftwareSerial.h>
#include <BlynkSimpleSerialBLE.h>
// โค้ดลับ BLYNK AUTHENTICATION TOKEN Matrix
char auth[] = "Your_123_Massive_Blynk_Auth_String";
SoftwareSerial SerialBLE(10, 11); // RX, TX ไปหา HC-05/HM-10
void setup() {
Serial.begin(9600); // เอาไว้ดีบั๊กใน Serial Monitor
SerialBLE.begin(9600); // เครื่องยนต์สื่อสารคลื่นวิทยุ 2.4GHz
// ส่งมอบอำนาจการควบคุมให้ BLYNK Framework อย่างสมบูรณ์!
Blynk.begin(SerialBLE, auth);
}
void loop() {
Blynk.run(); // คำสั่งนี้จะรันทุกอย่างอัตโนมัติ ทั้งการตรวจสอบและควบคุม LED!
}
ขาเสมือน BLYNK (V1, V2...)
น้องไม่ต้องมานั่งเขียน if(serial == 1) { digitalWrite(13, HIGH); } อีกแล้ว!
- ในแอป Blynk น้องแค่ลาก Widget "Button" มาแล้วลิงก์มันเข้ากับ "Virtual Pin V1"
- ในโค้ด C++ น้องก็แค่ใช้ BLYNK Macro ตัวใหญ่ๆ นี้:
BLYNK_WRITE(V1) { ... } - พอน้องแตะปุ่มในแอป โค้ดในแมโครจะทำงานอัตโนมัติในแบ็กกราวด์ ดึงค่าจาก
param.asInt()มา แล้วสั่งงานไปที่ขา Digital ของฮาร์ดแวร์ทันที! สะดวกปะล่า?
อุปกรณ์ที่ต้องใช้ในระบบ
- Arduino Uno/Nano (ทำหน้าที่เป็นสะพานเชื่อมระหว่าง BLYNK MACROS กับฮาร์ดแวร์ LED)
- โมดูลบลูทูธ HC-05 หรือ HM-10 (สำคัญมาก! ต้องใช้ตัวต้านทาน (Resistor) 1K/2K-โอห์ม ทำ Voltage Divider มาแบ่งแรงดันจากขา TX 5V ของ Arduino ก่อนส่งเข้าโมดูลบลูทูธ 3.3V ไม่งั้นไหม้แน่นอน!)
- มือถือ Android หรือ iPhone ที่ลงแอป BLYNK IoT Application ไว้
- อุปกรณ์เอาต์พุต: เช่น รีเลย์ (Relay), LED แบบ WS2812B, หรือเซอร์โวมอเตอร์ (Servo) เพื่อควบคุมผ่านหน้าจอมือถือได้แบบออฟไลน์ ไม่ต้องใช้ Wi-Fi เลยสักนิด! จัดไปวัยรุ่น!