Manopola intelligente wireless con ESP32-C3 e BLE HID

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.

Diagramma dell'architettura di base del progetto Smart Dial
Architettura di base del progetto

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.

Modulo display OLED SH1106 128x64
Display OLED SH1106

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu