《ESP32 学习笔记》 之 ESP32 模拟 蓝牙键盘

您所在的位置:网站首页 U校园测试题忘了提交有分吗 《ESP32 学习笔记》 之 ESP32 模拟 蓝牙键盘

《ESP32 学习笔记》 之 ESP32 模拟 蓝牙键盘

2024-07-09 12:22:40| 来源: 网络整理| 查看: 265

目录

1.简介

2.硬件平台

3.软件平台

4.库文件

4.1 ESP32_BLE_Arduino

4.2 ESP32-BLE-Keyboard

5.示例程序

6.配对&测试

7.提升部分

1.简介

这两天一直看见各种客制化键盘的制作视频,搞得我也想做一个玩玩,芯片我有四种选择:

(1)Atmega32U4(USB)

(2)STM32F4(USB)

(3)ESP32(蓝牙)

(4)NRF51822(蓝牙)

现在乐鑫已经推出了 ESP32-S3,此款芯片支持了USB模拟功能,再加上它的蓝牙键盘模拟功能,我们很容易只做一款蓝牙+USB+WIFI的客制化键盘,但这些都等待 ESP32-S3 开发环境的完善之后再玩吧~

2.硬件平台

安信可 NODEMCU-32S 开发板:

3.软件平台

Arduino (1.8.10)     或     VScode 环境下 PlatformIO 插件

4.库文件 4.1 ESP32_BLE_Arduino

ESP蓝牙驱动库,地址:GitHub - nkolban/ESP32_BLE_Arduino: The library source for the ESP32 BLE support for Arduino.

4.2 ESP32-BLE-Keyboard

ESP32键盘模拟库,依赖于ESP32_BLE_Arduino这个库,地址:GitHub - T-vK/ESP32-BLE-Keyboard: Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)

5.示例程序

代码:

/** * 时间:2020/5/18 * 作者:刘泽文 * 功能:使用ESP32的蓝牙功能模拟蓝牙键盘 */ #include #include BleKeyboard bleKeyboard("ESP32蓝牙键盘","Espressif",100);//其中“ESP32蓝牙键盘”为键盘名称;"Espressif"为制造商 void setup() { Serial.begin(115200); Serial.println("Starting BLE work!"); bleKeyboard.begin(); } void loop() { if(bleKeyboard.isConnected()) { //多媒体测试 Serial.println("Sending Play/Pause media key..."); bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE); delay(1000); //Ctrl+Alt+Delete任务管理器,并进行锁屏操作 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("下面填入你的开机密码↓"); bleKeyboard.print("--你的开机密码,注意大小写--"); delay(100); Serial.println("Enter"); bleKeyboard.write(KEY_RETURN); } Serial.println("Waiting 5 seconds..."); delay(5000); } 6.配对&测试

给你的ESP32开发板插上电,打开你的笔记本电脑->打开蓝牙->添加蓝牙或设备->鼠标、键盘类,你将会看到名为“ESP32蓝牙键盘”的设备,点击即可连接。然后打开你电脑上的音乐软件播放歌曲。

接下来,你的笔记本将会一直重复  停止播放音乐+锁屏+解锁+开始播放音乐  的操作~,如果想停下,请直接关闭笔记本的蓝牙,或拔掉开发板。

7.提升部分

使用旋转编码器控制电脑、手机、平板的音量

#include #include #include //按键配置 #define EC11_A_PIN 13 #define EC11_B_PIN 14 #define EC11_K_PIN 27 BleKeyboard bleKeyboard; ESP32Encoder encoder; void setup() { Serial.begin(115200); ESP32Encoder::useInternalWeakPullResistors = UP; encoder.attachSingleEdge(EC11_A_PIN, EC11_B_PIN); bleKeyboard.begin(); pinMode(EC11_K_PIN, INPUT_PULLUP); } int lastEncoderValue = 0; void loop() { if (lastEncoderValue != encoder.getCount()) { int now_count = encoder.getCount(); if (bleKeyboard.isConnected()) { if (now_count > lastEncoderValue) { bleKeyboard.write(KEY_MEDIA_VOLUME_DOWN); } else { bleKeyboard.write(KEY_MEDIA_VOLUME_UP); } } lastEncoderValue = now_count; Serial.print("Encoder value: "); Serial.println(lastEncoderValue); } if (digitalRead(EC11_K_PIN) == LOW) { delay(5); if (digitalRead(EC11_K_PIN) == LOW) { if (bleKeyboard.isConnected()) { bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE); } } while (digitalRead(EC11_K_PIN) == LOW) ; } }



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