Una manopola intelligente wireless sostituisce tastiera e mouse per le operazioni ripetitive: si ruota per navigare nei menu, si preme per inviare comandi. Il progetto di Afraz Ali usa una scheda ESP32-C3 SuperMini, un display OLED SH1106 128×64 e un encoder rotativo KY-040. Il tutto funziona come controller HID Bluetooth Low Energy, quindi il computer lo vede come una tastiera o un mouse wireless.
L’input principale è l’encoder KY-040: ruotandolo si scorre il menu sul display, premendolo si seleziona l’azione. L’ESP32-C3 invia poi il comando corrispondente via BLE HID. Il display OLED SH1106 è collegato via I²C all’indirizzo 0x3C e mostra l’interfaccia. L’encoder usa tre GPIO (CLK, DT, SW) con pull-up interni configurati dal firmware.

Firmware e profili per ogni sistema operativo
Il firmware include profili separati per Auto/Universale, Windows, macOS, Android e iPhone/iPad. Questa scelta gestisce le limitazioni di BLE HID sui diversi sistemi operativi. Le macro di testo personalizzate e le impostazioni vengono salvate in modo persistente usando la libreria Preferences di ESP32. Il codice sorgente è disponibile nel repository di Afraz Ali, dove trovi gli sketch Arduino pronti da caricare.
Per la programmazione servono Arduino IDE, il pacchetto ESP32 Arduino, la libreria Adafruit GFX, Adafruit SH110X, HijelHID_BLEKeyboard, NimBLE-Arduino e Lynx Serial Monitor. Il progetto include 11 GPIO digitali (PWM) e 4 ingressi analogici (ADC) sulla scheda ESP32-C3 SuperMini. Il repository di Afraz Ali contiene tutto il codice necessario.
Alimentazione e consumi della scheda ESP32-C3
La scheda ESP32-C3 SuperMini supporta alimentazione USB o esterna da 3,3 V a 6 V. Il consumo in sleep è di circa 43 μA, quindi il dispositivo può stare in standby a lungo. Il tempo di costruzione stimato è di 5 ore, adatto anche a chi muove i primi passi con ESP32 e BLE.
Il modulo encoder M274 360 gradi si può usare come alternativa al KY-040 per applicazioni che richiedono rotazione continua. Entrambi gli encoder si collegano direttamente ai GPIO della scheda. Il display OLED SH1106 da 128×64 pixel è il componente che rende l’interfaccia leggibile e ordinata.

Montaggio e collegamenti del circuito
Il montaggio è semplice: si collega il display OLED via I²C all’indirizzo 0x3C, si cabla l’encoder KY-040 ai tre GPIO e si alimenta la scheda via USB. Il firmware gestisce i pull-up interni, quindi non servono resistenze esterne. Il progetto è compatto e si può chiudere in una piccola scatola stampata in 3D.
La manopola funziona come una superficie di controllo fisica personalizzabile. Si possono assegnare scorciatoie da tastiera, controlli multimediali e macro di testo a ogni voce del menu. Il dispositivo è utile per chi lavora con software di editing, sviluppo o automazione d’ufficio.
- ESP32-C3 SuperMini Development Board
- SH1106 128×64 OLED
- KY-040 Rotary Encoder
- M274 360-Degree Rotary Encoder Sensor Brick Module
Il progetto di Afraz Ali è un ottimo punto di partenza per capire come funziona BLE HID e come si costruisce un dispositivo di input wireless. La manopola intelligente wireless è un esempio concreto di come un piccolo microcontrollore possa sostituire periferiche tradizionali.
Fonte: https://github.com/afrazali722/ESP32-C3-Smart-Dial-Custom-BLE-Menu-Controller
