ESP32蓝牙模拟键盘(工作笔记)

原创 云深之无迹 2021-10-13 01:33

ESP32蓝牙键盘库的位置


https://github.com/T-vK/ESP32-BLE-Keyboard
https://www.arduino.cc/reference/en/language/functions/usb/keyboard/



蓝牙库诞生于USB的库中,所以keyboard全为blekeyboard



使用的时候调用的库


KEY_MEDIA_NEXT_TRACKKEY_MEDIA_PREVIOUS_TRACKKEY_MEDIA_STOPKEY_MEDIA_PLAY_PAUSEKEY_MEDIA_MUTEKEY_MEDIA_VOLUME_UPKEY_MEDIA_VOLUME_DOWNKEY_MEDIA_WWW_HOMEKEY_MEDIA_LOCAL_MACHINE_BROWSER // 在 Windows 上打开“我的电脑”KEY_MEDIA_CALCULATORKEY_MEDIA_WWW_BOOKMARKSKEY_MEDIA_WWW_SEARCHKEY_MEDIA_WWW_STOPKEY_MEDIA_WWW_BACKKEY_MEDIA_CONSUMER_CONTROL_CONFIGURATION // 媒体选择KEY_MEDIA_EMAIL_READER


ble的库是有一些媒体按键,就是播放暂停什么的


BleKeyboard bleKeyboard("Bluetooth Device Name", "Bluetooth Device Manufacturer", 100);


使用前需要写一下这个,你模拟的设备的名字以及设备制造商的名字,以及一个电量,当然是假的。


bleKeyboard.setDelay(10)


这个是设置延时时间,就是有的设备会丢掉输入快的字符。默认是8



如果真的要用,也可以设置一下这个,节省空间嗷



下面是更加数据化的内容


#define USE_NIMBLE#include <BleKeyboard.h>


使用的时候,把这个宏写上就好。



上面就是模拟按下一个按键,下面是模拟所谓的媒体键


注意一下,就是摁下去了。



release是对应的上面松开,后面是全松开



看下乱入的这个wirte,是个啥?


最后这个函数的参数有点没有看懂


就是按下+松开的结合体。组合按键及其有用,比如模拟各种快捷键。




去源码看看


press这不是就摁了吗?

接下来这不就释放了吗

我又去看看size_t是个啥,就当成一个int看

那对比的看就是相当于,后面的这个函数

传了好多的单独的这样的按键,以至于使用了一个缓冲的空间


一开始n=0

循环减去次数,每次循环里面都去判断缓冲里面的东西不等于



这个回车,因为就是一行一串命令嘛


里面循环的载调用write函数(有点递归的感觉),每次执行变量n+1

当没有可以执行的串就break,注意是全跳出循环

当size为0时,返回一个最终的计数值n。


注意这个代码是一串字符加一个回车,是一个要发送的命令列


Keyboard.write(65);         // sends ASCII value 65, or AKeyboard.write('A');            // same thing as a quoted characterKeyboard.write(0x41);       // same thing in hexadecimalKeyboard.write(0b01000001); // same thing in binary (weird choice, but it works)

写入的参数可以是这样的,返回值是一个字节数


还有一个这样的函数吗?


BleKeyboard bleKeyboard;
void setup(){ Serial.begin(115200); Serial.println("Starting BLE work!"); bleKeyboard.begin();}
void loop(){Hello world
if (bleKeyboard.isConnected()){ Serial.println("Sending 'Hello world'..."); bleKeyboard.print("Hello world");
delay(1000);
Serial.println("Sending Enter key..."); bleKeyboard.write(KEY_RETURN);
delay(1000);
Serial.println("Sending Play/Pause media key..."); bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);
delay(1000);
Serial.println("Sending Ctrl+Alt+Delete..."); bleKeyboard.press(KEY_LEFT_CTRL); bleKeyboard.press(KEY_LEFT_ALT); bleKeyboard.press(KEY_DELETE); delay(100); bleKeyboard.releaseAll(); }
Serial.println("Waiting 5 seconds..."); delay(5000);}



自带的demo不错子~



媒体按键的调用



快捷键的编组使用



我迷惑一点是,我都刷过这个程序了,居然现在屏幕还亮着。

https://github.com/arduino-libraries/Keyboard/

最后补一点,ble是从USB的库来的,所以大家可以看这个库掌握最初的设计思想。

