参考设计

收藏 

评论 

ESP8266EX-无线遥控笔

super_star 发布

2022/6/20 更新程序:1.修复发射端可能存在的按键速度过快导致崩溃重启的问题、优化配对连接速度  2.接收端:修复了当发射端反复开关机连接达四次以上时导致无法连接接收端的问题。

2022/7/2 请注意BOM表中的贴片晶振YSX321SL 是26MHZ,不是12MHZ(已修改元件名称)我也是今天才发现没有改名称,如果您因为这个购买错误了,实在是抱歉了。

                另外就是有计划更新蓝牙版本,但最近在做娃娃机,所以要推迟一端时间,现在想的方案是esp8266+蓝牙透传模块+外置天线,只需要替换前面板就可以,暂时是这个思路。

 

 

本项目是一款基于ESP8266EX无线芯片的无线遥控笔。

 

两个设备(接收端,发射端)间通过WIFI相连接,再由接收端作为TCP Server。

由发射端作为Client端,两者经由TCP协议传输数据,接收端将数据判别后通过串口传递对应键值到CH9328串口转HID芯片,由后者上传至计算机,完成模拟键盘操作。

 

注意:项目是基于我现有的材料制作而成。

 

设备成品图:

注:本项目是由两个设备构成,如图左侧是接收端(用于模拟键盘操作),右侧为发射端(获取按键操作并传递数据)。

左侧设备是我的另一个开源项目ESP8266-CH9328无线HID模拟设备

左侧设备在使用时发热属于正常现象

 

 

请点击下方视频链接来进一步了解我的项目:

1.esp8266ex 主控的CH9328串口转HID设备视频演示

2.基于ESP8266的无线遥控笔应用演示

 

遥控笔细节展示:

 

 

 

 

 

遥控笔由一个140ma的锂电池供电,电源电压经过TP5400充电升压芯片后输出5V电压(自带的),再经过662K降压芯片输出3.3V电压给ESP8266供电。您可以点击蓝字进一步了解该芯片。

当您充电至4.1V左右,在正常状态下(指设备连接wifi时)设备可持续工作 >=2.5小时(当然以您的实际使用时长为准,我只做参考),当设备电压过低时,led亮度会降低,此时您需要通过Type-C口进行充电。

从低电压3V充电至4.1V(这里说一下当电压大于4.1V时充电速度就会降低,再加上设备功耗,测试后充满至4.2V有点不现实),您需要6-7分钟。

(充电过程中发热属于正常现象)

(请注意 拨动开关 管 是否连接电池,充电时必须打开开关)

(短时间内来回多次开关电源或导致锂电池寿命减少)(正常使用不会)

 

两个设备的收信范围:经测试大约是 <=5米,再远也可以连上但不稳定。(2.0V)

如果您要使用本项目,请注意PCB厚度应该>1.2mm,如果厚度太小会导致按键时PCB形变。

 

程序的设计也至关重要,我在上个测试版本中使用循环来检测IO口电平状态来发送数据,因此设备功耗很高,电池也只能使用50分钟左右,而在新版本中我使用了IO中断来发送数据,这样才得以加长设备的使用时间,就目前而言我还是很满意的。

 

那么我要跟大家说一下设备的程序,大家在理解之后可以快速修改程序以此实现自己的DIY,意思就是这个遥控笔不止可以模拟视频中所演示的控制PPT,它还可以模拟很多其他的按键操作,我要解释一下如何去更改这些东西。

(这里说明一下,我在附件提供的代码已经写好了PPT的上下翻页、播放、退出,没有其他需求您可以直接烧录)

 

在发送端,ESP8266通过IO中断,来判断用户是否按下某个按键,如果按下则调用对应按键(io)的响应事件

(如图是四个按键的中断回调)

 

当按键被按下,中断触发回调调用对应方法,通过TCP向接收端发送数据,例如图中的"PageDown"、"ShiftF5"。

此时接收端收到了这些数据,进入了判断方法

 

