这是使用无线电收发器芯片SX1262和SX1268的Arduino库,用于LORA通信。

AI-Thinker提供了几个Lora模块。
您可以在Aliexpress和eBay上获得这些。
| 模型 | 类型 | 接口/核心 | 芯片 | 频率 | 足迹 | IPEX-ANTENA | 洛拉·旺(Lora-Wan) |
|---|---|---|---|---|---|---|---|
| RA-01 | Tranceiver | spi | SX1278 | 410-525MHz | SMD16 | 不 | 不 |
| RA-02 | Tranceiver | spi | SX1278 | 410-525MHz | SMD16 | 是的 | 不 |
| RA-01H | Tranceiver | spi | SX1276 | 803-930MHz | SMD16 | 不 | 不 |
| RA-01 | Tranceiver | spi | SX1268 | 410-525MHz | SMD16 | 不 | 不 |
| RA-01SH | Tranceiver | spi | SX1262 | 803-930MHz | SMD16 | 是的 | 不 |
| RA-01SC | Tranceiver | spi | LLCC68 | 410-525MHz | SMD16 | 是的 | 不 |
| RA-06 | MCU | 手臂皮层M0+ | SX1278 | 410-525MHz | SMD20 | 是的 | 不 |
| RA-07 | MCU | 手臂皮层M0+ | ASR6501 | 410-525MHz | SMD18 | 不 | 是的 |
| RA-07H | MCU | 手臂皮层M0+ | ASR6501 | 803-930MHz | SMD18 | 不 | 是的 |
| RA-08 | MCU | 手臂皮层M4 | ASR6601 | 410-525MHz | SMD18 | 不 | 是的 |
| RA-08H | MCU | 手臂皮层M4 | ASR6601 | 803-930MHz | SMD18 | 不 | 是的 |
具有SX1262/1268的LORA模块有几个选项。
使用TCXO(温度补偿的晶体振荡器)
SX1262/1268可以使用TCXO。
如果使用TCXO,则未连接XTB引脚。
但是,SX1262/1268的第6引脚(DIO3)可用于为TCXO供电。
TXCO和天线控制的解释在这里。
RA-01S / RA-01SH不使用TCXO。
电源模式
SX1262/1268具有两种电源模式。
一个是只有在所有模式中使用的LDO。
另一个是DC_DC+LDO用于STBY_XOSC,FS,RX和TX模式。
LDO和DCDC选择的说明在这里。
RA-01S / RA-01SH仅在所有模式下使用LDO。
RF开关
通常,使用DiO2切换RF-SWITCH。
但是,某些Tranceiver使用外部GPIO切换RF-SWITCH。
RA-01S / RA-01SH使用SC70-6集成负载开关在RFO和RFI之间切换。
RA-01S / RA-01SH使用DiO2来控制这一点。
dio2 = 1,ctrl = 0,rfc至rf1 tx模式。
dio2 = 0,ctrl = 1,rfc至r21 rx模式。
您需要查看适当设置这些选项的原理图,但它非常深奥。
此库的默认设置适用于RA-01 / RA-01SH。
当使用RA-01 / RA-01SH以外,您需要适当设置它们。
我基于此创建了这个库。
使用此库,RA-01S / RA-01SH不起作用。
RA-01SC使用LLCC68。
RA-01SC与RA-01兼容。
但是,有以下限制:

RA-01
https://docs.ai-thinker.com/_media/lora/docs/ra-01s_specification.pdf
RA-01SH
https://docs.ai-thinker.com/_media/lora/docs/ra-01sh_specification.pdf
RA-01SC(中文)
https://img.iceasy.com/product/product/files/202108/8A8A8A1A7A7B55017B2EF7B2EF70A370953.PDF
RA-0X(SMD16)具有与ESP12相同的脚图案。
因此,可以使用用于ESP12的音高转换PCB。


