π ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
LoRa (Long Range) Π΅ ΡΠ°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡΠ»Π°ΡΠΈΠΎΠ½Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π°Π»Π΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ.
Π’Ρ Π΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ Meshtastic, IoT ΠΌΡΠ΅ΠΆΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π΄ΠΈΠΎΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ ΠΊΠ°ΡΠΎ Wi-Fi ΠΈΠ»ΠΈ Bluetooth, LoRa ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅:
Chirp Spread Spectrum (CSS)
Π’Π°Π·ΠΈ ΡΠ΅Ρ
Π½ΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΈΠ³Π½Π°Π»ΡΡ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ Π΄ΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΏΠΎΠ΄ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΡΠΌΠ°.
Π’ΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Meshtastic Π²ΡΠ·Π»ΠΈ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ Π½Π° Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΊΠΈΠ»ΠΎΠΌΠ΅ΡΡΠΈ ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅.
π ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ΄Π΅Ρ β βChirpβ ΡΠΈΠ³Π½Π°Π»
ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡΠ΅Π½ ΡΠΈΠ³Π½Π°Π» Π½Π° Π΅Π΄Π½Π° ΡΠ΅ΡΡΠΎΡΠ°, LoRa ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° chirp ΡΠΈΠ³Π½Π°Π».
π Chirp Π΅ ΡΠΈΠ³Π½Π°Π», ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΠ»Π°Π²Π½ΠΎ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π½Π°ΡΠ°Π»ΠΎ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»
| /
| /
| /
| /
| /
| /
| /
| /
| /
+------------------------------------> Π²ΡΠ΅ΠΌΠ΅
Π’ΠΎΠ²Π° ΡΠ΅ Π½Π°ΡΠΈΡΠ°:
π‘ Up-Chirp β ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈ:
π‘ Down-Chirp β ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π°.
πΆ ΠΠ°ΠΊ LoRa ΠΊΠΎΠ΄ΠΈΡΠ° Π΄Π°Π½Π½ΠΈ
LoRa Π½Π΅ ΠΊΠΎΠ΄ΠΈΡΠ° Π±ΠΈΡΠΎΠ²Π΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π°:
1οΈβ£ ΠΠ°Π½Π½ΠΈΡΠ΅ ΡΠ΅ Π³ΡΡΠΏΠΈΡΠ°Ρ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ
2οΈβ£ ΠΡΠ΅ΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ° ΡΡΠ΅Π· ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π½Π° chirp-Π°
Π’ΠΎΠ΅ΡΡ:
Π‘ΠΈΠΌΠ²ΠΎΠ» = ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° chirp
ΠΡΠΈΠΌΠ΅Ρ:
| Π‘ΠΈΠΌΠ²ΠΎΠ» | ΠΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ |
| ------ | ------------------ |
| 0 | Π·Π°ΠΏΠΎΡΠ²Π° Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ |
| 1 | Π»Π΅ΠΊΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Π½ |
| 2 | ΠΎΡΠ΅ ΠΏΠΎ-ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Π½ |
| 3 | ΠΎΡΠ΅ |
ΠΠΈΠ·ΡΠ°Π»Π½ΠΎ:
Π‘ΠΈΠΌΠ²ΠΎΠ» 0
/ / / / / / / /
Π‘ΠΈΠΌΠ²ΠΎΠ» 1
/ / / / / / / /
Π‘ΠΈΠΌΠ²ΠΎΠ» 2
/ / / / / / / /
π§ ΠΠ΅Π½ΠΈΠ°Π»Π½ΠΈΡΡ ΡΡΠΈΠΊ Π½Π° LoRa ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°
ΠΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΡΡ Π½Π΅ ΡΡΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ΡΡΠΎΡΠ°ΡΠ°.
Π’ΠΎΠΉ ΠΏΡΠ°Π²ΠΈ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
1οΈβ£ ΡΠΌΠ½ΠΎΠΆΠ°Π²Π° ΡΠΈΠ³Π½Π°Π»Π° Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ chirp
2οΈβ£ ΠΏΡΠ΅Π²ΡΡΡΠ° ΡΠΈΠ³Π½Π°Π»Π° Π² ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΡΠ΅ΡΡΠΎΡΠ°
3οΈβ£ ΠΏΡΠ°Π²ΠΈ FFT (Fast Fourier Transform)
4οΈβ£ Π½Π°ΠΌΠΈΡΠ° ΠΊΠΎΠΉ ΡΠ΅ΡΡΠΎΡΠ΅Π½ bin ΠΈΠΌΠ° Π΅Π½Π΅ΡΠ³ΠΈΡ
Π’Π°ΠΊΠ° ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ° ΠΊΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½.
ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄
received_signal = antenna_input()
dechirped = received_signal * reference_downchirp
spectrum = FFT(dechirped)
symbol = peak_frequency_bin(spectrum)
π Π’ΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ LoRa ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅.
π‘ Spreading Factor (SF)
ΠΠ΄Π½Π° ΠΎΡ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² LoRa Π΅:
SF β Spreading Factor
SF7
SF8
SF9
SF10
SF11
SF12
Π’ΠΎΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠ»ΡΠ³ Π΅ chirp-Π°.
| SF | Π‘ΠΊΠΎΡΠΎΡΡ | Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ | ΠΠ±Ρ
Π²Π°Ρ |
| ---- | ------- | -------------- | -------- |
| SF7 | Π±ΡΡΠ· | ΠΏΠΎ-Π½ΠΈΡΠΊΠ° | ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ |
| SF12 | Π±Π°Π²Π΅Π½ | ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΠΎΠΊΠ° | ΠΎΠ³ΡΠΎΠΌΠ΅Π½ |
ΠΡΠΈ Meshtastic:
SF11 / SF12
ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π΅Π½ ΠΎΠ±Ρ
Π²Π°Ρ.
π ΠΠ°ΡΠΎ LoRa ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ΄ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΡΠΌΠ°
ΠΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ°Π΄ΠΈΠΎΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ:
SNR > 0 dB
LoRa ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠΈ:
SNR = -20 dB
Π’ΠΎΠ΅ΡΡ ΡΠΈΠ³Π½Π°Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ 20 dB ΠΏΠΎΠ΄ ΡΡΠΌΠ°.
Π’ΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠΎΡΠΎ:
β ΡΠΈΠ³Π½Π°Π»ΡΡ Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ
β ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΡΡ Π·Π½Π°Π΅ ΡΠΎΡΠ½Π°ΡΠ° ΡΠΎΡΠΌΠ° Π½Π° chirp-Π°
β ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΡΠ΅Π»Π°ΡΠΈΡ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅
π‘ Bandwidth (BW)
LoRa ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΠΈΠ½ΠΈ Π½Π° ΠΊΠ°Π½Π°Π»Π°.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ:
125 kHz
250 kHz
500 kHz
ΠΡΠΈ Meshtastic EU Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ:
BW = 125 kHz
ΠΠΎ-ΡΠ΅ΡΠ΅Π½ ΠΊΠ°Π½Π°Π» ΠΎΠ·Π½Π°ΡΠ°Π²Π°:
β ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ
β ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΠΎΠ±Ρ
Π²Π°Ρ
β± ΠΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»
Π€ΠΎΡΠΌΡΠ»Π°ΡΠ°:
Ts = 2^SF / BW
ΠΡΠΈΠΌΠ΅Ρ:
SF = 12
BW = 125000 Hz
Ts = 4096 / 125000
Ts β 32.8 ms
ΠΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΡΠ½Π΅ΠΌΠ° 33 ms.
π‘ ΠΠ°ΡΠΎ Meshtastic ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π΄ΠΎΠ±ΡΠ΅
Meshtastic ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°:
β LoRa modulation
β Forward Error Correction
β Mesh routing
β Π½ΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ
Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ:
π‘ ΠΠ΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π° ΠΌΡΠ΅ΠΆΠ°
ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ:
- Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ
- Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
- Π±Π΅Π· ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
π ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Ρ
Π²Π°Ρ
Π’ΠΈΠΏΠΈΡΠ½ΠΈ ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΡ:
| Π£ΡΠ»ΠΎΠ²ΠΈΡ | Π Π°Π·ΡΡΠΎΡΠ½ΠΈΠ΅ |
| ---------- | ----------- |
| Π³ΡΠ°Π΄ | 2 β 5 km |
| ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π΄ | 10 β 30 km |
| ΠΏΠ»Π°Π½ΠΈΠ½Π° | 50 β 150 km |
(ΠΏΡΠΈ Π΄ΠΎΠ±ΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ)
π§ ΠΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠΎΠ²Π° Π·Π° Meshtastic Bulgaria
ΠΠ° Π½Π°ΡΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°:
β Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄ΡΠ»Π³ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΠ°Π΄ΠΎΠ²Π΅
β Π½ΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° Π±Π°ΡΠ΅ΡΠΈΡ
β Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΎΠ»Π°ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ
β ΡΡΠ°Π±ΠΈΠ»Π½Π° mesh ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
π° ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
LoRa Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ°Π΄ΠΈΠΎΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½ΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ.
ΠΠ΅ΠΉΠ½Π°ΡΠ° ΡΠΈΠ»Π° ΠΈΠ΄Π²Π° ΠΎΡ:
β Chirp Spread Spectrum
β FFT Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅
β ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ΄ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΡΠΌΠ°
β ΠΎΠ³ΡΠΎΠΌΠ½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ
Π’ΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ:
π‘ Meshtastic
ΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ.
π ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅
LoRa modulation:
Chirp Spread Spectrum
Fast Fourier Transform
Spreading Factor
Forward Error Correction