大家应该都看懂了,接收端接受数据后对其进行判断,然后Keyborad.press()某个键值。这样就完成了按键模拟。

那么下面我来实际操作一下如何更改模拟的按键值、以及其它可以模拟的操作。

 

1.更改按键值。例如我想要改变第一个按键,也就btn1按下后传出的操作为按下后模拟点击按键‘A’

首先在client.ino中找到btn1的中断回调方法,将

 

ICACHE_RAM_ATTR void btn1_OnClick(){
  client.println(String("PageUp"));
  }

改为

ICACHE_RAM_ATTR void btn1_OnClick(){
  client.println(String("A"));
  }

 

然后打开server.ino,找到writekey()方法,在里面添加内容 如下图所示

 

然后两个设备分别烧录对应程序,上电连接后按下btn1,我们就会发现

 

 

如上图所示,A被成功按下,但为什么SHIFT也会被按下,我在查阅后知道了

看完以上内容应该有个底了,那下面我就说一下它还可以进行什么操作,给您有个DIY思路

按键被按下后 自动打开浏览器到我的B站视频网址

 

cllient端的程序改动就不说了,上面演示过了。我主要展示server端如何模拟这个过程并且给出视频。

点击跳转演示视频,挺有意思的。

 

 

下面给出BOM表中没有的元件和个别元件焊接时的注意事项:

2.0V

用于固定电源板和主控板的铜柱、以及对应的螺丝 双通M2*7mm铜柱 x4、M2*3mm圆头螺丝 x4 (请多买几个备用) 固定四周

 

140ma带保护板锂电池(建议您选择规格合适的更大容量锂电池)

 

 

x1 供电

FFC/FPC软排线 10P;0.5mm间距;6cm

x1 用于连接电源板和主控板

 

注意事项:

请注意在焊接排线连接器时仅需要一点点锡,千万不要给多了,不然都连一块,热风枪吹电烙铁烫都没用。

上面说的连接器和正面的四个按钮,焊接温度都要小于325度,否则就化了。

 

请使用带保护板的锂电池,这点很重要,在我的设计中,充电电流由两个因素决定:

 

一个是TP5400 PROG 引脚串联的电阻值,如下图:

 

另一个则是锂电池自带的保护板。

如图所示的黄色胶带包裹的部分为保护板。

 

如果您使用了带保护板的锂电池,您只需要将该电阻(电路图中为R1)阻值设为1K,这样就由保护板决定电流大小,保证充电最大效率。

 

设备烧录程序,无论接收端还是发射端,他们都留有一排烧录口,您可以通过使用串口转TTL模块对设备进行烧录。

为了方便,这里使用的是我的另一个开源项目CH340C-TYPEC-串口烧录工具,当然您可以选择自己喜欢的烧录工具,只需要用排线连接到对应孔位即可。

 

如图所示,上方的一排5个孔就是烧录孔。

从左边的方形孔开始,从左到右依次是:3.3V、ESP8266_TX、ESP8266_RX、IO0、GND(其中IO0在上电时接地,才能进入烧录模式)

 

如图,方形孔为3.3V,则顺序从右到左为3.3V、ESP8266_TX、ESP8266_RX、IO0、GND

 

发现的问题:烧录时,电路板会轻微发热,我在刷了N次后发现没有影响正常使用,如果您在烧录时发现非常烫,您可以检查一下是否连线反了。

 

简单说一下用我的CH340C烧录工具怎么烧录,这类串口转TTL大多如此:

(烧录方式1)

1.插入对应孔位

 

2.将typec插入烧录工具,然后另一端插入计算机USB口,此时上电。

 

3.打开Arduino,可以看到已经有COM显示了。此时点击上传即可。

 

 

在您使用中有任何问题都可以向我询问,我尽可能帮助您。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考设计图片
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld1”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeword1”及时沟通。

相关项目
电路图 更多>
下载中心 更多>
大学堂 更多>
论坛推荐 更多>
Datasheet 更多>