ESP8266EX-无线遥控笔
简介
本项目是一款基于ESP8266EX无线芯片的无线遥控笔。
简介:本项目是一款基于ESP8266EX无线芯片的无线遥控笔。开源协议
:GPL 3.0
描述
2022/6/20 更新程序:1.修复发射端可能存在的按键速度过快导致崩溃重启的问题、优化配对连接速度 2.接收端:修复了当发射端反复开关机连接达四次以上时导致无法连接接收端的问题。
2022/7/2 请注意BOM表中的贴片晶振YSX321SL 是26MHZ,不是12MHZ(已修改元件名称)我也是今天才发现没有改名称,如果您因为这个购买错误了,实在是抱歉了。
2022/10/11 关于2.0V主控板天线背面的铺铜是为了保持正面板颜色的一致性,如果铺铜看起来就像给板子剃了个光头,就我个人而言很难受。
明年高考更新随缘。
本项目是一款基于ESP8266EX无线芯片的无线遥控笔。
两个设备(接收端,发射端)间通过WIFI相连接,再由接收端作为TCP Server。
由发射端作为Client端,两者经由TCP协议传输数据,接收端将数据判别后通过串口传递对应键值到CH9328串口转HID芯片,由后者上传至计算机,完成模拟键盘操作。
注意:项目是基于我现有的材料制成,因此可能有不合理的地方。
设备成品图:
注:本项目是由两个设备构成,如图左侧是接收端(用于模拟键盘操作),右侧为发射端(获取按键操作并传递数据)。
左侧设备是我的另一个开源项目ESP8266-CH9328无线HID模拟设备
左侧设备在使用时发热属于正常现象
当前版本下该设备使用时发热较大,属于正常现象,下个版本会更换协议,优化这个问题
请点击下方视频链接来进一步了解我的项目:
1.esp8266ex 主控的CH9328串口转HID设备视频演示
遥控笔细节展示:
遥控笔由一个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显示了。此时点击上传即可。
在您使用中有任何问题都可以向我询问,我尽可能帮助您。
评论