ESP32-C3 Smart Dial ลูกบิด BLE ที่ตั้งเมนูเองได้
เมาส์ก็มี คีย์บอร์ดก็มี... แต่สาย Maker จะยอมกดปุ่มแบบเดิมทำไม ถ้าเราสามารถเอา ESP32-C3 + OLED + Rotary Encoder มาทำลูกบิดไร้สายที่มีเมนูของตัวเองได้?
โปรเจกต์ ESP32-C3 Smart Dial เป็น Controller ขนาดเล็กที่ใช้ Bluetooth Low Energy HID หรือ BLE HID ส่งคำสั่งไปยังคอมพิวเตอร์และอุปกรณ์มือถือ โดยไม่ต้องสร้าง App เฉพาะขึ้นมาเพิ่ม
วิธีใช้งานก็ตรงไปตรงมา: หมุน Encoder เพื่อเลื่อนเมนูบน OLED แล้วกดเพื่อเลือกคำสั่ง จากนั้น ESP32-C3 จะส่ง Keyboard, Media หรือ Shortcut Command ไปยังเครื่องที่ Pair ผ่าน Bluetooth
จุดที่ทำให้โปรเจกต์นี้น่าสนใจกว่า DIY Volume Knob ทั่วไป คือ Firmware ไม่ได้มีแค่ Volume Up / Down แต่มีทั้ง Media, Keyboard, Browser, Presentation, Custom Macros, Device Profiles, Favorites, Controller Lock, OLED Brightness, Idle Screen และ Deep Sleep รวมอยู่ใน Controller ตัวเดียว
Key Takeaways
- ใช้ ESP32-C3 Super Mini เป็น Controller หลัก
- แสดงเมนูผ่าน SH1106 OLED 128×64 เชื่อมต่อผ่าน I²C
- ใช้ Rotary Encoder สำหรับเลื่อนเมนูและกดเลือกคำสั่ง
- เชื่อมต่อคอมพิวเตอร์หรือมือถือผ่าน BLE HID
- รองรับ Profile สำหรับ Auto / Universal, Windows, macOS, Android และ iPhone / iPad
- มี Media Control, Keyboard Shortcuts, Browser, Presentation และ Custom Text Macros
- Settings ถูกบันทึกด้วย ESP32 Preferences ทำให้ยังอยู่หลัง Reset ได้
- มี Controller Lock, OLED Brightness, Idle Mode และ Deep Sleep
หมายเหตุก่อนเริ่ม: Source มีชื่อ Rotary Encoder ไม่ตรงกันเล็กน้อย โดย Hardware List บน Hackster แสดง M274 แต่ Build Guide, GitHub README และ Firmware อ้างถึง KY-040 / Encoder แบบ CLK-DT-SW ดังนั้นบทความนี้จะยึด KY-040 ตาม README และ Firmware เป็นหลัก
ESP32-C3 Smart Dial คืออะไร?
Smart Dial ตัวนี้เป็น Physical Controller สำหรับสั่งงานคอมพิวเตอร์หรืออุปกรณ์มือถือ โดยใช้ ESP32-C3 Super Mini เป็นสมองหลัก
แทนที่จะมีปุ่มเต็มแผง ผู้สร้างใช้ Rotary Encoder เป็น Input หลักเพียงชุดเดียว แล้วเอา OLED มาช่วยแสดง Menu
เวลาใช้งาน:
- หมุนลูกบิดเพื่อเลื่อน Selection
- กดเพื่อเลือกหรือ Execute คำสั่ง
- ESP32-C3 ส่งคำสั่งผ่าน BLE HID
- Host มอง Controller เป็น Keyboard / Media Input Device
ข้อดีของแนวคิดนี้คือ ไม่ต้องพัฒนา Mobile App หรือ Desktop App เพื่อรับคำสั่งเฉพาะของ Controller เพราะใช้ BLE HID ซึ่งเป็นแนวคิดเดียวกับ Bluetooth Keyboard และ Media Controller
สุดท้ายเราจะสร้างอะไร?
Prototype ตาม Source มีองค์ประกอบหลักดังนี้:
- ESP32-C3 Super Mini
- SH1106 OLED 128×64
- Rotary Encoder
- BLE HID Wireless Communication
- OLED Menu Interface
- Device Profiles หลายระบบ
- Media Controls
- Keyboard Shortcuts
- Browser Controls
- Presentation Controls
- Custom Text Macros
- Favorites
- Settings
- Controller Lock
- OLED Brightness
- Deep Sleep
- Idle Screen / Animation
มองแบบง่าย ๆ: นี่คือการเอา ESP32-C3 มาทำเป็น Mini Control Surface ที่เปลี่ยนหน้าที่ได้ตาม Menu แทนที่จะให้ Rotary Encoder ทำงานแค่ Volume อย่างเดียว
Hardware ที่ต้องใช้
| Hardware | จำนวน | หน้าที่ |
|---|---|---|
| ESP32-C3 Super Mini | 1 | Controller หลัก + BLE HID |
| SH1106 128×64 OLED | 1 | แสดง Menu และ Status |
| KY-040 Rotary Encoder | 1 | หมุนเลือก Menu และกดคำสั่ง |
| Breadboard | 1 | ประกอบ Prototype |
| Jumper Wires | ตามต้องการ | เชื่อม ESP32-C3, OLED และ Encoder |
| USB-C Cable | 1 | Power และ Upload Firmware |
กำลังหาของทำโปรเจกต์? ถ้าต้องการ ESP32, Development Board, OLED, Sensor หรืออุปกรณ์ Maker สามารถสอบถามทีม Globalbyte ผ่าน LINE OA Globalbyte ก่อนเลือกอุปกรณ์ให้ตรงกับงานได้
Smart Dial ทำงานอย่างไร?
Architecture ของโปรเจกต์แบ่งเป็นส่วนง่าย ๆ ได้ดังนี้:
Rotary Encoder รับ Input
Encoder ส่งข้อมูลทิศทางผ่าน CLK และ DT ส่วน SW ใช้รับการกดลูกบิด
ESP32-C3 ประมวลผล Menu
Firmware ตัดสินใจว่าตอนนี้ผู้ใช้อยู่หน้า Menu ไหน และคำสั่งที่เลือกคืออะไร
OLED แสดง Menu
SH1106 OLED เชื่อมกับ ESP32-C3 ผ่าน I²C และใช้แสดง Menu, Status, Lock, Sleep และหน้าจอต่าง ๆ
BLE HID ส่งคำสั่ง
เมื่อเลือก Action ESP32-C3 จะส่ง Keyboard หรือ Media Command ไปยัง Host ที่ Pair อยู่
Preferences เก็บ Configuration
ค่า Settings และ Custom Macros สามารถบันทึกไว้ เพื่อให้ยังอยู่หลัง Reset
Wiring และ Pin Connections
GitHub README และ Firmware ใช้ Pin Mapping ดังนี้:
| อุปกรณ์ | ขา | ESP32-C3 |
|---|---|---|
| OLED | VCC | 3.3V |
| OLED | GND | GND |
| OLED | SDA | GPIO 5 |
| OLED | SCL | GPIO 6 |
| Encoder | CLK | GPIO 3 |
| Encoder | DT | GPIO 4 |
| Encoder | SW | GPIO 7 |
| Encoder | VCC | 3.3V |
| Encoder | GND | GND |
Firmware ใช้ OLED Address: 0x3C และตั้งจอเป็น SH1106 128×64
ระวังแรงดัน: Source กำหนดให้ใช้ OLED ที่รองรับ 3.3V และไม่ควรต่อ 5V เข้ากับ ESP32-C3 GPIO โดยตรง
เตรียม Arduino IDE และ Libraries
Software หลักที่ใช้คือ Arduino IDE
1. ติดตั้ง ESP32 Arduino Board Package
ใน Arduino IDE เปิด:
File → Preferences
แล้วเพิ่ม Espressif Boards Manager URL:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
จากนั้นไปที่:
Tools → Board → Boards Manager
Search: esp32 แล้วติดตั้ง esp32 by Espressif Systems
ถ้าไม่มีชื่อ Board ของ Super Mini รุ่นที่ใช้ Source แนะนำเลือก:
ESP32C3 Dev Module
2. ติดตั้ง Libraries
ไปที่:
Sketch → Include Library → Manage Libraries
แล้วติดตั้ง:
- Adafruit GFX Library
- Adafruit SH110X
- NimBLE-Arduino
- HijelHID / HijelHID_BLEKeyboard
ส่วน Preferences, Wire, esp_sleep และ GPIO Driver มาจาก ESP32 / Arduino Environment ที่ Firmware ใช้อยู่
Version Compatibility: Source ระบุว่าเอกสาร HijelHID ในช่วงที่โปรเจกต์จัดทำ กำหนด NimBLE-Arduino ≥ 2.3.8 และ ESP32 Arduino Core ≥ 3.3.7 หาก Compile ไม่ผ่าน ให้ตรวจ Version ของสองส่วนนี้ก่อน
Upload Firmware ลง ESP32-C3
เปิด Firmware จาก Repository ของผู้สร้าง ใน Arduino IDE
จากนั้นเลือก:
Tools → Board → ESP32 Arduino → ESP32C3 Dev Module
เลือก COM Port ที่ถูกต้อง แล้วกด Upload
ถ้า Upload ไม่เข้า: Super Mini บางรุ่นอาจต้องกดหรือกดค้างปุ่ม BOOT ระหว่างเริ่ม Upload ตามพฤติกรรมของ Board ที่ใช้
เรื่อง Version ของ Firmware: Hackster อ้างถึงชื่อไฟล์ V8 แต่ GitHub Repository ปัจจุบันมีชื่อไฟล์ ESP32_C3_Smart_Dial_V0.1.ino ขณะที่ Comment ใน Firmware เขียนว่า SMART DIAL CONTROLLER V8 ดังนั้นบทความนี้ไม่ฟันธงเลข Version และแนะนำให้ใช้ไฟล์ปัจจุบันจาก Repository ของผู้สร้าง
First Boot และ Serial Monitor
หลัง Upload สำเร็จ เปิด:
Tools → Serial Monitor
ตั้ง Baud Rate:
115200 baud
Source ระบุว่าระบบจะแสดงข้อมูลเริ่มต้นของ Smart Dial และแจ้งชื่อ Bluetooth Device สำหรับ Pair
Pair Bluetooth กับ C3 Smart Dial
- เปิด Smart Dial
- เปิด Bluetooth Settings บนคอมพิวเตอร์หรือโทรศัพท์
- Search Bluetooth Devices
- หาอุปกรณ์ชื่อ C3 Smart Dial
- กด Pair / Connect
Firmware สร้าง BLE Keyboard Device โดยใช้ชื่อ:
C3 Smart Dial
เมื่อเชื่อมต่อสำเร็จ OLED สามารถแสดง BLE Status ของ Controller ได้
วิธีหมุนและกด Smart Dial
| Input | Function |
|---|---|
| Rotate Clockwise | เลื่อน Selection |
| Rotate Counter-clockwise | เลื่อน Selection |
| Single Press | Select / Execute |
| Double Press | Favorites |
| Long Press | Back |
| Triple Press | Home |
| Very Long Press | Settings |
Timing โดยประมาณที่ Source ระบุ:
- Long Press: ประมาณ 700 ms
- Very Long Press: ประมาณ 2200 ms
Firmware ยังมี Button Debouncing และ Encoder Debouncing เพื่อลดการอ่าน Input ซ้ำโดยไม่ตั้งใจ
Main Menu มีอะไรบ้าง?
Menu จริงใน Firmware ประกอบด้วย:
- TEST EVERYTHING
- Quick Control
- Device Profile
- Media
- System
- Navigation
- Editing
- Browser
- Presentation
- Keyboard / F Keys
- Custom Macros
- Utilities
- Controller Power
- Settings
Media Controller
Media Menu รองรับคำสั่ง:
- Volume Up
- Volume Down
- Mute
- Play / Pause
- Next Track
- Previous Track
- Stop
- Display Brightness Commands
- Keyboard Backlight Commands
ตรงนี้ทำให้ Smart Dial ใช้เป็น DIY Volume Knob หรือ Desktop Media Controller ได้
Keyboard และ Navigation
- Up / Down / Left / Right
- Enter
- Escape
- Tab
- Space
- Home / End
- Page Up / Page Down
- Backspace
- Delete
- Insert
- F1–F12
- Print Screen
Editing
- Copy
- Paste
- Cut
- Undo
- Redo
- Select All
- Save
- Find
- Bold
- Italic
- Underline
Browser Controller
- New Tab
- Close Tab
- Reopen Tab
- Refresh
- Address Bar
- Back / Forward
- Zoom In / Out
- Reset Zoom
- Fullscreen
- Downloads
- History
Presentation Controller
- Next Slide
- Previous Slide
- First Slide
- Last Slide
- Start Presentation
- End Presentation
- Black Screen
เพราะฉะนั้น Smart Dial ตัวเดียว สามารถเปลี่ยน Character จาก Volume Knob เป็น Browser Remote หรือ Presentation Remote ผ่าน Menu ได้เลย
Custom Macros: หมุนหนึ่งที แล้วพิมพ์ข้อความให้เลย
Firmware มี Custom Text Macro จำนวน 4 Slot
Default Example ใน Source คือ:
Hello!
Thank you.
I will get back to you shortly.
support@example.com
Macro เหล่านี้ถูกบันทึกด้วย ESP32 Preferences ทำให้ข้อมูลยังอยู่หลัง Restart
แนวคิดนี้สามารถนำไปใช้กับข้อความที่พิมพ์บ่อย เช่น:
- Email Signature
- ข้อความตอบลูกค้าที่ใช้บ่อย
- Chat Message
- Coding Snippet แบบข้อความ
- Frequently Used Command
- Template Text
อย่าเก็บ Password หรือ Credential สำคัญเป็น Macro: Source เตือนชัดเจนว่า ไม่ควรเก็บรหัสผ่านหรือข้อมูล Sensitive เพราะ Macro ถูกใช้เพื่อพิมพ์ข้อความผ่าน BLE HID
Device Profiles ทำไมต้องแยก Windows, macOS และมือถือ?
Smart Dial มี Profile:
- Auto / Universal
- Windows
- macOS
- Android
- iPhone / iPad
เหตุผลคือ BLE HID ไม่สามารถบอก Controller ได้อย่างน่าเชื่อถือเสมอไปว่า Host ที่เชื่อมอยู่เป็น Windows, macOS, Android หรือ iOS
Firmware จึงเปิดให้ผู้ใช้เลือก Profile เอง เมื่อต้องใช้ Shortcut ที่แตกต่างกันตาม Operating System
ส่วน Auto / Universal ถูกออกแบบให้ใช้คำสั่งที่เป็น Universal ก่อนเป็นหลัก
Settings, OLED, Idle Mode, Lock และ Deep Sleep
Settings Menu ใน Source มี:
- OLED Off
- Controller Lock
- Deep Sleep
- Volume Regulator
- OLED Brightness
- Confirmation Enable / Disable
- Reverse Encoder
- Action Popup
- Cute Animations
- Idle Screen
- Clear BLE Pairing
- Factory Reset
- About
OLED Brightness
OLED สามารถปรับ Contrast / Brightness ได้ โดยหมุน Encoder เพื่อเปลี่ยนค่า และกดเพื่อ Save
Firmware เก็บค่าดังกล่าวใน Preferences ทำให้ยังอยู่หลัง Reset
Idle Mode
หาก Controller ไม่มีการใช้งานประมาณ 30 วินาที Firmware สามารถเข้าสู่ Idle Screen
หน้าจอแสดงข้อความลักษณะ:
BLE connected
Turn or press to wake
Controller Lock
Lock Mode ช่วยป้องกัน Encoder ถูกหมุนหรือกดโดยไม่ตั้งใจ
Firmware ต้องใช้ Long Press เพื่อ Unlock Controller
Deep Sleep
เมื่อเลือก Deep Sleep ESP32 จะตั้ง Encoder Switch เป็น Wake-up Source ก่อนเข้า Sleep
Feature นี้เหมาะกับแนวคิด Future Battery-powered Version ที่ผู้สร้างกล่าวถึง
ข้อจำกัดที่ควรรู้ก่อนเรียกมันว่า Universal Controller
1. Volume % บน OLED เป็นค่าประมาณ
BLE HID ในโปรเจกต์นี้ ส่ง Volume Up / Down Command ไปยัง Host แต่ไม่ได้อ่านระดับเสียงจริงจาก Host กลับมา
ดังนั้นถ้าจอขึ้น:
50%
ไม่ได้หมายความว่า Volume จริงของคอมพิวเตอร์ ต้องอยู่ที่ 50% เสมอไป
Volume บนจอคือ Local Estimate: Controller คำนวณค่าประมาณจากคำสั่งที่ตัวเองส่ง ไม่ใช่ Feedback จาก Host
2. Mobile Control มีข้อจำกัดตาม Android / iOS
Source มีคำสั่งอย่าง:
- Camera Shutter
- Home
- Back
- App Switch
- Search
แต่ System-level Function บางอย่าง ถูก Operating System จำกัด และอาจไม่ทำงานเหมือนกันทุกอุปกรณ์
คำอธิบายที่ถูกต้อง: Smart Dial ใช้ BLE HID เพื่อส่ง Keyboard, Media และ Shortcut Command ที่ Host รองรับ โดยความสามารถบางอย่างแตกต่างกันตาม Platform ไม่ควรอธิบายว่าเป็น “Complete iPhone System Control”
Troubleshooting: เปิดไม่ติด หมุนกลับด้าน หรือ Bluetooth หาไม่เจอ
OLED ไม่ขึ้น
เช็ก Wiring:
- SDA → GPIO 5
- SCL → GPIO 6
- VCC → 3V3
- GND → GND
Firmware คาดหวัง OLED Address: 0x3C
หาก Module ใช้ 0x3D Source ระบุให้เปลี่ยน Address ใน Firmware
#define OLED_ADDRESS 0x3C
Encoder หมุนผิดทิศ
เข้า:
Settings → Reverse Encoder
Firmware มี Option สำหรับกลับทิศ Encoder โดยตรง
Bluetooth Device ไม่ขึ้น
- เช็กว่า ESP32-C3 ได้ Power
- เช็กว่า Upload BLE Firmware สำเร็จ
- เปิด Bluetooth บน Host
- ค้นหา `C3 Smart Dial`
- หากมี Pairing เก่าค้าง ใช้ Clear BLE Pairing
Compile ไม่ผ่าน
ตรวจ Library / Core:
- ESP32 Arduino Core
- NimBLE-Arduino
- HijelHID_BLEKeyboard
- Adafruit GFX
- Adafruit SH110X
Code สำคัญจาก Firmware จริง
Firmware เต็มของโปรเจกต์มีขนาดค่อนข้างใหญ่ จึงไม่ควรวางทั้งหมดลงใน Blog แต่ส่วนสำคัญด้านล่าง คัดจาก Firmware ของผู้สร้างโดยตรง เพื่อให้เห็นโครงสร้างจริงของโปรเจกต์
#include <Arduino.h>
#include <Wire.h>
#include <Preferences.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>
#include <HijelHID_BLEKeyboard.h>
#include <esp_sleep.h>
#include <driver/gpio.h>
#define OLED_SDA_PIN 5
#define OLED_SCL_PIN 6
#define ENCODER_CLK_PIN 3
#define ENCODER_DT_PIN 4
#define ENCODER_SW_PIN 7
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET_PIN -1
#define OLED_ADDRESS 0x3C
Adafruit_SH1106G display(
SCREEN_WIDTH,
SCREEN_HEIGHT,
&Wire,
OLED_RESET_PIN
);
HijelHID_BLEKeyboard keyboard(
"C3 Smart Dial",
"ESP32-C3",
100
);
Preferences preferences;
const char *DEFAULT_MACRO_1 = "Hello!";
const char *DEFAULT_MACRO_2 = "Thank you.";
const char *DEFAULT_MACRO_3 = "I will get back to you shortly.";
const char *DEFAULT_MACRO_4 = "support@example.com";
String customMacros[4];
enum DeviceProfile : uint8_t {
PROFILE_AUTO = 0,
PROFILE_WINDOWS,
PROFILE_MACOS,
PROFILE_ANDROID,
PROFILE_IOS,
PROFILE_COUNT
};
ต้องการ Firmware เต็ม: แนะนำให้เปิด GitHub Repository — ESP32-C3 Smart Dial Custom BLE Menu Controller เพื่อดูไฟล์ล่าสุดจากผู้สร้างโดยตรง
ทำไมโปรเจกต์นี้เหมาะกับคนเริ่ม Embedded?
ถึง Feature List จะยาว แต่ Hardware หลักมีไม่กี่ชิ้น ทำให้โปรเจกต์นี้แตะหลาย Concept โดยไม่ต้องเริ่มจากวงจรใหญ่
Hardware ที่ได้เรียนรู้
- GPIO
- I²C
- Digital Inputs
- Rotary Encoder
- Internal Pull-ups
- USB Power
Software ที่ได้เรียนรู้
- Arduino C++
- Menu System
- State Machine
- Button Debouncing
- Encoder Handling
- Non-volatile Storage
- BLE HID
- OLED Graphics
- Power Management
จุดสำคัญคือ โปรเจกต์ไม่ต้องสร้าง App ใหม่บนมือถือ แต่ใช้ BLE HID Standard ทำให้ Host ตีความ Controller เป็น Keyboard / Media Device ได้
Future Improvements: จาก Breadboard ไปเป็นอุปกรณ์ใช้จริง
Source เสนอแนวทางต่อยอด Hardware เช่น:
- Custom PCB
- 3D-printed Enclosure
- Rechargeable Battery
- USB-C Charging
- RGB Status LED
- Better Encoder
- Larger OLED
- Mechanical Rotary Knob
ส่วน Software สามารถไปต่อได้ด้วย:
- Custom Macro Editor
- More User Profiles
- Per-profile Macros
- Custom Menu Creation
- Icon-based OLED UI
- More Animations
- Battery Monitoring
- BLE Connection Indicator
- Configurable Button Actions
แนวคิด Advanced Version สามารถพัฒนาไปเป็น Desktop Productivity Controller พร้อม Profile สำหรับงานเฉพาะ เช่น:
- Windows
- macOS
- Android
- iOS
- Photoshop
- Premiere Pro
- VS Code
- Spotify
- PowerPoint
- YouTube
- CAD
- Embedded Development
อยากทำ Prototype ให้เป็นชิ้นงานจริง? ถ้ากำลังทำ ESP32 Controller แบบนี้ สามารถสอบถามบอร์ดและอุปกรณ์ Maker จาก Globalbyte ได้ และถ้าจะต่อยอดจาก Breadboard ไปเป็นตัวเครื่อง โปรเจกต์ต้นฉบับเองก็เสนอ 3D-printed Enclosure เป็นหนึ่งใน Future Improvements ซึ่งสามารถสอบถามบริการรับปริ้นท์ 3D ผ่าน LINE OA ได้เช่นกัน
ภาพเพิ่มเติมจากโปรเจกต์
บทความแสดง Hero Image เพียงภาพเดียวเป็นค่าเริ่มต้น ส่วนภาพเพิ่มเติมถูกซ่อนด้วย Pure CSS View more เพื่อไม่ให้หน้า Blog ยาวเกินไปตั้งแต่เปิดหน้า
อยากทำตามจริง แนะนำให้เปิด Source ต้นฉบับควบคู่ไปด้วย
แม้โปรเจกต์นี้ถูกระบุเป็น Beginner-friendly แต่ Firmware มีทั้ง BLE HID, Menu State, Preferences, Multi-click Button Handling, OS Profiles และ Power Management อยู่ในโปรเจกต์เดียว
ก่อน Upload หรือแก้ Firmware: แนะนำให้เปิด อ่านคู่มือ ESP32-C3 Smart Dial ฉบับเต็มบน Hackster และ ดู Firmware และไฟล์ล่าสุดจาก GitHub ของผู้สร้าง ควบคู่กันก่อนลงมือจริง
FAQ: ESP32-C3 Smart Dial
Smart Dial ใช้บอร์ดอะไร?
โปรเจกต์ใช้ ESP32-C3 Super Mini เป็น Controller หลัก สำหรับ Menu, OLED และ BLE HID
ใช้ OLED รุ่นไหน?
Source และ Firmware ใช้ SH1106 128×64 เชื่อมผ่าน I²C โดย Address หลักคือ 0x3C
Rotary Encoder ต่อ GPIO ไหน?
Firmware ใช้ CLK → GPIO3, DT → GPIO4 และ SW → GPIO7
ต้องทำ App บนมือถือเองหรือไม่?
ไม่จำเป็นสำหรับ Workflow หลัก เพราะ Controller ใช้ BLE HID ให้ Host รับคำสั่งในรูปแบบ Keyboard และ Media Input
ใช้กับ Windows และ Mac ได้ไหม?
Firmware มี Profile สำหรับ Windows และ macOS รวมถึง Auto / Universal, Android และ iPhone / iPad แต่ Shortcut บางอย่างขึ้นอยู่กับ Platform
ใช้กับ iPhone ได้ทุก Function ไหม?
ไม่ Source ระบุว่าบาง System-level Control ถูก Android / iOS จำกัด จึงไม่ควรคาดหวัง Complete System Control ทุกคำสั่ง
Volume 50% บนจอคือ Volume จริงของ PC หรือไม่?
ไม่จำเป็นต้องตรงกัน เพราะ Firmware เก็บเป็น Local Estimate จาก Volume Command ที่ส่งออก ไม่ได้อ่าน Actual Host Volume กลับมา
สามารถทำเป็น Battery-powered Controller ได้ไหม?
Firmware มี Deep Sleep อยู่แล้ว และ Source ระบุ Rechargeable Battery กับ USB-C Charging เป็น Future Improvement
สามารถทำเคส 3D Print ได้ไหม?
ได้ในฐานะ Future Improvement เพราะ Source ระบุ 3D-printed Enclosure เป็นหนึ่งในแนวทางพัฒนาตัว Prototype ต่อ
ลูกบิดหนึ่งตัว แต่สอน Embedded ได้เกือบทั้งโต๊ะ
ความสนุกของ ESP32-C3 Smart Dial ไม่ได้อยู่แค่ว่าหมุนแล้ว Volume ขึ้นลง
แต่เป็นการรวมหลายเรื่องไว้ใน Project เล็ก ๆ:
Encoder → Menu → OLED → State Machine → BLE HID → Profiles → Preferences → Power Management
คนเริ่มต้นสามารถเริ่มจาก Volume Controller ง่าย ๆ แล้วค่อยเข้าใจว่าพอมี Menu ตัวลูกบิดเดียวสามารถเปลี่ยนเป็น Browser Controller, Presentation Remote, Keyboard Shortcut Pad หรือ Macro Controller ได้อย่างไร
และถ้าจะขยับไปอีกระดับ จาก Breadboard Prototype ก็ยังมีเส้นทางต่อไปถึง Custom PCB, Battery และ 3D-printed Enclosure
นี่จึงเป็นโปรเจกต์ประเภท “เริ่มง่าย แต่มีพื้นที่ให้เล่นต่อเยอะมาก” ที่เหมาะกับสาย ESP32 และ Maker โดยตรง
References / แหล่งข้อมูลต้นฉบับ
อยากทำ Smart Dial ของตัวเอง?
ถ้ากำลังหา ESP32, Development Board, OLED, Sensor หรืออุปกรณ์สำหรับงาน Maker สามารถเข้ามาดูสินค้า พูดคุยกับ Community หรือส่งโจทย์มาสอบถามทีม Globalbyte ได้ และถ้าต่อยอดไปทำ Enclosure ก็สามารถสอบถามบริการ 3D Printing ได้เช่นกัน