これは、Radio TransceiverチップSX1262およびSX1268を使用したLORA通信用のArduinoライブラリです。

AI-ThinkerはいくつかのLORAモジュールを提供しています。
これらをAliexpressとeBayで入手できます。
| モデル | タイプ | インターフェイス/コア | チップ | 頻度 | フットパターン | IPEX-Antena | ロラ・ワン |
|---|---|---|---|---|---|---|---|
| RA-01 | トランシーバー | spi | SX1278 | 410-525MHz | SMD16 | いいえ | いいえ |
| RA-02 | トランシーバー | spi | SX1278 | 410-525MHz | SMD16 | はい | いいえ |
| RA-01H | トランシーバー | spi | SX1276 | 803-930MHz | SMD16 | いいえ | いいえ |
| RA-01S | トランシーバー | spi | SX1268 | 410-525MHz | SMD16 | いいえ | いいえ |
| RA-01SH | トランシーバー | spi | SX1262 | 803-930MHz | SMD16 | はい | いいえ |
| RA-01SC | トランシーバー | 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には2つの電源モードがあります。
1つは、すべてのモードで使用されるLDOのみが使用されることです。
もう1つは、STBY_XOSC、FS、RX、およびTXモードに使用されるDC_DC+LDOです。
LDOおよびDCDC選択の説明はこちらです。
RA-01S / RA-01SHは、すべてのモードでLDOのみを使用します。
RFスイッチング
一般に、DIO2を使用してRFスイッチを切り替えます。
ただし、一部のトランシーバーは外部GPIOを使用してRFスイッチを切り替えます。
RA-01S / RA-01SH SC70-6統合負荷スイッチを使用して、RFOとRFIを切り替えます。
RA-01S / RA-01SHを使用してこれを制御します。
dio2 = 1、ctrl = 0、rfcからrf1 txモード。
dio2 = 0、ctrl = 1、RFCからR21 RXモード。
これらのオプションを適切に設定するには、回路図を調べる必要がありますが、非常に難解です。
このライブラリのデフォルト設定は、RA-01S / RA-01SH用です。
RA-01S / RA-01SH以外を使用する場合、適切に設定する必要があります。
これに基づいてこのライブラリを作成しました。
このライブラリでは、RA-01S / RA-01SHが機能しません。
RA-01SCはLLCC68を使用します。
RA-01SCはRA-01と互換性があります。
ただし、次の制限があります。

RA-01S
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/8a8a8a1a7aec7b55017b2ef70a370953.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 |
| 味噌 | - | D12 | D50 | IO12 |
| モシ | - | D11(*2) | D51(*2) | IO13 |
| NSS | - | D5(*2) | D5(*2) | IO2 |
| RST | - | 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のみを供給できます。
さらに、UNO互換デバイスの出力電流容量は、公式製品の出力容量よりも小さくなっています。
したがって、このモジュールは、オンボード3V3から供給されたときに正常に機能しない場合があります。
(*2)
SX126Xは5V許容範囲ではありません。
5Vから3.3Vへのレベルシフトが必要です。
これをレベルシフトに使用しました。
EbyteはいくつかのLORAモジュールを提供しています。
これらをAliexpressとeBayで入手できます。
| モデル | インタフェース | チップ | 頻度 | 力 | フットパッテン | IPEX-Antena | ロラ・ワン |
|---|---|---|---|---|---|---|---|
| E22-400M22S | spi | SX1268 | 433/470MHz | 160MW | 標準 | はい | いいえ |
| E22-400M30S | spi | SX1268 | 433/470MHz | 1000MW | 標準 | はい | いいえ |
| E22-400mm22S | spi | SX1268 | 433/470MHz | 160MW | 小さい | いいえ | いいえ |
| E22-900M22S | spi | SX1262 | 868/915MHz | 160MW | 標準 | はい | いいえ |
| E22-900M30S | 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
2つの追加ワイヤが必要です。
| ebyte | uno | メガ | ESP8266 | |
|---|---|---|---|---|
| txen | - | 8(*3) | 8(*3) | D4 |
| rxen | - | 9(*3) | 9(*3) | D5 |
(*3)
SX126Xは5V許容範囲ではありません。
5Vから3.3Vへのレベルシフトが必要です。
ピッチ変換ベースはこちらです。
SX1262とLLCC68は互換性がありますが、何らかの理由で機能しません。
| モデル | インタフェース | チップ | 頻度 | 力 | フットパッテン | IPEX-Antena | ロラ・ワン |
|---|---|---|---|---|---|---|---|
| E220-400M22S | spi | LLCC68 | 433/470MHz | 160MW | 標準 | はい | いいえ |
| E220-400M30S | spi | LLCC68 | 433/470MHz | 1000MW | 標準 | はい | いいえ |
| E220-900M22S | spi | LLCC68 | 868/915MHz | 160MW | 標準 | はい | いいえ |
| E220-900M30S | spi | LLCC68 | 868/915MHz | 1000MW | 標準 | はい | いいえ |
このライブラリは、ラジオリブと通信できます。
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