LoRa چیست — فناوری امواج رادیویی برد بلند
LoRa (Long Range) یک مدولاسیون رادیویی است که توسط Semtech توسعه یافته. در باند Sub-GHz (۴۳۳، ۸۶۸ یا ۹۱۵ MHz) کار میکند و با توان ۱۰۰mW برد ۲–۱۵km در فضای باز دارد. رمز موفقیتش تکنیک CSS (Chirp Spread Spectrum) است که سیگنال را در طیف پخش میکند — مقاوم در برابر نویز، تداخل و محو چند مسیری.
SX1278 تراشه LoRa ساخت Semtech است. ماژول Ra-02 (EBYTE یا Ai-Thinker) آن را با آنتن پیزو و کانکتور SMA ارائه میدهد. با آردوینو از طریق SPI ارتباط برقرار میکند.
پارامترهای کلیدی: SF (Spreading Factor) ۷–۱۲: بالاتر = برد بیشتر، سرعت کمتر. BW (Bandwidth) ۱۲۵/۲۵۰/۵۰۰kHz: بالاتر = سرعت بیشتر، برد کمتر. CR (Coding Rate) 4/5 تا 4/8: بالاتر = مقاومت بیشتر.
مقایسه تنظیمات LoRa برای UGV
| SF | BW | برد | تأخیر | کاربرد |
|---|---|---|---|---|
| SF7 | 125kHz | ~۲km | ~۵۰ms | کنترل RT UGV |
| SF9 | 125kHz | ~۵km | ~۲۰۰ms | تلهمتری GPS |
| SF12 | 125kHz | ~۱۵km | ~۲s | دیتای حسگر کند |
اتصال Ra-02 به Arduino
| Ra-02 | Arduino Uno | نکته |
|---|---|---|
| VCC | 3.3V | هرگز 5V ندهید |
| SCK/MOSI/MISO | D13/D11/D12 | SPI Hardware |
| NSS | D10 | Chip Select |
| RST | D9 | Reset |
| DIO0 | D2 | Interrupt (TX done / RX ready) |
کد ارتباط دوطرفه
#include <SPI.h>
#include <LoRa.h>
bool isTX = true; // true = فرستنده، false = گیرنده
int counter = 0;
void setup(){
Serial.begin(115200);
if(!LoRa.begin(433E6)){
Serial.println("LoRa init failed!"); while(1);
}
LoRa.setSpreadingFactor(7);
LoRa.setSignalBandwidth(125E3);
LoRa.setCodingRate4(5);
LoRa.setTxPower(17); // 17 dBm = ~50mW
Serial.println("LoRa OK");
}
void loop(){
if(isTX){
LoRa.beginPacket();
LoRa.print("CMD:"); LoRa.print(counter++);
LoRa.endPacket();
Serial.print("Sent #"); Serial.println(counter);
delay(500);
} else {
int pkt = LoRa.parsePacket();
if(pkt){
String recv = "";
while(LoRa.available()) recv += (char)LoRa.read();
int rssi = LoRa.packetRssi();
float snr = LoRa.packetSnr();
Serial.print("Recv: "); Serial.print(recv);
Serial.print(" RSSI:"); Serial.print(rssi);
Serial.print("dBm SNR:"); Serial.println(snr);
}
}
}