糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器

arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器

时间:2020-07-06 08:52:50

相关推荐

arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器

平时的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的地址/dl/package_esp32_index.json

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

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

(二)添加BleMouse库

1.github上下载库文件,网址:/T-vK/ESP32-BLE-Mouse

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()) { //做切换自动播放功能和手动操作功能用inta=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){ //按下开关键,状态量自加1state+=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 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。