M5StickC S3 通过 BLE 模拟蓝牙键盘,用来控制 macOS 命令行或其他前台应用。
- 蓝牙设备名:
SuperButton-S3 - 开机后自动启动蓝牙;短按左侧按钮亮屏不会主动断开或重连蓝牙
- 中间按钮 / Button A:发送
Enter - 右侧按钮 / Button B:发送键盘
Down Arrow - 长按右侧按钮 / Button B:打开菜单,可重连 BLE 或打开 Wi-Fi 配置热点
- M5StickC S3 内置按钮按 M5Unified 的 StickS3 映射读取:Button A =
GPIO11,Button B =GPIO12 - 外接
GPIO 0按钮:发送Enter - 屏幕水平显示,顶部左侧显示蓝牙图标和状态,顶部右侧显示电量图标和百分比
- 电量定时刷新
- 30 秒无按键操作后自动熄屏,蓝牙保持连接
- 设备正面朝下时自动息屏
- 烧录固件到 M5StickC S3。
- 在 macOS 打开
System Settings -> Bluetooth,连接蓝牙设备SuperButton-S3。 - 打开 Terminal、iTerm 或其他目标应用,并让目标窗口保持在前台。
- 按 M5StickC S3 中间按钮发送
Enter,按右侧按钮发送向下选择,长按右侧按钮打开菜单。 - 30 秒无按键操作或把设备正面朝下会自动息屏,蓝牙不会断开。
cd SuperButton
PLATFORMIO_CORE_DIR=.platformio-core pio run自动选择串口:
cd SuperButton
PLATFORMIO_CORE_DIR=.platformio-core pio run -t upload指定串口:
cd SuperButton
PLATFORMIO_CORE_DIR=.platformio-core pio run -t upload --upload-port /dev/cu.usbmodem101如果串口不是 /dev/cu.usbmodem101,先查看当前串口:
ls /dev/cu.*也可以打开 SuperButton.ino。这个文件只作为 Arduino IDE 入口,实际代码在 src/main.cpp,避免两份代码不同步。
需要安装:
esp32 by Espressif SystemsESP32 BLE KeyboardNimBLE-ArduinoM5Unified
src/main.cpp:主程序SuperButton.ino:Arduino IDE 入口platformio.ini:PlatformIO 配置
当前 PlatformIO 构建使用 USE_NIMBLE,用于 BLE HID 键盘连接。
Wi-Fi 菜单会打开设备自己的配置热点,电脑连接后可以在浏览器里搜索附近 Wi-Fi 并保存账号密码。
使用步骤:
- 长按右侧按钮打开菜单。
- 用右侧按钮移动到
WiFi setup,按中间按钮选择。 - 设备屏幕显示
AP 192.168.4.1后,在电脑上连接 Wi-Fi 热点SuperButton-Setup。 - 浏览器打开
http://192.168.4.1/。 - 页面会扫描附近 Wi-Fi,选择目标网络,输入密码,点击
Save and Connect。
配置会保存到 NVS Preferences 命名空间 super-button:
wifi_on:是否开机自动连接wifi_ssid:目标 Wi-Fi 名称wifi_pass:目标 Wi-Fi 密码
SSID 和密码不会默认写进仓库。如果仍想在固件里放默认凭据,也可以在 platformio.ini 的 build_flags 里启用并修改这两行:
build_flags =
-DUSE_NIMBLE
-DWIFI_SSID=\"你的WiFi名称\"
-DWIFI_PASSWORD=\"你的WiFi密码\"固件会优先读取 Preferences 里保存的配置;没有保存配置时,才使用上面的编译宏默认值。
MIT License.