Dies ist eine Arduino -Bibliothek für die LORA -Kommunikation mit den Funktransceiver -Chips SX1262 und SX1268.

Ai-Thinking bietet mehrere Lora-Module an.
Sie können diese auf Aliexpress und eBay bekommen.
| Modell | Typ | Schnittstelle/Kern | Chip | Frequenz | Fußpuppern | Ipex-altena | Lora-Wan |
|---|---|---|---|---|---|---|---|
| RA-01 | Tranceiver | Spi | SX1278 | 410-525MHz | SMD16 | NEIN | NEIN |
| Ra-02 | Tranceiver | Spi | SX1278 | 410-525MHz | SMD16 | Ja | NEIN |
| Ra-01h | Tranceiver | Spi | SX1276 | 803-930MHz | SMD16 | NEIN | NEIN |
| Ra-01s | Tranceiver | Spi | SX1268 | 410-525MHz | SMD16 | NEIN | NEIN |
| Ra-01sh | Tranceiver | Spi | SX1262 | 803-930MHz | SMD16 | Ja | NEIN |
| RA-01SC | Tranceiver | Spi | LLCC68 | 410-525MHz | SMD16 | Ja | NEIN |
| Ra-06 | MCU | Armrinde M0+ | SX1278 | 410-525MHz | SMD20 | Ja | NEIN |
| Ra-07 | MCU | Armrinde M0+ | ASR6501 | 410-525MHz | SMD18 | NEIN | Ja |
| Ra-07h | MCU | Armrinde M0+ | ASR6501 | 803-930MHz | SMD18 | NEIN | Ja |
| Ra-08 | MCU | Arm Cortex M4 | ASR6601 | 410-525MHz | SMD18 | NEIN | Ja |
| Ra-08H | MCU | Arm Cortex M4 | ASR6601 | 803-930MHz | SMD18 | NEIN | Ja |
LORA -Module mit SX1262/1268 haben mehrere Optionen.
Unter Verwendung von TCXO (Temperaturkompensierter Kristalloszillator)
SX1262/1268 kann den TCXO verwenden.
Wenn der TCXO verwendet wird, ist der XTB -Pin nicht verbunden.
Der 6. Stift (DIO3) des SX1262/1268 kann jedoch verwendet werden, um den TCXO mit Strom zu versorgen.
Erklärung für die Kontrolle von TXCO und Antennen ist hier.
RA-01S / RA-01SH verwendet TCXO nicht.
Stromversorgungsmodi
SX1262/1268 verfügt über zwei Stromversorgungsmodi.
Eine davon ist, dass nur LDO in allen Modi verwendet wird.
Eine andere ist, dass DC_DC+LDO für STBY_XOSC-, FS-, RX- und TX -Modi verwendet wird.
Erläuterung für die LDO- und DCDC -Auswahl finden Sie hier.
RA-01S / RA-01SH Verwenden Sie nur LDO in allen Modi.
RF-Switching
Verwenden Sie im Allgemeinen DIO2, um den RF-Switch zu wechseln.
Einige Tranceiver verwenden jedoch ein externes GPIO, um den RF-Switch zu wechseln.
RA-01S / RA-01SH Verwenden Sie den integrierten SC70-6-Lastschalter, um zwischen RFO und RFI zu wechseln.
RA-01S / RA-01SH Verwenden Sie DIO2, um dies zu kontrollieren.
DIO2 = 1, Strg = 0, RFC zum RF1 TX -Modus.
DIO2 = 0, Strg = 1, RFC bis R21 RX -Modus.
Sie müssen sich das Schema ansehen, um diese Optionen richtig festzulegen, aber es ist sehr esoterisch.
Die Standardeinstellungen für diese Bibliothek sind RA-01S / RA-01SH.
Wenn Sie andere als RA-01S / RA-01SH verwenden, müssen Sie sie angemessen einstellen.
Ich habe diese Bibliothek basierend darauf erstellt.
Mit dieser Bibliothek funktioniert RA-01S / RA-01SH nicht.
RA-01SC verwendet LLCC68.
RA-01SC ist mit RA-01s kompatibel.
Es gibt jedoch die folgenden Einschränkungen:

