ESP32 模拟键盘的简单操作 (ESP32 for Arduino)

这篇具有很好参考价值的文章主要介绍了ESP32 模拟键盘的简单操作 (ESP32 for Arduino)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本来是以前做过的ESP32项目,但是想拿来用在别的项目上时发现找不到了。所以重新写一下这个项目,记录一下。

首先说明:使用ArduinoIDE、模块型号为esp32-wroom-32。


库文件链接:

https://github.com/T-vK/ESP32-BLE-Keyboard

期间发现了好几个库,但是这个库选择的人比较多,就是用这个库。

Arduino 也有相类似的库,介绍界面:

https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

但是 Arduino 的这个 keyboard 库是基于 USB 端口的,都用了 ESP32 了,高低不得整一个蓝牙?


BleKeyboard 介绍

BleKeyboard 的函数接口和 Keyboard 库几乎相同,所以用起来也很方便,可直接参考 Keyboard 库的一些函数介绍。

Keyboard 的函数:

ESP32 模拟键盘的简单操作 (ESP32 for Arduino)


库文件介绍

构造函数

找到了库文件,先看看类的构造函数:

//函数定义
BleKeyboard::BleKeyboard(std::string deviceName, std::string deviceManufacturer, uint8_t batteryLevel)

//class 中的声明以及默认参数
BleKeyboard(std::string deviceName = "ESP32 Keyboard", std::string deviceManufacturer = "Espressif", uint8_t batteryLevel = 100);

解释一下这部分函数:

第一个参数为设备名称,第二个参数为设备制造商名称,第三个参数为电池点亮。

本库的构造函数没有使用函数重载,创建类对象时如果不提供参数将会使用默认参数。

BleKeyboard提供的公共接口函数

ESP32 模拟键盘的简单操作 (ESP32 for Arduino)


函数示例

#include <BleKeyboard.h>
BleKeyboard blekeyboard("ESP32kEYBOARD","Espressif",50);    
                        // 设备名,制造商,电量
const int OutPIN = 0;    // 定义按键端口

void setup() 
{
  Serial.begin(115200);
  blekeyboard.begin();    
  Serial.println("蓝牙键盘准备就绪");
}

void loop() 
{
  if(blekeyboard.isConnected())    // 判断连接是否成功
  {
    static int a = 1;    // 第一次连接上打印连接成功
    if(a == 1)
    {
      Serial.println("蓝牙已连接");
      a++;
    }

    if(!digitalRead(OutPIN))    // 按键被按下
    {
      delay(50);
      if(!digitalRead(OutPIN))    // 消抖,也不知道ESP32上用不用消抖
      {
        Serial.println("输出");    
        
        blekeyboard.println("Don't say anything that is not conducive to unity");    // 打印字符
        delay(100);
        blekeyboard.write(KEY_NUM_ENTER);    // 按键按下enter
      }
    }
  }
  else    // 没有连接成功
  {
    Serial.println("蓝牙未连接");    // 循环打印蓝牙未连接
    delay(1000);
  }
}

实现按键按下后,输入字符串+Enter。

这有一点问题,通过 blekeyboard.println 打印中文字符时,会出现乱码输出的问题。不知道是不是与编码格式有关。

还有一个问题

class BleKeyboard : public Print, public BLEServerCallbacks, public BLECharacteristicCallbacks

这个类构造函数后面的这些不懂。他是怎么继承的?


OK,算是暂时的能用这个库了!能用在其他项目上了!!

ESP32 模拟键盘的简单操作 (ESP32 for Arduino)文章来源地址https://www.toymoban.com/news/detail-460053.html

