上周分享了一篇远程控制空调的文章(一次DIY远程空调控制的经历(长篇多图)),里面提到了一个USB转无线的模块,有朋友想要这个资料,于是我找了下。
该模块共有两个版本,第一个是用LGT8F08A做的,这个型号用的人少(我也是第一次见)。后面改成了STM8S,毕竟这个用的人多。
下面是正文:
简介:
无线串口模块wirlessUART是由LGT8F08A和廉价nRF24L01模块制作的无线串口透传模块。能够支持AT命令来配置模块的参数。模块可以配置成“PTX”或者“PRX”的角色。“PTX”和“PRX”的叫法来自nRF24L01的文档,在串口数据传输上,这两种角色并没有差别,但一个PTX设备必须和一个PRX设备配对使用。
主要功能:
1. 最大稳定数据传输波特率115200
2. 可以使用AT命令配置串口的格式,包括波特率,数据长度等等
3. 可以使用AT命令配置无线通信频率,通信速率以及发射功率
4. 时分全双工设计,模块可同时收发数据
5. LED显示模块的配对状态
6. 可以安装锂电池实现自供电
双面感光板,完全Homemade,看起来还不错^_^:
做这个主要是想给树莓派使用,这样就可以无线操作Linux的串口终端。在Linux网络配置还没有完成,或者网络连接失败的时候,无法使用ssh登录linux,需要辛苦的将树莓派重新连接上电视上,再接入一个USB键盘来操作。有了无线串口,就可以悠哉的坐在沙发上,直接使用无线串口终端来配置和恢复Linux,不用跪在角落摆弄布满灰尘的视频传输线。
最初我对模块的要求是,只要能够传输命令行就OK。因为LGT8F08A的SPI接口和串口是复用的,所以只能使用软SPI的方式来连接nRF24L01无线模块。这成为了模块传输速度的主要瓶颈。但实际传输的速度比我最初想象的要快的多,经过几天的测试和调整,程序也变得稳定起来。所以,我测试了模块的连续数据传输能力。
我使用超级终端Zmodem文件发送的方式来测试数据传输。因为模块不包含USB接口,所以测试时将它们分别连接在两个USB转串口设备上,两个USB转串口设备同时连接在一个USB-HUB上。在计算机上使用超级终端打开这两个USB串口,进行文件传输操作。这样,我只需要使用1台计算机就能同时测试数据发送和接收。
测试连接图,两个黑色热缩管包裹着的是USB转串口模块:
经过测试,模块可以在115200波特率下,6到8米距离以内较为稳定的传输文件。传输的距离主要取决于nRF24L01模块的质量以及通信速率(可用AT命令来配置)。在2Mbps的无线速度下,最大直线传输距离在10米左右,如果有墙壁的阻挡,信号衰减的更快。因为选用了最便宜的nRF24L01模块,所以我对传输的距离没有怨言。如果使用带天线的nRF24L01模块,我想传输的距离会更远一些。
模块可以安装锂电池供电,因为有些设备串口部分没有将电源引出来,所以模块自供电使用起来对我比较方便。如果你不需要锂电池,可以去除原理图上标明为SELF-POWERED的部分,焊接EXTERN-POWERED部分。
如何进一步提升传输速度
传输速度的瓶颈在于软件SPI方式连接nRF24L01模块。这是因为LGT8F08A的SPI接口和UART接口是复用的。所以,换用有硬件SPI可用的AVR芯片上,相信可以进一步提升传输速度和稳定性。LGT和AVR的之间的移植也不是很困难。但AVR的价格比LGT要贵的多。
使用说明:
在上电时按住AT-MODE键不放可以进入AT命令模式,在这个模式下可以设置模块的各种参数。
红色LED为电池信号:低电量时会开始闪烁,充电时为常亮。
蓝色LED为PTX设备连接信号(PRX设备不使用):连接成功时为常量,搜索设备时为闪烁。
必须使用一个PTX设备和一个PRX设备配对使用。并且两个设备的无线频率和无线速率必须相同。
AT命令说明:
显示所有配置:AT+WHAT?
显示设备角色:AT+ROLE?
显示串口格式:AT+UART?
显示无线频率:AT+RFCH?
显示无线速率:AT+RFDR?
显示无线功率:AT+RFPW?
设置设备角色:AT+ROLE=PRX 或者 AT+ROLE=PTX
设置串口格式:AT+UART=115200,N,8,1 或者 AT+UART=9600,O,8,1 或者 AT+UART=4800,E,9,2
设置无线频率:AT+RFCH=2(频率为2400+2Mhz)或者 AT+RFCH=10(频率为2400+10Mhz)
设置无线速率:AT+RFDR=1M 或者 AT+RFDR=2M
设置无线功率:AT+RFPW=0(最小)或者 AT+RFPW=3(最大)
DIY成本计算:
LGT8F08A-SSOP24 1.85元
nRF24L01模块 4.00元
阻容插座开关LED 2.00元(大约)
感光板PCB 2.00元(大约)
合计:9.85元
增加锂电池:
KB4540(2YL1) 1.20元
140mAh锂电池 8.00元
合计:9.2元