Ra-01s
https://docs.ai-tinker.com/_media/lora/docs/ra-01s_specification.pdf
Ra-01sh
https://docs.ai-tinker.com/_media/lora/docs/ra-01sh_specification.pdf
RA-01SC (Chinesisch)
https://img.iceasy.com/product/product/files/202108/8a8a8a1a7aec7b55017b2ef70a370953.pdf
RA-0x (SMD16) hat das gleiche Fußmuster wie ESP12.
Daher kann ein Pitch -Conversion -PCB für ESP12 verwendet werden.


Laden Sie dieses Repo als Reißverschluss herunter. Gehen Sie dann in der Arduino-IDE zu Sketch-> Bibliothek addieren Sie .ZIP-Bibliothek.
| Ra-01s/sh | Uno | Mega | ESP8266 | |
|---|---|---|---|---|
| VCC | - | 3,3 V (*1) | 3.3 V | 3.3 V |
| GND | - | GND | GND | GND |
| Sck | - | D13 (*2) | D52 (*2) | Io14 |
| Miso | - | D12 | D50 | Io12 |
| Mosi | - | D11 (*2) | D51 (*2) | Io13 |
| NSS | - | D5 (*2) | D5 (*2) | Io2 |
| RST | - | D6 (*2) | D6 (*2) | Io0 |
| BESCHÄFTIGT | - | D7 (*2) | D7 (*2) | Io16 |
| Txen | - | N/c | N/c | N/c |
| Rxen | - | N/c | N/c | N/c |
(*1)
Die 3,3 -V -Ausgabe von UNO kann nur 50 mA liefern.
Darüber hinaus ist die Ausgangsstromkapazität von UNO-kompatiblen Geräten kleiner als die von offiziellen Produkten.
Daher funktioniert dieses Modul möglicherweise nicht normal, wenn es aus dem Onboard 3v3 geliefert wird.
(*2)
SX126X ist nicht 5 -V -tolerant.
Sie benötigen eine Levelverschiebung von 5 V auf 3,3 V.
Ich habe dies für eine Ebeneschicht verwendet.
EBYTE bietet mehrere Lora -Module an.
Sie können diese auf Aliexpress und eBay bekommen.
| Modell | Schnittstelle | Chip | Frequenz | Leistung | Fußpatten | Ipex-altena | Lora-Wan |
|---|---|---|---|---|---|---|---|
| E22-400m22s | Spi | SX1268 | 433/470MHz | 160 mw | Standard | Ja | NEIN |
| E22-400m30s | Spi | SX1268 | 433/470MHz | 1000 mw | Standard | Ja | NEIN |
| E22-400 mm22s | Spi | SX1268 | 433/470MHz | 160 mw | Klein | NEIN | NEIN |
| E22-900m22s | Spi | SX1262 | 868/915MHz | 160 mw | Standard | Ja | NEIN |
| E22-900m30s | Spi | SX1262 | 868/915MHz | 1000 mw | Standard | Ja | NEIN |
| E22-900 mm22s | Spi | SX1262 | 868/915MHz | 160 mw | Klein | NEIN | NEIN |


Mit dieser Änderung funktioniert es.
/*
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
Es sind zwei weitere Drähte erforderlich.
| EBYTE | Uno | Mega | ESP8266 | |
|---|---|---|---|---|
| Txen | - | 8 (*3) | 8 (*3) | D4 |
| Rxen | - | 9 (*3) | 9 (*3) | D5 |
(*3)
SX126X ist nicht 5 -V -tolerant.
Sie benötigen eine Levelverschiebung von 5 V auf 3,3 V.
Die Pitch Conversion Base ist hier.
SX1262 und LLCC68 sind kompatibel, aber aus irgendeinem Grund arbeiten sie nicht.
| Modell | Schnittstelle | Chip | Frequenz | Leistung | Fußpatten | Ipex-altena | Lora-Wan |
|---|---|---|---|---|---|---|---|
| E220-400m22s | Spi | LLCC68 | 433/470MHz | 160 mw | Standard | Ja | NEIN |
| E220-400m30s | Spi | LLCC68 | 433/470MHz | 1000 mw | Standard | Ja | NEIN |
| E220-900m22s | Spi | LLCC68 | 868/915MHz | 160 mw | Standard | Ja | NEIN |
| E220-900m30s | Spi | LLCC68 | 868/915MHz | 1000 mw | Standard | Ja | NEIN |
Diese Bibliothek kann mit Radiolib kommunizieren.
Radiolib erfordern, dass DIO1 angeschlossen ist, um die Arbeiten zu erhalten.
// 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);
Dies wird hilfreich sein.
$ 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