
Prispevki
Kaj je LoRa in LoRaWAN? Vodnik za makers z Arduinom in ESP32

Kaj je LoRa in LoRaWAN? Vodnik za makers z Arduinom in ESP32
Uvod
LoRa je modulacijska tehnologija za brezžično komunikacijo na dolge razdalje. LoRaWAN je omrežni protokol, ki deluje nad njo. Skupaj tvorita ekosistem, ki omogoča pošiljanje podatkov iz senzorjev, GPS sledilnikov ali vremenskih postaj do kilometre oddaljenih sprejemnikov — pri porabi energije, ki baterijo 18650 ohranja živo mesece ali celo leta.
V tem vodiču razložimo, kako LoRa in LoRaWAN delujeta od fizičnega sloja do oblaka, kateri moduli so primerni za Arduino in ESP32, kdaj je LoRa boljša izbira od WiFi, Bluetooth ali 433 MHz radijskega modula, in kako nastaviti napravo na slovensko LoRaWAN omrežje. Opisali bomo tudi konkreten projekt — oddaljeno vremensko postajo — in napake, ki se jih makers najpogosteje dopustijo pri prvih LoRa projektih.
LoRaWAN ni le IoT moda. Za scenarije, kjer WiFi ne doseže in kjer baterija mora zdeti mesece, je LoRaWAN tehnično ustrezna rešitev, ki jo podpira globalno prostovoljno omrežje The Things Network z gatewayi v večini slovenskih mest.
Kaj je LoRa?
LoRa (Long Range) je lastniška modulacijska tehnika podjetja Semtech, ki je bila javno objavljena leta 2012. Temelji na metodi CSS (Chirp Spread Spectrum), ki za prenos informacije uporablja signal z linearno spreminjajoce se frekvence — t. i. chirp. Frekvenca se med enim simbolom enakomerno dviguje ali spušča čez celotno pasovno širino. Sprejemnik prepozna chirp s korelatorjem, ki je odporen na Dopplerjev premik in šum ozadja.
Ta pristop omogoča sprejemniku prepoznati signal tudi pri razmerju signal/šum pod –20 dB, kar je 20 dB boljše od tipičnega FSK sprejemnika. Praktično to pomeni: LoRa signal prebije motnje, meje in zidove, ki bi ugonobile klasičen 433 MHz radijski prenos.
LoRa deluje na nelicenčnih frekvenčnih pasovih. V Evropi je to 868 MHz, v Severni Ameriki 915 MHz, v Aziji pa 433 MHz ali 923 MHz. Za Slovenijo in EU je torej relevantno frekvenčno področje 863–870 MHz.
Trije ključni parametri LoRa prenosa, ki jih nastavljate v kodi:
- Spreading Factor (SF) — od SF7 (hiter prenos, krajši doseg) do SF12 (počasnejši, daljši doseg). Vsak korak navzgor podvoji čas prenosa in poveča doseg za ~40 %. SF7 je primeren za mestna omrežja z gosto pokritostjo; SF12 za oddaljene naprave brez vmesnih gatewayev. LoRaWAN omrežje z ADR (Adaptive Data Rate) samodejno prilagaja SF glede na kakovost signala.
- Bandwidth (BW) — tipično 125 kHz, 250 kHz ali 500 kHz. Ožji pas omogoča večji doseg pri enaki moči oddajnika, a zmanjša hitrost prenosa. Večina LoRaWAN omrežij uporablja BW = 125 kHz.
- Coding Rate (CR) — odporna koda proti napakam od 4/5 do 4/8. Višja vrednost pomeni več redundance in boljše odkrivanje napak, a nijžjo učinkovitost prenosa. CR 4/5 zadostuje za večino primerov.
Sam LoRa ne definira omrežnega protokola — določa le fiziko prenosa. Za koordinacijo naprav, gatewayev in strežnikov ter za varno dostavo podatkov je zadolžen LoRaWAN.

