同步操作将从 Walkline/ESP32 BLE 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
MicroPython for ESP32 开发板低功耗蓝牙(BLE)研究学习项目
写的比较乱,所以需要规范以下名词解释
ESP32 开发板
手机、电脑等
可以连接蓝牙外设的设备使用 BLE 实现蓝牙键盘控制器功能,也就是自制蓝牙(小)键盘(HID)
要自制(小)蓝牙键盘,需要完成下列功能:
v0.2.5
,准备打板继续验证v0.2.6
按键部分硬件已经验证成功,终于可以继续后续开发了。。。BLE 设备在第一次绑定连接成功后,处于连接状态时,复位设备,或者关闭再打开中心设备
的蓝牙功能后,设备会处于已连接状态,但是中心设备
没有任何反应,既不会连接成功也不会连接失败,此处怀疑是因为缺少连接超时设置,但是当前版本的设备固件并不支持设置超时
在 Windows 10 系统上可以搜索到 BLE 设备并进行连接,但是很快会出现驱动程序错误
的提示,暂时无解
导致以上已知问题的原因为,MicroPython ubluetooth
不支持设备间的配对和绑定操作,这个问题只能等
自己尝试给固件增加配对功能,目前在iOS
上测试成功了
在等待打板的这段时间里又继续研究了 BLE 的其它玩法,总结一下:
MicroPython Beacon Library:这个库适用于实现包括谷歌的Eddystone
和苹果的iBeacon
在内的 2 种信标,还包括了不是很精确的信标测距功能
ESP32 BLE - Remote Controller:这个项目用于制作蓝牙自拍按钮,可惜目前还不支持苹果的设备
ESP32 BLE - MI Temperature Humidity 2 Reader:这个就有点无聊了,用于读取小米温湿度计2
的温湿度数据
MicroPython BLE Library:根据之前研究学习到的 Micropython BLE 相关知识,将相关代码模块封装成为类库,方便以后使用
ESP32 BLE - 机械小键盘:重点项目,制作机械轴小键盘
ESP32 BLE - UART:使用UART
与其它设备交换数据
非业内人士,以下内容纯属个人理解,如有偏差欢迎斧正
BLE 设备遵循 HOGP 规范(HID over GATT Profile)
Profile
包扩很多Services
Services
包扩很多Characteristics
Characteristics
包扩很多Descriptors
例如蓝牙键盘就是一个Profile
,它包括了至少(必要的)3 个Services
:
Battery Service
Device Information
Human Interface Device
Battery Service
又包括了 1 个Characteristics
:
Battery Level
Battery Level
还可以包括 1 个Descriptors
:
Client Characteristic Configuration
首先参考HOGP 规范
,配置好所有的Services
、Characteristics
和Descriptors
BLE 设备作为外围设备(GATT Server)
,本地注册所有Services
,生成payload
,等待中心设备(GATT Client)
连接
然后作为广播者
将payload
进行广播,包括:
Services
中心设备
扫描到广播后进行内容分析、展示,用户点击展示内容后开始和外围设备
进行绑定连接,并读取保存在 BLE 设备本地的Characteristics
和Descriptors
信息,最终完成连接,等待接收数据
此过程中我们只负责外围设备(GATT Server)
的开发
已完成电路设计的(小)键盘 2 种方案,分别是:
ADC 采样方案使用的是同型号电阻串联的方式,如图:
优点:
缺点:
这种方案能想到的用途有 2 个:
键盘矩阵方案是常规键盘方案,连接方式如图:
优点:
缺点:
row * column
个按键需要row + column
个 IO,例如4 * 5
的 20 键键盘需要 9 个 IO灯效也将使用矩阵方案(待验证)并使用按键切换 4 种不同灯效
Walkline Hardware:今后所有的开源硬件的生产文件
和BOM 表
都会放在这个项目中,包括本项目用到的 3 种方案
Bluetooth GATT
USB HID Usage Table:键盘按键键值对应表
HID Descriptor Tool:用于生成Report Map Data
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。