- RFM69HCW射频模块
- RFM69HCW
- RFM69模块的引脚排列和说明
- 准备定制开发委员会
第3步:为此准备PCB,我正在阅读此自制PCB教程。我将脚印打印在铜板上,然后将其放入蚀刻液中
步骤4:按照两块板上的步骤进行操作,然后将模块焊接到封装上。焊接完两个模块后,如下所示
下图给出了RFM69HCW射频模块的引脚排列
- 所需材料
- 硬件连接
- 运行示例草图
- 示例草图的工作
在为您的项目提供无线功能时,433Mhz ASK混合发送器和接收器由于价格低廉,易于使用的库及其社区支持而成为工程师,开发人员和业余爱好者的常见选择。我们还使用此433MHz RF模块建立了几个项目,例如RF控制的家庭自动化和无线门铃。但是通常情况下,仅使用ASK混合发送器和接收器是不够的,它的传输距离很短,并且单向通信特性使其不适用于许多应用
为了解决这个问题不断出现的问题,在开发商HopeRF设计那叫一个爽新的射频模块RFM69HCW。在本教程中,我们将学习RFM69HCW RF模块及其优势。首先,我们将为RFM69HCW制作自制PCB,然后将RFM69HCW与Arduino进行接口以检查其工作情况,以便您可以在自己选择的项目中使用它。因此,让我们开始吧。
RFM69HCW射频模块
RFM69HCW是一种便宜易用的无线电模块,可在未经许可的ISM(工业,科学和医学)频段内工作,类似于我们先前项目中使用的nRF24L01 RF模块。它可以用于两个模块之间的通信,也可以配置为网状网络以在数百个模块之间进行通信,这使其成为为家庭自动化和其他数据采集项目中使用的传感器构建廉价的短距离无线网络的理想选择。
RFM69HCW的功能:
- +20 dBm-100 mW的功率输出能力
- 高灵敏度:1.2 kbps时低至-120 dBm
- 低电流:Rx = 16 mA,100nA寄存器保持
- 可编程Pout:-18至+20 dBm(以1dB为步长)
- 在模块的电压范围内保持稳定的RF性能
- FSK,GFSK,MSK,GMSK和OOK调制
- 内置位同步器执行时钟恢复
- 115 dB +动态范围RSSI
- 具有超快AFC的自动RF感应
- 具有CRC-16,AES-128、66字节FIFO内置温度传感器的数据包引擎
- 高链接预算
- 成本极低
RFM69HCW
频率
RFM69HCW设计用于ISM(工业,科学和医学)频段,ISM频段是一组用于低功率,短距离设备的免执照射频。在不同地区,不同的频率是合法的,因此这就是模块具有315,433,868和915MHz的许多不同版本的原因。所有主要的RF通信参数都是可编程的,并且大多数参数都可以动态设置,而且RFM69HCW还具有可编程的窄带和宽带通信模式的独特优势。
注意:由于其功率较低且范围较短,因此在小型项目中实现此模块将不是问题,但如果您打算使用该产品制造产品,请确保使用正确的频率进行测试。您的位置。
范围
为了更好地了解范围,我们必须处理一个相当复杂的主题,即RF Link预算。那么,此链接预算是什么?为什么它如此重要?链接预算就像其他所有预算一样,在开始时就有预算,并且随着时间的推移会花费,如果预算用完了,您将无法支出更多。
链路预算还与发送方和接收方之间的链路或连接有关,它由发送方的传输功率和接收方的灵敏度填充,并且以分贝或dB计算,它也是频率-依赖。如果链路预算用尽,则发送方和接收方之间的各种障碍和噪声(例如距离电缆,墙壁,树木建筑物)都会扣除链路预算,如果链路预算用尽,则接收方只会在输出端产生一些噪声,而我们不会得到任何可用的信号。根据RFM69HCW的数据表,其链路预算为140 dB,而ASK混合发送器为105 dB,但这意味着什么重要区别?幸运的是,我们发现在线上的Radio Link预算计算器,让我们做一些计算以更好地理解该主题。首先,假设我们在发送者和接收者之间建立了视线连接,并且一切都非常完美,因为我们知道RFM69HCW的预算为140 dB,所以让我们检查一下我们可以通信的最大理论距离,将所有内容设置为零,并且将距离到500KM,频率到433MHz,我们得到的水平接收功率为139.2 dBm
现在,我将所有内容设置为零,将9KM的距离设置为433MHz,我们得到的水平接收功率为104.3 dBm
因此,通过以上比较,我认为我们都可以同意RFM69模块远优于ASK混合发送器和接收器模块。
天线
警告! 必须将天线连接到模块,因为如果没有天线,则模块可能会因其自身的反射功率而损坏。
创建天线并不像听起来那样困难。最简单的天线可以仅由单股22SWG导线制成。频率的波长可以通过公式 v / f 来计算,其中 v 是传输速度, f 是(平均)传输频率。在空中, v 等于光速 c ,即299.792.458 m / s。因此,433 MHz频段的波长为299.792.458 / 433.000.000 = 34.54厘米。其中一半是17,27厘米,四分之一是8,63厘米。
对于433 MHz频段,波长为299.792.458 / 433.000.000 = 69.24厘米。其中一半是34,62厘米,四分之一是17,31厘米。因此,从上面的公式,我们可以看到计算天线导线长度的过程。
电力需求
RFM69HCW的工作电压在1.8V至3.6V之间,并且在发射时可吸收高达130mA的电流。在表的下方,我们可以清楚地看到不同条件下模块的功耗
警告:如果您选择的Arduino使用5V逻辑电平与外设进行通信,则将模块直接连接到Arduino将会损坏模块
符号 |
描述 |
条件 |
敏 |
典型值 |
最高 |
单元 |
IDDSL |
睡眠模式下的电流 |
-- |
0.1 |
1个 |
A |
|
闲置 |
空闲模式下的电流 |
RC振荡器使能 |
-- |
1.2 |
-- |
A |
IDDST |
待机模式下的电流 |
晶体振荡器使能 |
-- |
1.25 |
1.5 |
A |
IDDFS |
合成器中的电流 模式 |
-- |
9 |
-- |
A |
|
国际DDR |
当前处于接收模式 |
-- |
16 |
-- |
A |
|
IDDT |
传输模式下的电源电流具有适当的匹配度,在VDD范围内稳定 |
在PA_BOOST上,RFOP = +20 dBm 在PA_BOOST上,RFOP = +17 dBm RFIO引脚上的RFOP = +13 dBm RFIO引脚上的RFOP = +10 dBm RFIO引脚上的RFOP = 0 dBm RFIO引脚上的RFOP = -1 dBm |
-- -- -- -- -- -- |
130 95 45 33 20 16 |
-- -- -- -- -- -- |
嘛 嘛 嘛 嘛 妈妈 |
在本教程中,我们将使用两个Arduino Nano和两个逻辑电平转换器与模块进行通信。我们之所以使用Arduino nano,是因为内置的内部稳压器可以非常有效地管理峰值电流。下面硬件部分的Fritzing图将向您更清楚地说明。
注意:如果您的电源无法提供130mA的峰值电流,则Arduino可能会重新启动,或者更糟糕的是,该模块可能无法正常通信,在这种情况下,使用具有低ESR的大容量电容器可以改善这种情况
RFM69模块的引脚排列和说明
标签 |
功能 |
功能 |
标签 |
蚂蚁 |
射频信号输出/输入。 |
电源地 |
地线 |
地线 |
天线接地(与电源接地相同) |
数字量I / O,软件配置 |
DIO5 |
DIO3 |
数字量I / O,软件配置 |
重置触发输入 |
RST |
DIO4 |
数字量I / O,软件配置 |
SPI片选输入 |
新高中 |
3.3伏 |
3.3V电源(至少130 mA) |
SPI时钟输入 |
SCK |
DIO0 |
数字量I / O,软件配置 |
SPI数据输入 |
摩西 |
DIO1 |
数字量I / O,软件配置 |
SPI数据输出 |
味噌 |
DIO2 |
数字量I / O,软件配置 |
电源地 |
地线 |
准备定制开发委员会
当我购买该模块时,它没有配备兼容面包板的分线板,因此我们决定自己做一个。如果您可能必须这样做,则只需按照以下步骤操作即可。另外,请注意,执行这些步骤不是强制性的,您只需将导线焊接到RF模块并将它们连接到面包板上,它仍然可以工作。我遵循此过程只是为了获得稳定且坚固的设置。
步骤1:准备RFM69HCW模块的原理图
第3步:为此准备PCB,我正在阅读此自制PCB教程。我将脚印打印在铜板上,然后将其放入蚀刻液中
步骤4:按照两块板上的步骤进行操作,然后将模块焊接到封装上。焊接完两个模块后,如下所示
下图给出了RFM69HCW射频模块的引脚排列
所需材料
这是与模块进行通信所需的清单
- 两个RFM69HCW模块(具有匹配的频率):
- 434 MHz(WRL-12823)
- 两个Arduino(我正在使用Arduino NANO)
- 两个逻辑电平转换器
- 两个突破板(我正在使用定制的突破板)
- 一个按钮
- 四个LED
- 一个4.7K电阻器四个220Ohms电阻器
- 跳线
- 漆包铜线(22AWG),制成天线。
- 最后焊接(如果您还没有这样做的话)
硬件连接
在本教程中,我们使用的是Arduino nano,它使用5伏逻辑,但是RFM69HCW模块使用3.3伏逻辑电平,如您在上表中清楚看到的那样,为了在两个设备之间正确通信,必须使用逻辑电平转换器,如下图所示我们向您展示了如何将Arduino nano连接到RFM69模块。
Fritzing图发送方节点
连接表发送方节点
Arduino引脚 |
RFM69HCW引脚 |
I / O引脚 |
D2 |
DIO0 |
-- |
D3 |
-- |
TAC_SWITCH |
D4 |
-- |
LED_GREEN |
D5 |
-- |
LED_RED |
D9 |
-- |
LED_BLUE |
D10 |
新高中 |
-- |
D11 |
摩西 |
-- |
D12 |
味噌 |
-- |
D13 |
SCK |
-- |
Fritzing图接收器节点
连接表接收器节点
Arduino引脚 |
RFM69HCW引脚 |
I / O引脚 |
D2 |
DIO0 |
-- |
D9 |
-- |
LED |
D10 |
新高中 |
-- |
D11 |
摩西 |
-- |
D12 |
味噌 |
-- |
D13 |
SCK |
-- |
运行示例草图
在本教程中,我们将设置两个Arduino RFM69节点并使它们彼此通信。在下面的小节中,我们将了解如何借助LowPowerLab的Felix Rusu编写的RFM69库来启动和运行该模块。
导入图书馆
希望您之前已经完成了一些Arduino编程,并且知道如何安装库。如果没有,请检查此链接的“导入.zip库”部分
插入节点
将发送方节点的USB插入PC,应将新的COM端口号添加至Arduino IDE的“工具/端口”列表,将其写下来,现在插入接收方节点,另一个COM端口应出现在工具/端口列表,也请写下来,借助端口号,我们会将草图上传到发送方和接收方节点。
打开两个Arduino会话
在第一个会话加载后,通过双击Arduino IDE图标打开两个Arduino IDE会话,必须打开两个Arduino会话,因为这是打开两个Arduino串行监视器窗口并同时监视两个节点的输出的方式
打开示例代码
现在完成所有设置后,我们需要在两个Arduino会话中打开示例代码,然后转到
文件>示例> RFM6_LowPowerLab>示例> TxRxBlinky
然后点击将其打开
修改示例代码
- 在代码顶部附近,查找#define NETWORKID并将其值更改为0。使用此ID,您的所有节点都可以相互通信。
- 寻找#define FREQUENCY,将其更改为与电路板频率相匹配(最小值为433_MHz)。
- 寻找#define ENCRYPTKEY,这是您的16位加密密钥。
- 查找#define IS_RFM69HW_HCW,如果使用RFM69_HCW模块,则取消注释
- 最后,查找#define NODEID,默认情况下应将其设置为RECEIVER
现在,将代码上传到您先前设置的Receiver Node。
是时候修改发送者节点的草图了
现在,在#define NODEID宏中将其更改为SENDER并将代码上传到您的发件人节点。
就是这样,如果您正确完成了所有操作,则可以准备两个完整的工作模型进行测试。
示例草图的工作
成功上传Sketch之后,您将看到与Arduino的D4引脚相连的红色LED点亮,现在按下发送器节点中的按钮,您将看到红色LED熄灭,绿色LED熄灭。连接到Arduino引脚D5的指示灯如下图所示
您也可以观察按钮按下!串行监视器窗口中的文本,如下所示
现在观察连接到发送方节点D9引脚的蓝色LED,它会闪烁两次,并且在接收节点的“串行监视器”窗口中,您将观察到以下消息以及连接到发送方节点D9引脚的蓝色LED。接收器节点将点亮。如果您在接收器节点的“串行监视器”窗口中看到上述消息,并且LED也亮起,则表示祝贺!您已成功将RFM69模块与Arduino IDE通信。您也可以在本页底部的视频中找到本教程的全部内容。
所有这些模块被证明非常适合用于建造气象站,车库门,带指示器的无线泵控制器,无人机,机器人,您的猫……天空无极限!希望您理解本教程并喜欢构建有用的东西。如果您有任何疑问,请将其留在评论部分或使用论坛进行其他技术查询。