Module LoRa Arduino SX1276 : Communication 10 km Longue Portée
Tout ce qu'il faut savoir pour deployer une communication LoRa SX1276 longue portee (jusqu'a 10 km) avec Arduino ou ESP32 : modules, Spreading Factor, code emetteur/recepteur, antennes, reglementation 868 MHz Tunisie et cas d'usage agriculture intelligente.
Septembre 2024. Une oliveraie de 80 hectares dans la region de Sfax, perdue entre Agareb et Sakiet Ezzit. L’ingenieur agronome veut suivre l’humidite du sol, la temperature et l’etat des pompes de 12 forages disperses sur 7 kilometres. Le WiFi ne passe pas. La 4G coute 12 abonnements SIM. Le Bluetooth se moque de lui. Sa solution finale ? Un node LoRa a 9 dinars par capteur, une gateway sur le toit du depot, et une portee mesuree a 8,4 km en LoS avec un Spreading Factor 12. Total facture electronique : moins de 400 TND. Total facture telecom mensuelle : zero.
Bienvenue dans le monde de LoRa, la technologie radio qui a discretement reecrit les regles de l’IoT longue distance. Dans ce guide expert, on demonte SX1276/SX1278, on calcule la portee reelle (pas celle des fiches marketing), on code en Arduino et ESP32, et on explore la reglementation tunisienne ISM 868 MHz souvent ignoree.
📋 Table des matieres
- 1. La technologie LoRa demystifiee (CSS Semtech)
- 2. Bandes ISM : 433, 868 ou 915 MHz ?
- 3. Quel module choisir : RFM95, Ra-02, TTGO, Heltec
- 4. Parametres LoRa : SF, BW, CR, TX Power
- 5. Calcul de portee theorique vs reelle
- 6. Code Arduino emetteur et recepteur
- 7. Point-to-point vs LoRaWAN
- 8. Antennes : helice, spirale, externe
- 9. Applications reelles en Tunisie
- 10. Reglementation IUT-R et ANF Tunisie
- 11. FAQ
1. La technologie LoRa demystifiee : le secret du Chirp Spread Spectrum
LoRa, c’est l’acronyme de Long Range. Mais ce nom marketing cache une modulation radio brillante developpee par la startup grenobloise Cycleo en 2009, rachetee par Semtech en 2012 pour 5 millions de dollars. Aujourd’hui, plus de 300 millions de dispositifs LoRa sont deployes dans le monde, et Semtech vend les puces SX1276, SX1278, SX1262 sous brevet ferme jusqu’en 2029.
Chirp Spread Spectrum (CSS) : la magie de Cycleo
Contrairement au WiFi (OFDM) ou au Bluetooth (FHSS), LoRa utilise une modulation par etalement de spectre a chirp. Concretement, chaque symbole binaire est code par un signal sinusoidal dont la frequence monte ou descend de maniere lineaire sur toute la bande passante. Cette technique offre trois superpouvoirs :
- Sensibilite extreme : -148 dBm (vs -90 dBm pour le WiFi). On peut recevoir un signal plus faible que le bruit thermique de fond !
- Immunite Doppler : les chirps sont insensibles aux decalages de frequence, ideal pour des objets mobiles (tracker betail, drone).
- Resistance multi-trajets : les reflexions sur les batiments ne degradent pas le signal.
Le compromis : debit ridicule
Le prix a payer ? Un debit anemique : de 0,3 a 50 kbps selon les parametres. LoRa n’est PAS conçu pour streamer Netflix. Il est conçu pour envoyer 20 octets toutes les 5 minutes pendant 10 ans sur une pile AA. Parfait pour un capteur de niveau de cuve d’eau, pas pour une camera de surveillance.
2. Bandes ISM : 433, 868 ou 915 MHz ? Le choix critique
LoRa fonctionne sur les bandes ISM (Industrial, Scientific, Medical) libres de licence. Mais attention : chaque region a sa propre bande autorisee. Utiliser la mauvaise frequence en Tunisie est illegal et peut bloquer votre signal.
| Bande | Region | Module typique | Portee | Restrictions |
|---|---|---|---|---|
| 433 MHz | Asie, Afrique (autorisee Tunisie) | Ra-02 SX1278 | 5-8 km | Antennes plus longues (17 cm) |
| 868 MHz | Europe, Tunisie | RFM95 SX1276 | 8-15 km | Duty Cycle < 1% |
| 915 MHz | Amerique, Australie | SX1276 US version | 10-15 km | Pas de DC mais limite TX |
| 2,4 GHz | Mondial (SX1280) | SX1280 | 1-3 km | Concurrence WiFi |
L’Agence Nationale des Frequences (ANF) tunisienne s’aligne sur les regles europeennes ETSI EN 300 220. La bande 868,0-868,6 MHz est libre de licence avec une puissance max de 14 dBm (25 mW) et un duty cycle < 1%. La bande 433 MHz est techniquement autorisee mais avec des restrictions de puissance (10 mW), ce qui reduit la portee.
3. Quel module LoRa choisir ? Le guide d’achat 2026
RFM95W (HopeRF) – Le module nu, polyvalent
Le RFM95W est un module compact (16×16 mm) bati autour de la puce Semtech SX1276. Il communique en SPI, accepte 3,3V (PAS 5V, attention aux Arduino UNO !), et coute environ 15 TND chez Didactico. Il faut l’associer a un MCU separe (Arduino Nano, Pro Mini 3.3V, ESP32). Idéal pour des nodes optimises en consommation (sleep < 1 µA).
Ra-02 (Ai-Thinker) – SX1278 433 MHz
Version chinoise economique du RFM95 mais sur 433 MHz (SX1278). Tres populaire en Asie. Attention : utilise 433 MHz, donc antenne de 17 cm requise. Eviter en Tunisie sauf si vous ne diffusez qu’a faible puissance.
TTGO LoRa32 V2.1 – Le couteau suisse ESP32
Notre coup de coeur Didactico. Combine sur un seul PCB : ESP32 (WiFi + BT + dual core), SX1276 868 MHz, ecran OLED 0,96″, lecteur SD, batterie LiPo avec charge USB-C, antenne SMA femelle. Coute environ 65 TND. Parfait pour un gateway LoRa-to-WiFi car l’ESP32 peut relayer les trames LoRa vers MQTT/HTTP.
TTGO T-Beam v1.2 – Avec GPS NEO-6M
Identique au LoRa32 mais avec un module GPS NEO-6M et un porte-pile 18650. C’est LE choix pour les trackers betail, drones, ou applications de geolocalisation autonomes. Autonomie 2-3 semaines sur une seule cellule 18650.
Heltec WiFi LoRa V3 – ESP32-S3 + SX1262
La generation 2024 : ESP32-S3 (dual core 240 MHz + AI acceleration), SX1262 (consommation reduite de 30%, sensibilite -148 dBm), USB-C, OLED. Le futur, mais 25% plus cher.
TTGO T-Beam (ESP32 + LoRa SX1276 + GPS)
La carte tout-en-un pour vos projets LoRa avec geolocalisation : tracker betail, drone, capteur mobile. Antenne SMA incluse, porte-pile 18650 integre.
4. Parametres LoRa : SF, BW, CR, TX Power expliques
C’est ici que la plupart des tutoriels generiques abandonnent. Pourtant, comprendre ces 4 parametres est la difference entre 500 m et 12 km de portee.
Spreading Factor (SF) : de 7 a 12
Le SF determine le nombre de “chirps” par symbole. Plus le SF est eleve, plus la portee est grande, mais plus le debit chute.
| SF | Sensibilite | Debit (BW 125 kHz) | Temps en air (10 octets) | Usage |
|---|---|---|---|---|
| SF7 | -123 dBm | 5,5 kbps | 56 ms | Urbain courte distance |
| SF9 | -129 dBm | 1,7 kbps | 185 ms | Periurbain |
| SF11 | -135 dBm | 440 bps | 660 ms | Rural longue |
| SF12 | -137 dBm | 250 bps | 1320 ms | Extreme distance |
Bandwidth (BW) : 7,8 a 500 kHz
La largeur de bande. 125 kHz est le standard LoRaWAN. Diminuer a 62,5 kHz augmente la sensibilite de 3 dB mais double le temps en air.
Coding Rate (CR) : 4/5 a 4/8
Le ratio FEC (Forward Error Correction). 4/5 = 20% de redondance. 4/8 = 100% de redondance (double le payload). Utile en environnement bruite.
TX Power : 2 a 20 dBm
La puissance d’emission. En Europe/Tunisie, limite a 14 dBm sur 868 MHz. Ne JAMAIS depasser 17 dBm en LoRa pur point-to-point (degradation de la puce et illegal).
Pour 90% des cas en Tunisie rurale : SF10, BW 125 kHz, CR 4/5, TX 14 dBm. Vous obtiendrez 5-8 km en LoS avec un payload de 50 octets en 370 ms. Si la distance est superieure a 8 km, passez en SF12 mais respectez le duty cycle (max 36 secondes/heure transmises).
5. Calcul de portee theorique vs reelle
Le link budget LoRa se calcule ainsi :
// Link Budget LoRa
Link_Budget_dB = P_TX + G_ant_TX + G_ant_RX - Sensibilite_RX
// Exemple SF12, BW 125 kHz, TX 14 dBm, antennes 3 dBi de chaque cote
Link_Budget = 14 + 3 + 3 - (-137) = 157 dB
// Distance theorique en espace libre (FSPL)
FSPL(d) = 20*log10(d_km) + 20*log10(f_MHz) + 32,45
157 = 20*log10(d) + 20*log10(868) + 32,45
20*log10(d) = 157 - 58,78 - 32,45 = 65,77
d = 10^(65,77/20) = 1944 km en theorie !
Mais en pratique, la realite est plus dure. Les obstacles (zone de Fresnel), la courbure terrestre, les pertes de cable et l’attenuation atmospherique reduisent ce chiffre. Voici nos mesures terrain Didactico en 2024 :
| Environnement | SF7 BW125 | SF10 BW125 | SF12 BW125 |
|---|---|---|---|
| Urbain dense (Tunis centre) | 400 m | 1,2 km | 2,5 km |
| Periurbain (Sfax banlieue) | 1,5 km | 4 km | 7 km |
| Rural (oliveraies Sakiet) | 3 km | 8 km | 14 km |
| LoS colline a colline | 8 km | 20 km | 40+ km |
6. Code Arduino : emetteur et recepteur
Bibliotheque LoRa.h par Sandeep Mistry
Installez la lib LoRa de Sandeep Mistry via le gestionnaire Arduino (Library Manager). Cest la plus stable et compatible avec tous les modules SX127x.
Code emetteur (Arduino Nano + RFM95)
#include <SPI.h>
#include <LoRa.h>
// Cablage SPI : NSS=10, RESET=9, DIO0=2
#define LORA_SS 10
#define LORA_RST 9
#define LORA_DIO0 2
int compteur = 0;
void setup() {
Serial.begin(115200);
while (!Serial);
Serial.println("Emetteur LoRa Didactico");
LoRa.setPins(LORA_SS, LORA_RST, LORA_DIO0);
// Frequence Tunisie : 868 MHz
if (!LoRa.begin(868E6)) {
Serial.println("Echec init LoRa");
while (1);
}
// Configuration optimale rural Tunisie
LoRa.setSpreadingFactor(10); // SF10
LoRa.setSignalBandwidth(125E3); // 125 kHz
LoRa.setCodingRate4(5); // 4/5
LoRa.setTxPower(14); // 14 dBm = limite legale
LoRa.enableCrc(); // Activer CRC
Serial.println("LoRa pret");
}
void loop() {
Serial.print("Envoi paquet : ");
Serial.println(compteur);
LoRa.beginPacket();
LoRa.print("DIDA-NODE-01:");
LoRa.print(compteur);
LoRa.print(":TEMP=");
LoRa.print(25.7);
LoRa.print(":HUM=");
LoRa.print(48);
LoRa.endPacket();
compteur++;
delay(60000); // Respecter Duty Cycle < 1% sur 868 MHz
}
Code recepteur avec RSSI/SNR
#include <SPI.h>
#include <LoRa.h>
#define LORA_SS 10
#define LORA_RST 9
#define LORA_DIO0 2
void setup() {
Serial.begin(115200);
LoRa.setPins(LORA_SS, LORA_RST, LORA_DIO0);
if (!LoRa.begin(868E6)) {
Serial.println("Echec init LoRa");
while (1);
}
LoRa.setSpreadingFactor(10);
LoRa.setSignalBandwidth(125E3);
LoRa.enableCrc();
Serial.println("Recepteur pret");
}
void loop() {
int packetSize = LoRa.parsePacket();
if (packetSize) {
String message = "";
while (LoRa.available()) {
message += (char)LoRa.read();
}
int rssi = LoRa.packetRssi();
float snr = LoRa.packetSnr();
Serial.print("RX: ");
Serial.print(message);
Serial.print(" | RSSI: ");
Serial.print(rssi);
Serial.print(" dBm | SNR: ");
Serial.print(snr);
Serial.println(" dB");
// Diagnostic qualite
if (rssi > -100) Serial.println("Excellent");
else if (rssi > -120) Serial.println("Bon");
else Serial.println("Limite");
}
}
Le RFM95 supporte UNIQUEMENT 3,3V. Si vous utilisez un Arduino UNO (5V), il FAUT un convertisseur de niveau logique sur les broches SPI (MOSI, SCK, NSS, DIO0). Sinon, le module grille en quelques minutes. Prefere un Arduino Pro Mini 3,3V ou directement un ESP32.
7. Point-to-point vs LoRaWAN : que choisir ?
LoRa (la couche physique) et LoRaWAN (le protocole reseau) sont deux choses differentes.
LoRa point-to-point
Communication directe node-to-node ou node-to-gateway custom. Vous controlez tout : protocole, format, encryption. Parfait pour 1 a 20 nodes. Pas de frais. Pas de TTN. Pas de gateway publique.
LoRaWAN
Protocole standardise (LoRa Alliance) avec gateways publiques (The Things Network), serveurs reseau (ChirpStack), ADR automatique. Necessite un gateway 8 canaux (RAK7268 a 600 TND). Adapte des 50+ nodes ou pour deploiement commercial.
| Critere | P2P | LoRaWAN |
|---|---|---|
| Cout setup | 30 TND/node | 30 TND/node + 600 TND gateway |
| Nodes max | ~20 | 10 000+ |
| Securite | A coder | AES-128 native (AppKey/NwkKey) |
| Couverture publique | Non | Oui (TTN) |
| Complexite | Faible | Elevee |
8. Antennes : helice, spirale, externe
L’antenne est le facteur le plus sous-estime. Une mauvaise antenne diminue la portee de 70%.
Antenne helice (whip) 868 MHz
17 cm de long (quart d’onde), gain 2-3 dBi. Standard fournie avec les modules. Bonne pour les nodes mobiles.
Antenne spirale (PCB)
Integree sur PCB, gain 0-1 dBi. Compact mais portee reduite de 30%. Utilisez seulement pour les wearables.
Antenne externe Yagi-Uda directionnelle
5-12 dBi, directive. Idéale pour un lien point-to-point entre deux sites fixes (gateway-to-station distante). Permet d’atteindre 20-40 km. Compter 80 TND pour une Yagi 8 dBi.
Antenne fibre de verre omnidirectionnelle
4-8 dBi, omni. Pour une gateway au centre d’un reseau de nodes. 60 TND pour 5 dBi de qualite.
Pour un lien LoRa de 5 km a 868 MHz, la zone de Fresnel a un rayon de 9,3 m au milieu du trajet. Si un obstacle (batiment, colline, arbre) penetre cette zone, le signal degrade. Surelevez vos antennes ! Un mat de 6 m peut tripler votre portee.
9. Applications reelles en Tunisie
Oliveraies connectees de Sfax
Capteurs d’humidite du sol (tensiometre Watermark + ADS1115) tous les 200 m sur 50 hectares. SF11 BW125, 3 trames/jour. Autonomie 18 mois sur 2 piles AA. Gateway TTGO LoRa32 sur le toit du dar (relais WiFi vers serveur OVH).
Tracker betail Mahres
TTGO T-Beam (GPS + LoRa) sur collier de vache. Position envoyee toutes les 30 min. Autonomie 3 semaines sur batterie 18650 3000mAh. Detection de fugue hors zone (geofencing serveur).
Qualite air Sfax
Reseau de 15 capteurs PM2.5 (SDS011) deployes par l’universite. Donnees LoRa vers gateway centrale, puis envoi vers InfluxDB + Grafana. Cout total : 1200 TND vs 15 000 TND pour solution commerciale.
Niveau cuve eau a Tozeur
Capteur ultrasonique JSN-SR04T dans cuve de 5000L. Envoi LoRa 1 fois par heure. Alerte SMS si niveau < 20%. Parfait pour les exploitants de palmeraies.
10. Reglementation IUT-R et ANF Tunisie
L’Agence Nationale des Frequences (ANF) tunisienne suit la recommandation IUT-R SA.1879. Pour 868 MHz :
- Puissance max : 14 dBm (25 mW ERP)
- Duty cycle max : 1% sur 1 heure = 36 secondes d’emission max par heure
- Spacing canal : 100 kHz
- LBT (Listen Before Talk) : optionnel mais recommande
Concretement, si vous envoyez un paquet de 50 octets en SF12 (1,3 sec), vous ne pouvez emettre que 27 fois par heure. Au-dela, vous violez la reglementation. Pour les usages commerciaux, declarez votre installation a l’ANF (ce n’est pas obligatoire pour usage personnel/recherche mais recommande).
11. FAQ – Module LoRa Arduino
Quelle est la portee maximale realiste de LoRa en Tunisie ?
En rural avec antennes 3 dBi des deux cotes, SF12, 14 dBm : comptez 8-15 km. En urbain dense, descendez a 2-3 km. Le record monde (avec balon meteo) est de 832 km mais en conditions exceptionnelles.
Puis-je utiliser LoRa 433 MHz en Tunisie ?
Techniquement oui, la bande 433 MHz est autorisee (10 mW max). Mais la bande 868 MHz offre 4x plus de puissance autorisee et donc une meilleure portee. Pour des projets serieux, choisissez 868 MHz.
Quelle difference entre SX1276 et SX1278 ?
Le SX1276 couvre 137-1020 MHz (utilise pour 868/915 MHz). Le SX1278 couvre 137-525 MHz (utilise pour 433 MHz). Architecture identique, seulement la frequence diffère.
Combien de nodes peut gerer une gateway LoRa point-to-point ?
En P2P custom avec CSMA-CA et ID unique : 10-30 nodes confortablement, 50-100 maximum avec gestion fine du duty cycle. Pour 100+, passez en LoRaWAN avec gateway 8 canaux.
Faut-il declarer son installation LoRa a l’ANF Tunisie ?
Pour usage personnel, projet PFE etudiant ENIT/INSAT/ESPRIT/ISET ou recherche : non obligatoire. Pour deploiement commercial (smart city, exploitant agricole, telcom) : declaration recommandee aupres de l’ANF.
LoRa marche-t-il sous la pluie ?
Oui, 868 MHz est tres peu attenue par la pluie (contrairement au 2,4 GHz WiFi). La pluie forte peut reduire la portee de 10-15% maximum. Aucun probleme dans la realite tunisienne.
Quelle autonomie batterie pour un node LoRa ?
Avec deep sleep ESP32 + 1 trame/heure SF10 : 18-24 mois sur 2 piles AA Lithium (3600 mAh equivalents). Avec un Arduino Pro Mini 3.3V optimise (sleep < 1 µA) : 3-5 ans !
Conclusion : LoRa est l’epine dorsale silencieuse de votre IoT
LoRa n’est pas glamour. Il ne fera pas tourner un jeu video. Mais c’est la technologie radio la plus fiable et la plus economique pour relier des centaines de capteurs disperses sur des kilometres carres, sans facture telecom mensuelle. Pour l’agriculture connectee tunisienne, pour les projets PFE en ENIT/INSAT/ESPRIT, pour les makers de Sfax qui veulent reellement deployer (pas juste prototyper), LoRa est l’arme secrete.
Chez Didactico Sfax, on stocke les modules LoRa RFM95, Ra-02, TTGO LoRa32 et T-Beam avec livraison 24-48h partout en Tunisie. Decouvrez aussi notre guide ESP32 LoRa : Reseau Multi-Capteurs pour l’Agriculture pour aller plus loin.
🛒 Matériel nécessaire pour ce guide
Tout le matériel de ce tutoriel est disponible chez Didactico — livraison 24-48h partout en Tunisie, paiement à la livraison.
Module LoRa SX1278 Ra-02 433Mhz 8pin Bleu56,000 TND
Module LoRa SX1278 Ra-01 433Mhz 8pin bleu56,000 TND
Module de developpement TTGO ESP32 LORA OLED 0.96 868Mhz109,140 TND📘 Guides liés : ESP32 LoRa : Reseau Multi-Capteurs Longue Portee pour l'Agriculture Tunisienne
