# app_gesture_ble **Repository Path**: morris-mao/app_gesture_ble ## Basic Information - **Project Name**: app_gesture_ble - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-28 - **Last Updated**: 2026-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: BLE ## README # 一、概要 这是一个识别屏幕上的手势来控制蓝牙外设。 App能够识别到手机画面上的手势, 手势识别结果显示在悬浮窗口上 手机屏幕画面的实时抓取,通过辅助权限的截图功能来实现 手势识别用到的库是 mediapipe 里面的手势识别库,识别 victory fist thumbup 等的手势 手机可以连接一个蓝牙继电器开关,可以通过识别手势来控制蓝牙外设。 这里演示的是通过蓝牙控制一个锁。手机连接的是一个esp32 ![image](./docs/demo.gif) # 二、功能 ## 1. 启用无障碍服务 App启动完的第一个界面显示当前的功能启用状态 功能型状态的判断逻辑是判断无障碍服务是否开启,如果没有开启会有显示一个启动按钮 点击启动按钮,可以跳到系统的辅助权限设置页面,用户可以启用当前App的故障服务 ## 2. 悬浮窗 无障碍服务启用后会显示一个悬浮窗,这个悬浮窗的类型是无障碍服务的悬浮窗。 悬浮窗上会有一个按钮开始/停止识另的按钮, 和显示手势识别结果。 点击开始识别按钮,就会每隔1秒从屏幕上截取一张画面给mediapipe进行识别,把识别结果显示在悬浮窗上,点击停止识别就会停止手势识别。 根据识别到的手势控制BLE蓝牙外设 ## 3. 连接设备 首页有个连接设备的按钮,点击跳到一个连接设备的页面 连接设备可以搜索附近的BLE蓝牙设备 把搜索道德设备在当前页面展现成列表 列表的每一项有个连接按钮,可以进行设备连接 ## 4.设备控制界面 所连接设备的命令参见 [ble-device-cmd.cmd](./docs/ble-device-cmd.cmd) 首页有一个设备控制的入口,控制界面有命令的功能控制按钮 目前是通过esp32来实现设备端,代码在 [arduino_ble_esp32](./arduino_ble_esp32), demo用的是板子是 esp32 开启时 GPIO18 输出低电平 GPIO4 输出高电平 关闭时 GPIO18 输出高电平 GPIO4 输出低电平 # 二、使用方法 1. 点击“启用服务”, 给当前手机授权无障碍服务 在“已安装的服务”列表里找到“林林手势识别” 启用无障碍服务\n 启用后会显示个悬浮窗,点窗口上“开始识别”会实时截屏进行只别。\n你可以开启手机的前置摄像头查看识别情况。\n 目前支持的手势是✊🏻✋🏻👍🏻👎🏻✌🏻️ 2. 控制蓝牙设备 点击“连接设备”连接外部蓝牙设备,连接后就可以手势控制外设了。目前demo里 拳头是 开, 手掌是关 3. 控制界面 另外有一个控制界面,可以不通过手势直接发送控制命令