Primerjava spreading faktorjev SF7–SF12: hitrost in doseg
Kaj je LoRaWAN?
LoRaWAN je odprt omrežni protokol, ki ga upravlja LoRa Alliance — konzorcij več kot 500 podjetij, med njimi Semtech, Cisco, IBM in Actility. Protokol določa, kako naprave komunicirajo s pristopnimi točkami (gateways), kako omrežni strežnik upravlja seanse, naslove in kriptografske ključe, ter kako se podatki usmerjajo do aplikacij.
Razlika med LoRa in LoRaWAN je takole: LoRa je radijska modulacija (fizični sloj), LoRaWAN pa je protokolni sklad nad njo (MAC in aplikacijski sloj). Podobno kot je razlika med WiFi radijskim čipom in TCP/IP protokolom.
Arhitektura LoRaWAN omrežja je zvezdičasta: naprave (end-devices) sočasno slišijo več gatewayev, ki vse prejete pakete posredujejo omrežnemu strežniku (Network Server). Ta podvajanje odpravi, preverja celovitost in posreduje podatke aplikacijskemu strežniku. Rezultat je, da premikanje naprave med gatewayji ne zahteva roaminga ali prepriklopa.
LoRaWAN naprave se v omrežje aktivirajo na dva načina:
- OTAA (Over-the-Air Activation) — naprava se ob prvem vklopu poveže z omrežjem in izmenja edinstvene seje ključe (AppSKey, NwkSKey). Priporočena metoda za produkcijsko rabo, ker vsaka seja dobi svež šifrirni ključ AES-128. Potrebujete app_eui, dev_eui in app_key.
- ABP (Activation by Personalisation) — ključi so vnaprej vgrajeni v napravo in omrežni strežnik. Enostavnejše za testiranje, a manj varno, ker se isti ključi ne obnavljajo med sejami in naprava ne izvaja Join procedure.
Naprave v LoRaWAN omrežju razvrščamo v tri razrede delovanja:
- Razred A — napravi odpre dve kratki sprejemni okni takoj po vsakem oddajanju (RX1 po 1 sekundi, RX2 po 2 sekundah). Najnižja poraba energije in osnova za baterijske senzorje. To je privzeti razred za večino maker projektov z LoRaWAN.
- Razred B — doda periodična sprejemna okna, sinhronizirana z GPS beaconom iz gatewayev. Kompromis med latenco in porabo, primeren za naprave, ki morajo sprejemati ukaze z nizko latenco.
- Razred C — sprejemnik je vedno odprt, razen med oddajanjem. Visoka poraba, primerno za naprave s stalnim napajanjem, kjer je takojšnje ukazèvanje ključno (npr. pametne vtičnice, aktuatorji).
LoRaWAN podatkovni paket je majhen: navzgor (uplink) do 242 bajtov pri SF7/BW500, pri SF12/BW125 pa le ~11 bajtov. Za senzorske podatke (temperatura in vlaga = 4 bajti, GPS = 9 bajtov) je to več kot dovolj.

LoRaWAN razredi A, B in C: sprejemna okna in poraba energije
Doseg in frekvenčno področje LoRa modulov
Doseg LoRa modula je odvisen od okolja, antene, razširitvenega faktorja (SF) in moči oddajnika. Tipični dosegi v praksi:
- Odprti teren: 5–16 km z ustrezno anteno in SF12; rekordne P2P razdalje pri optimiziranih pogojih presegajo 700 km, a to zahteva visoke antene in nizke SF
- Mestno okolje: 1–3 km
- Znotraj objektov: 200–800 m, odvisno od debeline in materiala zidov
- Kleti in podzemni objekti: 50–200 m, odvisno od števila betona
Za Slovenijo in EU velja frekvenca 868 MHz z dovoljeno efektivno izžarjeno močjo (EIRP) do 25 mW (14 dBm) za splošno rabo, oziroma do 500 mW (27 dBm) ob spoštovanju duty cycle omejitve pod 1 %. Večina LoRa modulov za makers (SX1276, SX1278, SX1262) privzeto oddaja pri 14–20 dBm.
Duty cycle omejitev v EU pomeni, da naprava ne sme oddajati več kot 1 % časa na uro — torej 36 sekund na uro. Za tipičen senzor, ki pošilja meritev vsakih 10 minut, to ni ovira: ena meritev traja pri SF7 in 125 kHz pasovni širini manj kot 100 ms. Pri SF12 je paket daljši (~2 sekundi), a še vedno dosti znotraj omejitve pri sporočilih vsakih 10 minut.
Antena bistveno vpliva na dejanski doseg. Priložena kratka „duck“ antena dosega ~2 dBi ojačanja. Navpična half-wave dipol antena za fiksno namestitev doda 3–5 dBi, Yagi antena za usmerjen prenos pa 8–12 dBi. Za mobilne baterijske naprave zadostuje enostavna žičena monopol antena dolžine ~8,6 cm (četrt valovne dolžine pri 868 MHz) z ustreznim zemeljskim ravninom.