到了这里,关于ESP32 模拟键盘的简单操作 (ESP32 for Arduino)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Arduino ESP32

    Arduino官网 1.下载Arduino IDE=SOFTWARE页面下载所需适配的操作系统(Windows, Linux, macOS)等; 其中Windows版本MSI installer是需要安装的。zip的解压即可运行不需要安装。 2.Arduino IDE中添加ESP32开发板软件包数据: Arduino IDE:文件首选项附加开发板管理器网址 中加入Arduino core for esp32的地

    2024年02月15日
    浏览(55)
  • Arduino离线安装esp32/esp8266

    使用本教程所示的安装方法,双击安装包的傻瓜式操作,不用进入文件夹修改,不用添加网站地址,免去网络带来的烦恼。安装完成后直接使用。 官网地址:Software | Arduino 打开链接后如图  点击红色框内以后跳转到此界面 再次选择红框后下载 打开安装包一直下一步就好 打

    2023年04月13日
    浏览(46)
  • Arduino ESP32的串口

    在Arduino的核心中有三个串口,分别是Serial,Serial1,和Serial2. 当然ESP32也可以使用软串口。但硬件串口更稳健(我这样理解)。但Serial1这个串口不能使用,因为端口GPIO6 ~ GPIO11都用到了Flash。那如何使用你的Serial1串口哪?可以通过改变串口1的rxPin和txPin的方法,具体如下。 在

    2024年02月11日
    浏览(34)
  • ESP32-Touch(Arduino)

    Touch 传感器是一种外围设备,具有内部振荡器电路,可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此,这些触摸传感器也被称为电容式传感器。例如,如果您触摸这些引脚中的任何一个,手指电荷将改变这个周期数, 通过更改连接到触摸传感器的 RC 电路。 Tou

    2024年01月16日
    浏览(35)
  • 【ESP32之旅】ESP32C3 Arduino库使用方法

    目前官方已经支持了ESP32C3 的部分功能,可以在其官方wiki中看到: 官方提供了两个版本的安装连接,release和Dev。其中Release为稳定发布版本,Dev版本则支持更多的新特性。 Stable release link: Development release link: 安装方法也非常简单,打开Arduino IDE 然后在 文件 - 首选项 : 在附加

    2024年02月02日
    浏览(49)
  • 【ESP32】arduino中的ESP32实时系统FreeRTOS使用教程(一)

    简单的本节略过,详细的可以看视频:单片机ESP32上的FREERTOS这个作者讲的挺好的,通俗易懂 FreeRTOS中的任务有运行态、就绪态、阻塞态、挂起态四种状态,在任何时候都只处于其中一种状态。任务状态之间的转换如下图所示: 每一个任务都会有一个任务优先级,其范围为

    2023年04月15日
    浏览(40)
  • Arduino+ESP32-WROOM-32UE(一)

    刚刚接触Arduino平台和ESP32,借用博客的形式做一个简单的学习记录。在这里,我将记录自己的学习过程以及遇到的一些问题,并把容易踩的坑总结出来。话不多说,开始吧。 理论上购买的各种开发板上都会有内置的LED灯以及对应的管脚。所以想要点亮一个LED,需要查询相应的

    2024年02月02日
    浏览(40)
  • Arduino添加ESP32开发板

    【2023年3月4日】 最近要在新电脑上安装Arduino,需要进行一些配置,正好记录一下! Arduino2.0.1 下的开发板添加操作。 ESP32开发板GitHub链接 : GitHub - espressif/arduino-esp32: Arduino core for the ESP32 Arduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub. h

    2024年02月05日
    浏览(42)
  • Arduino ESP32 WiFi定位

            最近项目用到定位,但是又不想重新画PCB,因此打算做一个仅通过WIFI来定位的小硬件,但找了很多家,比如高德、百度这些都没有面向个人开发者的硬件网络定位接口,兜兜转转还是找到了一家做物联网全域定位的公司叫维智科技,他们的物联网定位平台是这个

    2024年02月06日
    浏览(65)
  • ESP32 Arduino开发 网络连接

    目录 ESP32 Arduino开发 网络连接 1. 编写相关程序 1.1. 引入头文件 1.2. 调用WiFi连接函数 1.3. 检测网络连接状态 1.4. 连接超时处理 2. STA模式与AP模式 WiFi.h 并不是第三方的库,所以不需要先加载库 WiFi连接函数需要2个参数:网络名称以及网络密码,在 setup() 函数之外先对参数进行定

    2024年01月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包