Introduction à LoRa32 V2.1_1.6 Communication point à point

Photo des cartes ESP32 TTGO LoRa32 v2.1-6.1

Introduction

La LoRa32 V2.1_1.6 est une carte de développement compacte et puissante basée sur le microcontrôleur ESP32, intégrée à un module émetteur-récepteur LoRa (longue portée), typiquement le SX1276 ou SX1278. Cette combinaison permet une communication sans fil à longue portée et à faible consommation, ce qui fait de la carte un choix idéal pour les applications de l'Internet des objets (IoT), la télédétection et les projets embarqués. L'un des modes de communication fondamentaux pris en charge par ces appareils est la communication point à point (P2P), dans laquelle deux modules LoRa communiquent directement sans passer par une passerelle, un routeur ou une infrastructure de réseau central.

La communication point à point avec LoRa32 V2.1_1.6 implique la configuration d'un appareil en tant qu'émetteur et d'un autre en tant que récepteur. Cette configuration permet un transfert de données fiable sur de longues distances (dépassant souvent plusieurs kilomètres dans des environnements ouverts), tout en consommant un minimum d'énergie, ce qui est parfait pour des scénarios tels que la surveillance rurale, les contrôles à distance et les liaisons sans fil ad hoc.

Ce document (ou guide) explique comment configurer et mettre en œuvre une communication point à point à l'aide des modules LoRa32 V2.1_1.6, y compris les exigences matérielles, la configuration logicielle à l'aide de l'IDE Arduino, et le code d'exemple pour établir et tester l'échange de données de base entre deux nœuds.

Ce tutoriel a été testé avec les versions suivantes :

Configuration de l'IDE

Si ce n'est pas encore fait, installer l'IDE Arduino.

La Lora32 V2.1_1.6 est basée sur l'ESP32 Pico D4. Sélectionnez cette carte générique dans l'IDE Arduino :

Capture d'écran de l'ESP32 Pico D4 dans le gestionnaire de cartes de l'IDE Arduino

Installer la bibliothèque LoRa :

Installer la bibliothèque LoRa dans le gestionnaire de bibliothèque de l'IDE Arduino

Code de l'émetteur

Le premier ESP32 sera configuré comme émetteur. L'émetteur HF est connecté par le port SPI. Nous devons d'abord configurer les broches SPI connectées au module émetteur-récepteur. Cette configuration est basée sur le schéma des broches fourni par le fabricant :

Schéma des broches du module LoRa32 TTGO

Lors de l'initialisation de la librairie LoRa, nous devons spécifier la fréquence :

Voici le code complet :

#include <SPI.h>
#include <LoRa.h>

int counter = 0;

// Define the pins used by the transceiver module
#define SCK 5
#define MISO 19
#define MOSI 27
#define SS 18
#define RST 23
#define DIO0 26

void setup() {
  Serial.begin(115200);
  while (!Serial);

  Serial.println("LoRa Sender");

  // Configure SPI pins
  SPI.begin(SCK, MISO, MOSI, SS);

  // Setup the transceiver
  LoRa.setPins(SS, RST, DIO0);

  //433E6 for Asia (433 MHz)
  //866E6 for Europe (868 MHz)
  //915E6 for North America (915 MHz)
  if (!LoRa.begin(866E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
}

void loop() {
  Serial.print("Sending packet: ");
  Serial.println(counter);

  // send packet
  LoRa.beginPacket();
  LoRa.print("Packet #");
  LoRa.print(counter);
  LoRa.endPacket();

  counter++;

  delay(5000);
}

Une fois l'ESP32 programmé, il se peut que vous deviez réinitialiser le module en appuyant sur le bouton reset pour lancer le programme. Vous devriez voir quelque chose comme ceci dans le moniteur Arduino :

LoRa Sender
Sending packet: 0
Sending packet: 1
Sending packet: 2

Le module LoRa envoie un paquet toutes les 5 secondes.

Code du récepteur

Le code du récepteur est très proche de celui de l'émetteur, mais il boucle jusqu'à ce que les données LoRa soient disponibles et affiche les données reçues sur le moniteur série :

#include <SPI.h>
#include <LoRa.h>

// Define the pins used by the transceiver module
#define SCK 5
#define MISO 19
#define MOSI 27
#define SS 18
#define RST 23
#define DIO0 26

void setup() {
  Serial.begin(115200);
  while (!Serial);

    Serial.println("LoRa Receiver");

  // Configure SPI pins
  SPI.begin(SCK, MISO, MOSI, SS);

  // Setup the transceiver
  LoRa.setPins(SS, RST, DIO0);

  //433E6 for Asia (433 MHz)
  //866E6 for Europe (868 MHz)
  //915E6 for North America (915 MHz)
  if (!LoRa.begin(866E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
}

void loop() {
  // try to parse packet
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    // received a packet
    Serial.print("Received : '");

    // read packet
    while (LoRa.available()) {
      Serial.print((char)LoRa.read());
    }

    // print RSSI of packet
    Serial.print("' with RSSI ");
    Serial.println(LoRa.packetRssi());
  }
}

Une fois les deux codes lancés, vous devriez voir apparaître côté récepteur quelque chose comme :

LoRa Receiver
Received : 'Packet #4' with RSSI -5
Received : 'Packet #5' with RSSI -5
Received : 'Packet #6' with RSSI -4
Received : 'Packet #7' with RSSI -5
Received : 'Packet #8' with RSSI -15
Received : 'Packet #9' with RSSI -5

RSSI signifie Received Signal Strength Indicator (indicateur de puissance du signal reçu). Il s'agit d'une mesure du niveau de puissance (force du signal) que le récepteur détecte. Plus il est élevé, mieux c'est.

Conclusion

Les cartes de développement LoRa32 V2.1_1.6 constituent un moyen simple mais efficace de mettre en œuvre une communication longue portée point à point (P2P) à l'aide du protocole LoRa. En suivant la configuration et le code d'exemple fournis dans ce guide, vous pouvez facilement établir une liaison de données fiable entre deux appareils, sans nécessiter d'infrastructure intermédiaire telle qu'une passerelle ou un serveur.

En configurant correctement les broches SPI et en sélectionnant la fréquence en fonction de votre région, les cartes peuvent échanger des messages sur plusieurs kilomètres avec une consommation d'énergie minimale. Elles sont donc idéales pour des applications telles que la surveillance de l'environnement, les systèmes de contrôle à distance et les déploiements IoT personnalisés où l'indépendance vis-à-vis du réseau et la communication longue distance sont essentielles.

Maintenant que vous avez réussi à construire une installation LoRa émetteur-récepteur de base, vous pouvez étendre le système avec le cryptage, les accusés de réception, le réseau maillé ou l'intégration de capteurs pour des projets plus avancés et plus sécurisés.

Téléchargements

Voir aussi


Dernière mise à jour : 28/04/2025