LoRaWAN doseže 16 km, WiFi 150 m, Bluetooth 400 m, 433 MHz 2 km
Primerjava LoRa čipov in modulov
Na trgu je več LoRa čipov in modulov z različnimi lastnostmi. Tukaj so tisti, ki jih makers srečujemo najpogosteje:
| Modul / čip | Frekvenca | Vmesnik | Občutljivost | Maks. moč | Opomba |
|---|---|---|---|---|---|
| SX1276 | 137–525 + 862–915 MHz | SPI | −148 dBm | +20 dBm | Klasična izbira, dobra podpora knjižnic |
| SX1278 | 137–525 MHz | SPI | −148 dBm | +20 dBm | Samo 433 MHz; ni za EU IoT pas |
| SX1262 | 150–960 MHz | SPI | −148 dBm | +22 dBm | Novejši, nižja poraba, priporočen za nove projekte |
| SX1268 | 410–810 MHz | SPI | −148 dBm | +22 dBm | Azijska frekvenčna področja |
| RYLR998 | 868/915 MHz | UART (AT) | −148 dBm | +22 dBm | AT ukazi, SX1262 znotraj; najlažje za začetnika |
| LILYGO TTGO LoRa32 | 868 MHz (V1.6) | SPI (interni) | −148 dBm | +20 dBm | ESP32 + SX1276 + OLED + baterija v enem |
Kateri modul izbrati?
- Začetnik, ki hoče čim prej delujoco LoRa zvezo: RYLR998. Komunicira prek UART z AT ukazi („AT+SEND=0,4,TEST“) in ne zahteva SPI, knjižnice ali inicializacije. Povežite ga na katerikoli UART na Arduinu ali ESP32.
- Arduino projekt z LoRaWAN: SX1276 modul RA-02 (433 MHz) ali SX1276 modul pri 868 MHz. Priporocam SX1276 pri 868 MHz za EU; SX1278/RA-02 je pogosta in cenena izbira, a je na napačni frekvenci za LoRaWAN v Evropi.
- Novi projekti, kjer je poraba ključna: SX1262. Porabi manj v stanju spanja in ima večji izhodni doseg (+22 dBm vs +20 dBm pri SX1276).
- Celoten ESP32 + LoRa projekt brez letanja: LILYGO TTGO LoRa32 V1.6.

LoRa čipi SX1276, SX1278, SX1262 in RYLR998: kdaj izbrati katerega
LoRa proti WiFi, Bluetooth in 433 MHz
Pri IoT projektih izbiramo med štirimi brezžičnimi tehnologijami. Tukaj so ključne razlike:
| Lastnost | LoRa 868 MHz | WiFi 2.4 GHz | Bluetooth 5.0 | 433 MHz (OOK/FSK) |
|---|---|---|---|---|
| Doseg | 1–16 km | 50–150 m | 10–400 m | 200 m – 2 km |
| Poraba med oddajanjem | 40–120 mA | 150–250 mA | 10–30 mA | 10–50 mA |
| Poraba v spanju | 1–2 µA | 15–20 mA (idle) | 0.5–2 µA | 1–5 µA |
| Hitrost prenosa | 0.3–50 kbit/s | 10–600 Mbit/s | 1–3 Mbit/s | 1–10 kbit/s |
| Prodiranje skozi zidove | Odlično | Slabo | Slabo | Dobro |
| Potrebna infrastruktura | LoRaWAN gateway | WiFi usmerjevalnik | BLE hub | Lasten sprejemnik |
| Cena modula | 3–10 € | Vgrajen v ESP32 | Vgrajen v ESP32 | 1–3 € |
LoRa je prava izbira, ko je naprava na bateriji, lokacija je izven dosega WiFi in podatkov ni veliko (temperatura, vlaga, GPS koordinate, stanje stikala). WiFi je boljši za prenos slik, videa ali večjih datotek. Bluetooth pokrije kratke razdalje in komunikacijo s pametnimi telefoni. 433 MHz je poceni in enostavna alternativa brez potrebe po omrežni infrastrukturi, a nima standardiziranega protokola in je bolj občutljiva na motnje.
LoRaWAN omrežje v Sloveniji
LoRaWAN deluje v dveh načinih: prek lastnega gateways ali prek javnega omrežja. Za Slovenijo je relevantno omrežje The Things Network (TTN) — brezplačno, prostovoljno vzdrževano LoRaWAN omrežje z globalnim dosegom. Naprava, ki se poveže prek TTN, ima dostop do TTN oblaka in API-jev brez lastnega strežnika.
Pokritost LoRaWAN omrežja v Sloveniji se preverja na lorawan.si. Gatewayi so postavljeni predvsem v večjih mestih — Ljubljana, Maribor, Kranj, Celje, Koper — podeželska pokritost pa je redkejša. Preverite pokritost za svojo lokacijo, preden se odločite med javnim omrežjem in lastnim gatewayem.
Kadar javno omrežje ne pokriva vaše lokacije, sta dve rešitve:
- Lasten LoRaWAN gateway — namenski gateway (npr. RAK7244, Dragino LPS8N), registriran na TTN. Multi-channel gateway pokriva vse LoRaWAN kanale po frekvenčnem planu EU863-870 in podpira sočasno komunikacijo z več napravami na različnih SF. Cena: 100–200 €.
- Peer-to-peer LoRa komunikacija — direktna izmenjava paketov med dvema moduloma brez LoRaWAN protokola. Najenostavnejši način za začetek in testiranje dosega, nič infrastrukture ni potrebne.

