นี่คือห้องสมุด Arduino สำหรับการสื่อสาร LORA โดยใช้ชิปเครื่องรับส่งสัญญาณวิทยุ SX1262 และ SX1268

Ai-Thinker เสนอโมดูล LORA หลายโมดูล
คุณสามารถรับสิ่งเหล่านี้ได้ใน Aliexpress และ eBay
| แบบอย่าง | พิมพ์ | อินเทอร์เฟซ/คอร์ | ชิป | ความถี่ | รูปทรงเท้า | ipex-antena | Lora-Wan |
|---|---|---|---|---|---|---|---|
| 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 | เลขที่ | ใช่ |
โมดูล LORA ที่มี SX1262/1268 มีหลายตัวเลือก
การใช้ TCXO (oscillator คริสตัลชดเชยอุณหภูมิ)
SX1262/1268 สามารถใช้ TCXO ได้
หากใช้ TCXO พิน XTB จะไม่เชื่อมต่อ
อย่างไรก็ตาม PIN ที่ 6 (DIO3) ของ SX1262/1268 สามารถใช้เพื่อเพิ่มพลังงาน 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-01S / RA-01SH
เมื่อใช้งานอื่นนอกเหนือจาก RA-01S / RA-01SH คุณต้องตั้งค่าให้เหมาะสม
ฉันสร้างห้องสมุดนี้ตามสิ่งนี้
ด้วยห้องสมุดนี้ RA-01S / RA-01SH ไม่ทำงาน
RA-01SC ใช้ LLCC68
RA-01SC เข้ากันได้กับ RA-01S
อย่างไรก็ตามมีข้อ จำกัด ดังต่อไปนี้:

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
ดังนั้นสามารถใช้ PCB การแปลงพิทช์สำหรับ ESP12 ได้


ดาวน์โหลด repo นี้เป็น zip จากนั้นใน Arduino IDE ไปที่ Sketch-> เพิ่ม Library-> Add. Zip Library
| 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 |
| Mosi | - | 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)
เอาต์พุต 3.3V ของ UNO สามารถจัดหาได้ 50mA เท่านั้น
นอกจากนี้ความสามารถในปัจจุบันของเอาต์พุตของอุปกรณ์ที่เข้ากันได้กับ UNO นั้นมีขนาดเล็กกว่าผลิตภัณฑ์อย่างเป็นทางการ
ดังนั้นโมดูลนี้อาจไม่ทำงานตามปกติเมื่อมาจาก On-Board 3V3
(*2)
SX126X ไม่ทน 5V
คุณต้องเปลี่ยนระดับจาก 5V เป็น 3.3V
ฉันใช้สิ่งนี้เพื่อเปลี่ยนระดับ
Ebyte เสนอโมดูล LORA หลายโมดูล
คุณสามารถรับสิ่งเหล่านี้ได้ใน Aliexpress และ eBay
| แบบอย่าง | ส่วนต่อประสาน | ชิป | ความถี่ | พลัง | เท้าเท้า | ipex-antena | Lora-Wan |
|---|---|---|---|---|---|---|---|
| E22-400M22S | SPI | SX1268 | 433/470MHz | 160MW | มาตรฐาน | ใช่ | เลขที่ |
| E22-400m30s | SPI | SX1268 | 433/470MHz | 1,000MW | มาตรฐาน | ใช่ | เลขที่ |
| E22-400mm22s | SPI | SX1268 | 433/470MHz | 160MW | เล็ก | เลขที่ | เลขที่ |
| E22-900M22S | SPI | SX1262 | 868/915MHz | 160MW | มาตรฐาน | ใช่ | เลขที่ |
| E22-900m30s | SPI | SX1262 | 868/915MHz | 1,000MW | มาตรฐาน | ใช่ | เลขที่ |
| 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
คุณต้องเปลี่ยนระดับจาก 5V เป็น 3.3V
ฐานแปลงพิทช์อยู่ที่นี่
SX1262 และ LLCC68 เข้ากันได้ แต่ด้วยเหตุผลบางอย่างที่พวกเขาไม่ทำงาน
| แบบอย่าง | ส่วนต่อประสาน | ชิป | ความถี่ | พลัง | เท้าเท้า | ipex-antena | Lora-Wan |
|---|---|---|---|---|---|---|---|
| E220-400M22S | SPI | LLCC68 | 433/470MHz | 160MW | มาตรฐาน | ใช่ | เลขที่ |
| E220-400m30s | SPI | LLCC68 | 433/470MHz | 1,000MW | มาตรฐาน | ใช่ | เลขที่ |
| E220-900M22S | SPI | LLCC68 | 868/915MHz | 160MW | มาตรฐาน | ใช่ | เลขที่ |
| E220-900m30s | SPI | LLCC68 | 868/915MHz | 1,000MW | มาตรฐาน | ใช่ | เลขที่ |
ห้องสมุดนี้สามารถสื่อสารกับ 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