arduino nano 蓝牙

编程入门 行业动态 更新时间:2024-10-25 18:31:30

arduino nano <a href=https://www.elefans.com/category/jswz/34/1768306.html style=蓝牙"/>

arduino nano 蓝牙

平时的PPT翻页笔需要插入USB信号接收器,安装相应的驱动,在实际使用过程当中发现并不是每台电脑都能够直接正常的使用,接收器有时也因为反复拔插很容易坏掉导致无法正常使用。ESP32开发板带有WIFI和蓝牙双核功能,这里利用ESP32的蓝牙模拟鼠标功能做一个翻页笔的神器。可以用于PPT的播放,也可以连接手机蓝牙实现一些需要翻页操作的功能,例如刷抖音,设置时间间隔让抖音自动循环播放等功能!

一、总体设计思路

利用ESP32开发板做主控,通过遥感来控制翻页操作。这里的电路连接较简单,通过BleMouse库来实现相应的操作。这里只用了遥感X轴的模拟量和一个按键数字量信号来控制,X轴方向上左右移动控制向上和向下滚动翻页,按下一次按键则进入自动循环滚动模式,时间间隔自己设置,再按一次按键则推出自动循环滚动模式。

二、电路连接

(一)ESP32引脚图

(二)遥感控制器

(三)对应引脚连接

                  ESP32引脚            遥感控制器

                    GPIO34   ________   VRx

                     GPIO5    ________    SW

                      GND      ________   GND

                       3V3       ________    5V

三、配置软件开发环境

(一)Arduino IDE中添加esp32开发板

1.找到文件>首选项>附加开发板管理器网址 中加入Arduino core for esp32的地址 .json

2.完成网址添加后就可以在:工具>开发板>开发板管理器 中搜索并下载ESP32开发板数据包。(此过程可能需要科学上网!)

注意:添加ESP32开发环境的方式有很多,可自行上csdn查阅。

(二)添加BleMouse库

1.github上下载库文件,网址:

2.解压添加库文件到Arduino IDE的libraries文件目录下。

3.打开下载的库文件夹,点击进入找到BleMouse.cpp的文件。

4.找到164行代码将bleKeyboardInstance改为bleMouseInstance,否则可能会导致编译不能通过。

四、代码部分

#include    //蓝牙模拟鼠标库BleMouse bleMouse;   //创建类的对象,用于调用BleMouse类的成员函数const int xpin=34;  //接遥感模拟输入X引脚const int modepin=5;//接遥感数字引脚SWunsigned long last_time=0;  //计时器记录上一次的时间unsigned long current_time; //计时器记录当前的时间unsigned long interval_time=4000; //时间间隔为4000毫秒即4秒void setup() {  pinMode(xpin,INPUT);  pinMode(modepin,INPUT);  Serial.begin(115200);  Serial.println("Starting BLE work!");  bleMouse.begin();  //初始化蓝牙鼠标}void loop() {  static int state;     //声明静态局部变量state,用于记录按键的状态  if(bleMouse.isConnected()) {   //做切换自动播放功能和手动操作功能用    int a=analogRead(xpin);   //读取X轴数值变化    if(a>3000){                    //遥感控制上滑动       Serial.println("Scroll up");       bleMouse.move(0,0,1);       delay(100);    }    else if(a<10){                  //遥感控制下滑动       Serial.println("Scroll down");       bleMouse.move(0,0,-1);       delay(100);    }    else if(digitalRead(modepin)==0){  //按下开关键,状态量自加1      state+=1;      Serial.print("state  ");      Serial.println(state);      switch(state){        case 0:        Serial.println("do nothing!");        break;        case 1:        Serial.println("go into the loop mode");        while(true){                           //如果第一次按下开关键就进入自动滚动状态          current_time=millis();               //每4秒执行一次向上滚动          if(current_time-last_time>interval_time){            last_time=millis();            //注意这里不能用delay()函数,用计时器来执行延时操作            bleMouse.move(0,0,1);         //不然容易造成按键不灵敏的状况            delay(100);             Serial.println("loop mode");          }                    if(analogRead(xpin)<10 || analogRead(xpin)>3000){            delay(500);              //当进入自动循环滚动时,任意拨动一下遥感则退出循环操作            state=0;            break;          }        }        break;      }    }    else{      Serial.println("no acthion move");    }    delay(100);  }  }

代码写好后配置好开发板对应信息、波特率、端口即可上传,注意ESP32开发板点击上传程序后等待出现connecting省略号连接符号时需要按住开发板的BOOT按键,目的将GPIO 0引脚接地进入下载模式才能上传成功,当进度条滚动过后即可松开BOOT按键

最后打开电脑或者手机设备的蓝牙功能,搜索ESP32 Bluetooth Mouse蓝牙信号连接成功即可使用相应功能。

五、BleMouse库部分函数功能讲解

 bleMouse.move(0,0,1); //向上滚动 bleMouse.move(0,0,-1);//向下滚动 bleMouse.move(0,0,0,-1);//向左滚动 bleMouse.move(0,0,0,1);//向右滚动 bleMouse.move(0,-1);//向上移动鼠标指针 bleMouse.move(0,1);//向下移动鼠标指针 bleMouse.move(-1,0); //左移鼠标指针 bleMouse.move(1,0);//右移鼠标指针 bleMouse.click(MOUSE_LEFT);//左键鼠标点击 bleMouse.click(MOUSE_RIGHT);//右键鼠标点击 bleMouse.click(MOUSE_MIDDLE);//滚轮点击 bleMouse.click(MOUSE_BACK);//后退按钮点击 bleMouse.click(MOUSE_FORWARD);//前进按钮点击 bleMouse.click(MOUSE_LEFT | MOUSE_RIGHT);//同时点击鼠标左键和右键

开发者可根据实际需要参照更改相关功能

本案例所有库文件及相关代码后台回复“ESP32模拟鼠标”可获得。

                                     欢迎转阅分享!

更多推荐

arduino nano 蓝牙

本文发布于:2023-06-29 03:42:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/938540.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:蓝牙   arduino   nano

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!