Praktičen primer: oddaljena vremenska postaja z LoRaWAN in TTN
Registracija naprave na The Things Network
Preden bo vaša LoRaWAN naprava dejansko komunicirala prek TTN, morate opraviti tri korake: ustvariti TTN račun, registrirati aplikacijo in registrirati napravo.
1. Ustvarite aplikacijo na TTN konzoli (console.thethingsnetwork.org): v razdelku Applications kliknite „Create application“. Aplikacija je kontejner za vaše naprave in podatke. Izberite TTN strežnik za Evropo (eu1.cloud.thethings.network).
2. Registrirajte napravo: znotraj aplikacije kliknite „Add end device“. Izberite „Manually“ (za maker module, ki niso v TTN katalogu). Nastavite:
- LoRaWAN version: 1.0.3 ali 1.0.4 (ustrezno vaši knjižnici)
- Frekvenčni plan: Europe 863-870 MHz (SF9 for RX2)
- DevEUI: unikaten 8-bajtni ID naprave (generirajte ga na TTN ali preberite iz modula)
- AppEUI (JoinEUI): možete pustiti same nule za zasebne projekte
- AppKey: 16-bajtni AES ključ za OTAA aktivacijo (generirajte naključno)
3. Nastavite payload decoder: TTN na privzeto pošilja surove bajte. Za čitljive vrednosti dodajte JavaScript dekoder v razdelku Payload formatters. Primer za temperaturo in vlago:
function decodeUplink(input) {
var temp = ((input.bytes[0] << 8) | input.bytes[1]) / 100.0;
var hum = ((input.bytes[2] << 8) | input.bytes[3]) / 100.0;
return {
data: { temperature: temp, humidity: hum },
warnings: [], errors: []
};
}
Po registraciji dobite tri ključe, ki jih vnesete v firmware naprave: AppEUI, DevEUI in AppKey. Ob prvič vklopu naprava pošlje Join Request, gateway ga posreduje TTN, ki vrne Join Accept s svežimi sejnimi ključi. Naprava je odtlej aktivna in vsak uplink se pojavi v TTN konzoli pod zavihkom Live data.
LoRa z Arduinom — kateri moduli in kako začeti
Najpopularnejša LoRa čipa za Arduino projekte sta SX1276 (868/915 MHz) in SX1278 (433 MHz). Za Slovenijo in EU je pravilen čip SX1276 ali novejši SX1262 pri 868 MHz. SX1278 pri 433 MHz sicer deluje, a ni v frekvenčnem oknu EU IoT pasa in je manj primeren za LoRaWAN. Ustrezne LoRa komunikacijske module za Arduino najdete v naši ponudbi.
Priključitev SX1276 modula na Arduino Uno ali Nano poteka prek SPI vmesnika. SPI pri Arduinu ni odvisen od napajalne napetosti modula, a pazite: SX1276 dela pri 3.3V — signalni pini niso 5V tolerantni. Pri Arduino Uno (5V logika) priporocam bodisi 3.3V Arduino Pro Mini bodisi enočnostaven delilnik napetosti (10kΩ + 20kΩ) na SCK, MOSI, NSS in RST linijah.
Standardna vezava SX1276 na Arduino Uno:
- NSS (Chip Select) → pin D10
- SCK → pin D13
- MOSI → pin D11
- MISO → pin D12 (3.3V signal, Arduino prebere brez težav)
- RESET → pin D9
- DIO0 → pin D2 (interrupt)
- VCC → 3.3V (ne 5V)
- GND → GND
Za programiranje sta priljubljeni dve knjižnici. RadioHead (razred RH_RF95) je enostavna za točka-do-točka LoRa komunikacijo med dvema moduloma brez LoRaWAN protokola — idealna za prve eksperimente in za zasebne projekte brez TTN. RadioLib je boljša izbira za nove projekte: aktivno vzdrževana, podpira SX1276, SX1278, SX1262 ter polni LoRaWAN protokol z OTAA in ABP v enotnem API-ju.
Primer P2P oddajnika z RadioHead (pošiljanje temperature prek LoRa brez LoRaWAN):
#include <SPI.h>
#include <RH_RF95.h>
RH_RF95 rf95(10, 2); // CS=10, DIO0=2
void setup() {
rf95.init();
rf95.setFrequency(868.0);
rf95.setTxPower(17, false);
rf95.setModemConfig(RH_RF95::Bw125Cr45Sf128); // BW=125kHz, CR=4/5, SF=7
}
void loop() {
float temp = 22.5; // v praksi preberi iz senzorja
char msg[20];
snprintf(msg, sizeof(msg), "T=%.1f", temp);
rf95.send((uint8_t*)msg, strlen(msg));
rf95.waitPacketSent();
delay(60000);
}
SPI komunikacijo in ostale protokole, ki se pojavljajo pri LoRa projektih, podrobneje razlagamo v prispevku o komunikacijskih protokolih UART, SPI, I2C in CAN.
LoRa z ESP32 — LILYGO TTGO in SX1276 modul
Za ESP32 projekte z LoRaWAN sta dve poti: LILYGO TTGO LoRa32 razvojna plošča (ESP32 in SX1276 čip integrirani skupaj z OLED zaslonom) ali kombinacija navadnega ESP32 in zunanjega SX1276 oziroma SX1262 modula.
LILYGO TTGO LoRa32 je najpraktičnejša izbira za začetek. V modulu 52×28 mm združuje ESP32 dual-core procesor, SX1276 LoRa čip, OLED zaslon 128×64 in polnjenje baterije 18650 prek USB. Plošča deluje v Arduino IDE in je neposredno podprta z RadioLib. Razlikujte med različicami: V1.6 ima SX1276 za 868 MHz (EU), starejše V1 in V2 plošče so morda opremljene s 433 MHz čipom. LILYGO TTGO LoRa module za 868 MHz najdete v naši ponudbi skupaj z anteno.
Standardna vezava zunanjega SX1276 na navaden ESP32 DevKit:
- NSS → GPIO5
- SCK → GPIO18
- MOSI → GPIO23
- MISO → GPIO19
- RST → GPIO14
- DIO0 → GPIO26
- VCC → 3.3V
- GND → GND
ESP32 deluje pri 3.3V logiki, tako da level shifter ni potreben. Pazite na tok: SX1276 med oddajanjem potegne do 120 mA. To je znotraj zmogljivosti 3.3V regulatorja večine ESP32 DevKit plošč (tipično 300–500 mA), a preverite specifikacijo svoje plošče.
Primer inicializacije z RadioLib na TTGO LoRa32 V1.6 in pošiljanje prek LoRaWAN (OTAA):
#include <RadioLib.h>
SX1276 radio = new Module(18, 26, 23, 33);
// CS=18, DIO0=26, RST=23, DIO1=33
// TTN ključi (OTAA)
uint8_t joinEUI[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
uint8_t devEUI[] = { 0x70,0xB3,0xD5,0x7E,0xD0,0x06,0x00,0x01 }; // vaš DevEUI
uint8_t appKey[] = { 0x2B,0x7E,0x15,0x16,0x28,0xAE,0xD2,0xA6,
0xAB,0xF7,0x15,0x88,0x09,0xCF,0x4F,0x3C };
LoRaWANNode node(&radio, &EU868, 0);
void setup() {
Serial.begin(115200);
radio.begin(868.0, 125.0, 9, 7, 0x34, 14);
node.beginOTAA(joinEUI, devEUI, nullptr, appKey);
node.activateOTAA();
}
void loop() {
uint8_t payload[] = { 0x08,0xFC, 0x13,0x88 }; // 22.84 C, 50.00 %
node.sendReceive(payload, sizeof(payload), 1);
delay(300000); // vsakih 5 minut
}
Več o ESP32 in njegovih zmogljivostih najdete v celovitem vodniku po ESP32. Za primerjavo z Arduino Uno pri izbiri platforme za LoRa projekt glejte primerjavo ESP32 in Arduino Uno.
Praktični projekt: oddaljena vremenska postaja
Oddaljena vremenska postaja je klasičen LoRaWAN projekt: senzor meri temperaturo in vlago, podatke pošlje prek LoRa, gateway jih posreduje TTN, od tam pa aplikacija podatke prikaže ali shrani. Tukaj je shema za začetek z Arduinom Nano in SX1276 modulom.
Komponente:
- Arduino Nano 3.3V (ali Pro Mini 3.3V za nižjo porabo)
- SX1276 LoRa modul (868 MHz)
- DHT22 senzor temperature in vlage
- Baterija 3.7V LiPo 2000 mAh ali 4× AA baterije
- TP4056 polnilnik (za LiPo)
Principi porabe in avtonomija: Arduino Nano v aktivnem stanju porabi ~15 mA, v globalnem spancu (power-down) ~1 µA. DHT22 porabi med meritvijo ~1.5 mA, v mirovanju pa <50 µA. SX1276 med LoRa oddajanjem potegne ~40 mA (pri 14 dBm), v stanju spanja pa <2 µA. Pri meritvah vsakih 10 minut in trajanju budnega stanja ~500 ms je povprečna poraba sistema ~25 µA. Baterija 2000 mAh teoretično zdrži ~80.000 ur — v praksi od 1 do 2 leti ob upoštevanju samoizpraznitve baterije in temperaturnih vplivov.
Bistveni del kode (RadioLib + OTAA):
#include <RadioLib.h>
#include <DHT.h>
DHT dht(4, DHT22); // DHT22 na pinu D4
SX1276 radio = new Module(10, 2, 9, 3); // SPI pini
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
// Pakiraj v 4 bajte (temperatura*100 in vlaga*100)
uint8_t payload[4];
int16_t tInt = (int16_t)(t * 100);
uint16_t hInt = (uint16_t)(h * 100);
payload[0] = tInt >> 8; payload[1] = tInt & 0xFF;
payload[2] = hInt >> 8; payload[3] = hInt & 0xFF;
node.sendReceive(payload, 4, 1);
// Globoki spanec za 10 minut
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
// (ponovi 75x za ~10 min)
}
Podatke na TTN dekodirate s prikazanim payload dekoderjem iz prejšnega razdelka. Od TTN lahko pošljete podatke v Node-RED, InfluxDB ali katero koli HTTP integracijo. Za preprosto vizualizacijo je brezplačna Ubidots ali Datacake platforma.
Pogoste napake pri LoRa projektih
Tukaj je pet napak, ki jih makers naredijo najpogosteje pri prvih LoRa in LoRaWAN projektih:
1. Napačna frekvenca modula. SX1278 RA-02 (433 MHz) je močno običajna pri kitajskih dobaviteljih in v starter setih. Za LoRaWAN v Evropi potrebujete 868 MHz (SX1276 ali SX1262). Modula, nastavljena na različni frekvenci, se med seboj ne slišita, čeprav sta iz iste serije.
2. Delovanje brez antene. LoRa modul nikoli ne smete vključiti brez priključene antene med oddajanjem. Brez antene se celoten oddajniški signal odbije nazaj v chip in uniči RF ojevačlnik. Napaka je nepopravljiva — čip je trajno poškodovan.
3. 5V na signalnih pinih SX1276. SX1276 dela pri 3.3V in signalni pini niso 5V tolerantni. Direktna priključitev na Arduino Uno (5V SPI) dolgorocno poškoduje čip. Uporabite 3.3V Arduino Pro Mini, ali dodajte delilnik napetosti na SCK, MOSI in NSS linije.
4. Neusklajenost SF, BW ali frekvence med oddajnikom in sprejemnikom. Oddajnik na SF9/BW125/868.1 MHz in sprejemnik na SF7/BW125/868.1 MHz se ne bosta slišala, čeprav sta na enaki frekvenci. Vsi parametri morajo biti identični na obeh straneh. Pri LoRaWAN to protokol uredi samodejno; pri P2P morate sami skrbeti za usklajenost.
5. Prekoračitev duty cycle omejitve. V EU je zakonska meja 1 % delovnega cikla na frekvenčnem pasu. Napačna nastavitev SF ali pogost prenos podatkov (npr. vsako sekundo) hitro preseže mejo. LoRaWAN protokol vključuje duty cycle nadzor, pri P2P pa morate sami skrbeti za zadrževanje med prenosi.
Praktični projekti z LoRaWAN
LoRaWAN se v praksi najpogosteje uporablja za scenarije, kjer klasična WiFi ali Bluetooth komunikacija odpove zaradi razdalje ali visoke porabe energije:
- GPS sledenje živali in objektov — ovratnica za psa ali živino, sledilnik za plovilo ali kolo. GPS koordinate prek LoRaWAN do strežnika, baterija zdrži mesece.
- Vlažnost tal v kmetijstvu — kapacitivni senzorji v vinogradu ali rastlinjaku, ki sprožijo namakanje prek digitalnega izhoda ali obvestilo prek TTN.
- Nadzor infrastrukture — gladina vode v cisterni, stanje zapiral na oddaljenih objektih, poraba električne energije prek CT transformatorja.
- Mestna senzorska omrežja — štetje parkirnih mest, zapolnjenost odpadnih košev, temperatura cestišča za zimsko vzdrževanje.
Za vse te primere velja: malo podatkov na paket (10–50 bajtov zadostuje za večino meritev), razdalja, ki presega WiFi, in dolga avtonomija baterije. Kombinacija ESP32 ali Arduino z LoRa modulom in ustreznimi senzorji in aktuatorji omogoča hitro postavitev takih sistemov.
Napredni koncepti: ADR, RSSI in link budget
Ko imate LoRaWAN vozlišče v produkciji, se soočate s tremi koncepti, ki določajo zanesljivost prenosa na terenu.
ADR (Adaptive Data Rate) je mehanizem LoRaWAN omrežja, ki samodejno prilagaja Spreading Factor in oddajno moč vsake naprave glede na kakovost signala. Naprava prek ACK sporocil omrežja prejema nasvete: „SF je previsok, znižaj na SF8“. Rezultat je krajsi čas prenosa na zraku, manjša poraba in večja zmogljivost omrežja. ADR je smiseln samo za stacionarne naprave; za mobilne (GPS sledilniki) ga izklopite, ker se razmere slušanja hitro spremenijo.
RSSI (Received Signal Strength Indicator) meri moč signala v dBm. Za LoRa tipične vrednosti: −50 dBm je odlično (gateway blizu), −100 dBm je dober signal, −120 dBm je na meji zanesljivosti, pod −130 dBm pa pride do izgube paketov. RSSI je dostopen v RadioLib z radio.getRSSI() po sprejemu paketa.
SNR (Signal-to-Noise Ratio) je pri LoRa bolj zanesljiv pokazatelj kakovosti kot RSSI. LoRa dekodira signal še pri SNR −20 dB za SF12. Vrednosti nad 0 dB so odlične, med −5 in 0 dB dobre, med −10 in −5 dB mejne. RadioLib vrne SNR z radio.getSNR().
Link budget je račun maksimalnega dosega čez izgube. Preprosta formula: Link budget [dBm] = Oddajna moč [dBm] + Ojačanje antene TX [dBi] + Ojačanje antene RX [dBi] − Občutljivost sprejemnika [dBm]. Za SX1276 pri SF12/BW125 in oddajni moči 17 dBm, anteni 2 dBi na obeh straneh in občutljivosti −137 dBm dobimo link budget 158 dBm. To zadostuje za 15+ km na odprtem terenu po modelu prostega prostora (Friis).
Orodja za razhroščevanje:
- TTN Live data — v konzoli v realnem času vidite vsak prihajajoci paket z RSSI, SNR, gateway ID in dekodirano vsebino
- RTLSDR + LoRa dekoder — z <15 € SDR sprejemnikom in čikli Open Source LoRa dekoderjem lahko prislonite na 868 MHz in vidite surove pakete
- CubeCell GPS LoRa tracker — za terenske teste dosega: naprava pošilja paket vsakih 30 sekund, vi hodite in opazujete, ali gateway še sliši
- RadioLib getRSSI() + serial plotter — osnoven in hiter način za mapiranje pokritosti pri P2P testiranju
Za produkcijsko LoRaWAN omrežje je smiselno tudi nastaviti TTN webhook integracijo — vsak prispeli paket TTN pošlje na vaš HTTP endpoint v JSON obliki. Od tam pa podatki potujejo v InfluxDB in Grafana ali katero koli IoT platformo po vaši izbiri.
Pogosta vprašanja o LoRa in LoRaWAN
Ali LoRa in LoRaWAN delujeta brez interneta?
Peer-to-peer LoRa komunikacija med dvema moduloma deluje popolnoma brez interneta — to je le radijska zveza. LoRaWAN omrežje prek The Things Network pa za dostavo podatkov do vaše aplikacije potrebuje gateway s spletno povezavo. Brez interneta P2P LoRa deluje neodvisno; LoRaWAN gateway brez interneta pa je neuporaben.
Kolikšna je poraba LoRa modula v stanju spanja?
Sodobni LoRa čipi (SX1262, SX1276) porabijo v stanju globokega spanca 1–2 µA. Dejanska poraba celotnega sistema je odvisna od mikrokrmilnika: ESP32 v globalnem spancu porabi ~10 µA, ATmega328 (Arduino Nano) pa ~0.1 µA. Za maksimalno avtonomijo baterije je Arduino Pro Mini 3.3V s SX1276 ugodnejša kombinacija od ESP32 z LoRa modulom.
Ali moram imeti lastni LoRaWAN gateway?
Ne, če vaša lokacija že ima pokritost TTN omrežja. Preverite na lorawan.si ali na TTN karti. Če pokritosti ni, je lasten gateway cenovno dostopen: osnoven enokanalni gateway je možno sestaviti z ESP32 in LoRa modulom za ~15 € (ni TTN standard, le za testiranje), medtem ko profesionalni osemkanalni gateway (RAK7244) stane ~100–150 €.
SX1276 ali SX1262 za nove projekte?
SX1262 je novejši čip (2018) z nižjo porabo v stanju spanja in večjim izhodnim dosegom (+22 dBm vs +20 dBm). Knjižnična podpora v RadioLib je enako dobra za oba. Za nove projekte je SX1262 priporočena izbira; za obstoječe projekte in module (TTGO LoRa32 V1.6) ostajate pri SX1276 brez težav.
Ali LoRaWAN šifrira podatke?
Da. LoRaWAN protokol zagotavlja dvojno AES-128 šifriranje: NwkSKey zavaruje MAC sloj, AppSKey pa vsebino aplikacije. Pri OTAA aktivaciji se oba ključa generirajo dinamično ob vsaki novi seansi, kar pomeni, da prisluškovani Join paket ne razkrije vsebine prihodnjih paketov.
Zaključek
LoRa je modulacijska tehnika, LoRaWAN je protokol — skupaj tvorita ekosistem za IoT komunikacijo na dolge razdalje pri minimalni porabi energije. Za Slovenijo je ključna frekvenca 868 MHz, za vključitev v javno omrežje pa The Things Network s slovensko LoRaWAN pokritostjo v večjih mestih.
Za začetek z Arduinom priporočam čip SX1276 pri 868 MHz in knjižnico RadioLib — podpira tako preprosto P2P komunikacijo kot polni LoRaWAN protokol z OTAA. Najlajša vstopna točka brez SPI vezave je modul RYLR998 z UART AT ukazi. Za ESP32 je LILYGO TTGO LoRa32 najhitrejša pot do delujočega LoRaWAN vozlišča: ESP32, SX1276, OLED zaslon in polnjenje baterije v enem kompaktnem modulu.
LoRa in LoRaWAN module za Arduino in ESP32 projekte najdete v naši ponudbi LoRa modulov na 3DSVET.eu.
Potrebujete LoRa modul za projekt?
V trgovini 3DSVET najdete LILYGO TTGO LoRa32 module in LoRa komunikacijske module za Arduino — z dostavo po EU.