评论 (0)
  •   北京华盛恒辉电磁环境适应性测试系统是针对复杂电磁环境进行仿真、测试与评估的关键设备,以下从系统功能、技术架构、应用场景、核心优势、发展趋势五个维度展开全面解析:   应用案例   目前,已有多个电磁环境适应性测试系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁环境适应性测试系统。这些成功案例为电磁环境适应性测试系统的推广和应用提供了有力支持。   一、系统功能   复杂电磁环境构建   全生命周期测试能力   实时监测与反馈   二、技术架构   模块化设
    华盛恒辉l58ll334744 2025-04-26 17:21 195浏览
  • 2025年全球人形机器人产业迎来爆发式增长,政策与资本双重推力下,谷歌旗下波士顿动力、比亚迪等跨国企业与本土龙头争相入局,产业基金与风险投资持续加码。仅2025年上半年,中国机器人领域就完成42笔战略融资,累计金额突破45亿元,沪深两市机器人指数年内涨幅达68%,印证了资本市场对智能终端革命的强烈预期。值得关注的是,国家发展改革委联合工信部发布《人形机器人创新发展行动计划》,明确将仿生感知系统、AI决策中枢等十大核心技术纳入"十四五"国家重大专项,并设立500亿元产业引导基金。技术突破方面,本土
    电子资讯报 2025-04-27 17:08 217浏览
  • 探针台作为高精度测试设备,在光电行业的关键器件研发、性能测试及量产质量控制中发挥核心作用,主要涵盖以下应用场景与技术特性:一、光电元件性能测试1.‌光电器件基础参数测量‌l 用于LED、光电探测器、激光器等元件的电流-电压(I-V)特性、光功率、响应速度等参数测试,支撑光通信、显示技术的器件选型与性能优化。l 支持高频信号测试(如40GHz以上射频参数),满足高速光调制器、光子集成电路(PIC)的带宽与信号完整性验证需求。2.‌光响应特性分析‌l 通过电光转换效率测
    锦正茂科技 2025-04-27 13:19 112浏览
  • 一、智能家居的痛点与创新机遇随着城市化进程加速,现代家庭正面临两大核心挑战:情感陪伴缺失:超60%的双职工家庭存在“亲子陪伴真空期”,儿童独自居家场景增加;操作复杂度攀升:智能设备功能迭代导致用户学习成本陡增,超40%用户因操作困难放弃高阶功能。而WTR096-16S录音语音芯片方案,通过“语音交互+智能录音”双核驱动,不仅解决设备易用性问题,更构建起家庭成员间的全天候情感纽带。二、WTR096-16S方案的核心技术突破1. 高保真语音交互系统动态情绪语音库:支持8种语气模板(温柔提醒/紧急告警
    广州唯创电子 2025-04-28 09:24 106浏览
  • 在电子电路设计和调试中,晶振为电路提供稳定的时钟信号。我们可能会遇到晶振有电压,但不起振,从而导致整个电路无法正常工作的情况。今天凯擎小妹聊一下可能的原因和解决方案。1. 误区解析在硬件调试中,许多工程师在测量晶振时发现两端都有电压,例如1.6V,但没有明显的压差,第一反应可能是怀疑短路。晶振电路本质上是一个交流振荡电路。当晶振未起振时,两端会静止在一个中间电位,通常接近电源电压的一半。万用表测得的是稳定的直流电压,因此没有压差。这种情况一般是:晶振没起振,并不是短路。2. 如何判断真
    koan-xtal 2025-04-28 05:09 106浏览
  • 速卖通,作为阿里巴巴集团旗下的跨境电商平台,于2010年横空出世,彼时正值全球电商市场蓬勃发展,互联网的普及让跨境购物的需求日益增长,速卖通顺势而为,迅速吸引了全球目光。它以“让天下没有难做的生意”为使命,致力于打破国界限制,搭建起中国商家与全球消费者之间的桥梁。在其发展的黄金时期,速卖通取得的成绩令人瞩目。在欧洲市场,速卖通一度成为第一大电商平台。根据第三方机构《欧洲跨境商务》的评选,速卖通凭借出色的服务和消费者口碑,在“欧洲十大跨境电商平台”中脱颖而出,力压来自美国的亚马逊和eBay等电商巨
    用户1742991715177 2025-04-26 20:23 162浏览
  •  集成电路封装测试是确保芯片性能与可靠性的核心环节,主要包括‌晶圆级测试(CP测试)‌和‌封装后测试(FT测试)‌两大阶段,流程如下:一、晶圆级测试(CP测试)1.‌测试目的‌:在晶圆切割前筛选出功能缺陷或性能不达标的晶粒(Die),避免后续封装环节的资源浪费,显著降低制造成本。2.‌核心设备与操作‌l ‌探针台(Prober)‌:通过高精度移动平台将探针与晶粒的Pad jing准接触,实现电气连接。l ‌ATE测试机‌:提供测试电源、信号输入及功能向量,接收晶粒反
    锦正茂科技 2025-04-27 13:37 161浏览
  • 晶振在使用过程中可能会受到污染,导致性能下降。可是污染物是怎么进入晶振内部的?如何检测晶振内部污染物?我可不可以使用超声波清洗?今天KOAN凯擎小妹将逐一解答。1. 污染物来源a. 制造过程:生产环境不洁净或封装密封不严,可能导致灰尘和杂质进入晶振。b. 使用环境:高湿度、温度变化、化学物质和机械应力可能导致污染物渗入。c. 储存不当:不良的储存环境和不合适的包装材料可能引发化学物质迁移。建议储存湿度维持相对湿度在30%至75%的范围内,有助于避免湿度对晶振的不利影响。避免雨淋或阳光直射。d.
    koan-xtal 2025-04-28 06:11 89浏览
  • 探针台作为半导体制造与测试的核心设备,通过精密定位与多环境适配能力,支撑芯片研发、生产及验证全流程。以下是其关键应用领域与技术特性:一、核心功能支撑1.‌电性能测试与分析‌l 在晶圆切割前,探针台直接接触芯片电极,测量阈值电压、漏电流、跨导等200余项参数,用于评估良品率及优化工艺设计。l 支持单晶体管I-V曲线测量,定位栅极氧化层厚度偏差(精度达0.2nm),为器件性能分析提供数据基础。2.‌纳米级定位与测量‌l 定位精度达±0.1μm,满足5nm及以下制程芯片的
    锦正茂科技 2025-04-27 13:09 138浏览
  •     今天,纯电动汽车大跃进牵引着对汽车电气低压的需求,新需求是48V。车要更轻,料要堆满。车身电子系统(电子座舱)从分布改成集中(域控),电气上就是要把“比12V系统更多的能量,送到比12V系统数量更少的ECU去”,所以,电源必须提高电压,缩小线径。另一方面,用比传统12V,24V更高的电压,有利于让电感类元件(螺线管,电机)用更细的铜线,缩小体积去替代传统机械,扩大整车电气化的边界。在电缆、认证行业60V标准之下,48V是一个合理的电压。有关汽车电气低压,另见协议标准第
    电子知识打边炉 2025-04-27 16:24 162浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