下载此回购作为zip。然后在Arduino IDE中转到素描 - >添加库 - >添加.zip库。
| RA-01S/SH | UNO | 兆 | ESP8266 | |
|---|---|---|---|---|
| VCC | - - | 3.3V(*1) | 3.3V | 3.3V |
| gnd | - - | gnd | gnd | gnd |
| SCK | - - | D13(*2) | D52(*2) | IO14 |
| 味o | - - | D12 | D50 | IO12 |
| 莫西 | - - | D11(*2) | D51(*2) | IO13 |
| NSS | - - | D5(*2) | D5(*2) | IO2 |
| 第 | - - | D6(*2) | D6(*2) | IO0 |
| 忙碌的 | - - | D7(*2) | D7(*2) | IO16 |
| txen | - - | N/C。 | N/C。 | N/C。 |
| rxen | - - | N/C。 | N/C。 | N/C。 |
(*1)
UNO的3.3V输出只能提供50mA。
此外,不兼容设备的输出当前容量要小于官方产品。
因此,当从板载3V3提供时,该模块可能无法正常工作。
(*2)
SX126X的耐受性不足。
您需要从5V转移到3.3V。
我将其用于级别的转变。
Ebyte提供了几个Lora模块。
您可以在Aliexpress和eBay上获得这些。
| 模型 | 界面 | 芯片 | 频率 | 力量 | 脚扎 | IPEX-ANTENA | 洛拉·旺(Lora-Wan) |
|---|---|---|---|---|---|---|---|
| E22-400M22S | spi | SX1268 | 433/470MHz | 160MW | 标准 | 是的 | 不 |
| E22-400M30 | spi | SX1268 | 433/470MHz | 1000MW | 标准 | 是的 | 不 |
| E22-400MM22S | spi | SX1268 | 433/470MHz | 160MW | 小的 | 不 | 不 |
| E22-900M22S | spi | SX1262 | 868/915MHz | 160MW | 标准 | 是的 | 不 |
| E22-900M30 | spi | SX1262 | 868/915MHz | 1000MW | 标准 | 是的 | 不 |
| E22-900MM22S | spi | SX1262 | 868/915MHz | 160MW | 小的 | 不 | 不 |


随着这种更改,它起作用。
/*
SX126x lora(5, //Port-Pin Output: SPI select
6, //Port-Pin Output: Reset
7 //Port-Pin Input: Busy
);
int16_t ret = lora.begin(RF_FREQUENCY, //frequency in Hz
TX_OUTPUT_POWER); //tx power in dBm
*/
SX126x lora(5, //Port-Pin Output: SPI select
6, //Port-Pin Output: Reset
7 //Port-Pin Input: Busy
8 //Port-Pin Output: TXEN
9 //Port-Pin Output: RXEN
);
int16_t ret = lora.begin(RF_FREQUENCY, //frequency in Hz
TX_OUTPUT_POWER, //tx power in dBm
3.3, //use TCXO
true); //use TCXO
需要另外两根电线。
| ebyte | UNO | 兆 | ESP8266 | |
|---|---|---|---|---|
| txen | - - | 8(*3) | 8(*3) | D4 |
| rxen | - - | 9(*3) | 9(*3) | D5 |
(*3)
SX126X的耐受性不足。
您需要从5V转移到3.3V。
音高转换基础在这里。
SX1262和LLCC68兼容,但由于某些原因,它们不起作用。
| 模型 | 界面 | 芯片 | 频率 | 力量 | 脚扎 | IPEX-ANTENA | 洛拉·旺(Lora-Wan) |
|---|---|---|---|---|---|---|---|
| E220-400M22S | spi | LLCC68 | 433/470MHz | 160MW | 标准 | 是的 | 不 |
| E220-400M30 | spi | LLCC68 | 433/470MHz | 1000MW | 标准 | 是的 | 不 |
| E220-900M22S | spi | LLCC68 | 868/915MHz | 160MW | 标准 | 是的 | 不 |
| E220-900M30 | spi | LLCC68 | 868/915MHz | 1000MW | 标准 | 是的 | 不 |
该库可以与Radiolib通信。
Radiolib需要连接DIO1才能进行工作。
// Set frequency: 866Mhz
// Set bandwidth(BW): 125Khz
// Set Spreading Factor(SF): 7
// Set Error Cording Rate(CR): 4/5
// Set SyncWord: 0x1424(Private Network)
// Set Power: 10dBm
// Set Preamble Length: 8
// Configure the radio to NOT use a TCXO controlled by DIO3
// Set regulator mode: DC-DC
int state = radio.begin(866.0, 125.0, 7, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 10, 8, 0.0, false);
这将有所帮助。
$ git clone https://github.com/nopnop2002/Arduino-LoRa-Ra01S
$ cd Arduino-LoRa-Ra01S/example/Ra01S-RX/
$ pio init -b d1_mini
$ cp Ra01S-RX.ino src/
$ vi src/Ra01S-RX.ino
Disable AtMega
Enable ESP8266
$ vi platform.ini
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
lib_deps = https://github.com/nopnop2002/Arduino-LoRa-Ra01S --> Add this line
$ pio run -t upload && pio device monitor -b 115200