SX1278模块引脚配置_功能特性_原理图
SX1278 LoRa射频模块是最新的射频技术和远程模块之一,它采用SPI通信协议,适合那些只有SPI通信的设备和控制器。该模块使用天线进行正确的射频通信。
SX1278采用多种类型的调制方式进行数据通信,可供选择。与其它模块一样使用简单的射频通信,但其多种调制方法和高达5KM-10KM的范围使其最适合长距离通信。它采用Lora频谱通信技术,将其范围扩展到最大10KM,但需1MHz带宽特定信道。
引脚配置
SX1278共有16个引脚,有助于构建合适的通信设备。这些引脚将获得与第三个SPI通信微控制器或板的接口。然后控制设备将通过该模块执行各项功能。以下是SX1278 LoRa射频模块的引脚图:
引脚配置功能详细信息如下:
PIN | 名称 | 功能描述 |
引脚1 | ANT | 该引脚用于连接天线。 |
引脚2、9、16 | GND | 与电源和控制器共地的接地引脚。 |
引脚3 | 3.3V | 为设备供电,引脚3将有助于电源输入。 |
引脚4 | RESET | 引脚4用于通过外部信号复位模块。 |
引脚5 | DIO0 | 为了通过模块执行一般I/O功能,DIO引脚将有所帮助。引脚DIO0可定制为中断引脚。 |
引脚6 | DIO1 | 执行一般I/O功能。 |
引脚7 | DIO2 | 执行一般I/O功能。 |
引脚8 | DIO3 | 执行一般I/O功能。 |
引脚10 | DIO4 | 执行一般I/O功能。 |
引脚11 | DIO5 | 执行一般I/O功能。 |
引脚12 | SCK | SCK引脚用于SPI通信期间的时钟脉冲。 |
引脚13 | MISO | MISO的意思是主入从出。对于SX1278,主站将是控制器,从站将是模块。这意味着通过MISO引脚数据将从模块传输到微控制器/Arduino |
引脚14 | MOSI | MOSI表示主出从属输入,因此,该引脚将接收来自Arduino的数据。 |
引脚15 | NSS | 在SPI通信中,片选/使能引脚将有助于激活从机。因此,在SPI中,NSS引脚将执行该功能。 |
功能特性
SX1278功能主要与现代通信方法相关,并且它还可以解决设计人员在射频通信中可能遇到的大多数问题。这些功能不需要任何特殊的外部模块或硬件。一切都包含在一个 SX1278模块中。
- 可以轻松地以非阻塞模式发送数据。
- 可以根据现有环境采用不同的调制方式。
- 可选择的模块方式有:GFSK、FSK、OOK、GMSK。
- 具有用于通信的外部天线,可扩展模块的范围,并且由官方公司Semtech制造。
- SX1278使用LoRa Spectrum调制解调器,可以实现通过现有的FSK或OOK调制系统可以实现的远距离。
- 它的工作频率为433MHz,采用半双工方式进行SPI通信。
- 该器件是TLL基础器件,需要3.3V才能运行。
- 该模块的范围为5-10KM,适合工业和商业级别。
- 它使用256位FIFO方法来传输数据。
- 在该模块中,用户还可以决定纠错率、扩频因子和带宽。
- 多个信号可以通过同一信道传输,互不影响。
- SX1278支持56db的超级抗干扰通道。
功能框图
框图正确定义了模块的内部结构,包括引脚和天线:
使用原理示例
每个基于SPI的微控制器都可以控制该模块,但在互联网上找到的最常见的方法是通过Arduino。在Arduino中,接线电路将根据SPI通信,但其余的编程部分将像串行通信一样。
Lora RF模块与Arduino接口
#include <SPI.h> #include <LoRa.h>
第一个SPI库用于SPI通信,另一个库LoRa将解决模块和Arduino之间的通信问题。使用库不会对数据进行加密。要发送加密数据,需要先对数据进行加密,然后再将其传递到图书馆。在上面的电路图中,SPI引脚连接清晰,但其他引脚如复位、片选和中断引脚需要在编程中定义。这三个引脚是可变的,并且可以连接到任何数字引脚。这三个引脚的Arduino程序为:
LoRa.setPins(NSS, RESET, DIO0);
NSS和Reset引脚用于其特定功能,但这里的DIO0引脚用于中断。Lora库还与几乎所有LoRa设备兼容。要将模块与Arduino一起使用,需要定义其频率,以便其可以充分运行。以下命令将有助于设置传输数据的模块的频率级别。如果模块不具备的频率,会导致运行错误。
LoRa.begin(433E6);
值433E6将代表SX1278的433MHz频率。该模块使用SPI协议,有时该协议因控制器而异。要自定义SPI通信,以下命令将有所帮助:
LoRa.setSPIFrequency(frequency); LoRa.setSPI(spi);
第一个命令将有助于更改频率,因为某些设备不以8MHz频率运行,而SPI将有助于获取新的SPI引脚。
使用LoRa模块发送消息
本文讨论的所有功能代表了控制模块的初始条件。编程中最重要的部分是数据发送方法。要发送数据,以下命令将有所帮助。
LoRa.beginPacket(); LoRa.print("HELLO"); LoRa.endPacket();
以下命令有助于发送数据,但请记住数据最多只能为255个字节。LoRa.print命令将有助于以字节为单位发送字符串,但以下命令在从模块发送的数据中最常用:
LoRa.beginPacket(); LoRa.write(byte); LoRa.write(buffer, length); LoRa.endPacket();
数据的长度应该只有 255 个字节,这是最重要的,要发送255个字节,开发人员必须描述数据包的开始和结束。每个数据包将由微控制器发送一次。
使用LoRa模块接收消息包
在接收端,设备没有太多选择,它只会接收数据并按照程序中描述的方式执行操作:
LoRa.parsePacket() LoRa.available() (char)LoRa.read() LoRa.packetRssi()
LoRa.parsePacket() 将有助于描述数据包大小;第二个命令 LoRa.avaialable() 将帮助检查数据可用性;(char)Lora.read() 将帮助读取数据;最后一个命令LoRa.packetRssi()将帮助描述接收信号强度指示器 (RSSI)。
当然,以上讨论的这些命令只是描述了Arduino模块的一般功能。要在商业级别和工业级别正确使用该模块,问题可能会有所不同,而且可以想象更大。每个问题的解决方案都可以通过编程来解决。上述方法和讨论仅针对发送方和接收方的简单通信。要获取有关高级功能的说明,请查看官方库。
主要应用
- 该模块的远程和成功运行能力使其适用于每种商业产品。
- 在农业领域,由于远程和通信的要求,SX1278在大多数项目中都有广泛应用。
- 在工业领域。在物联网通信中,SX1278模块是最佳选择。
- 该商用仪表还与远程射频模块进行通信。
- 创建网状星形拓扑或网状网络SX1278是可靠的。