13 miles 20 km sans WiFi ? Comment LoRa a envoyé des tensions à travers des distances incroyables ! (Heltec WiFi LoRa 32 V3)

Cette leçon fait partie de: Introduction au WiFi LoRa

13 miles 20 km sans WiFi ? Comment LoRa a envoyé des tensions à travers des distances incroyables ! (Heltec WiFi LoRa 32 V3)

Construisez un moniteur de voltage hors réseau de 21 kilomètres avec LoRa et ESP32

Avez-vous déjà eu besoin de surveiller une source d'alimentation à distance, comme un panneau solaire dans un chalet, un parc de batteries sur un bateau ou des équipements sur une grande ferme, à des kilomètres de distance ? Ce guide de projet vous guidera dans la construction d'un moniteur de tension longue portée, hors réseau, capable de transmettre des données jusqu'à un incroyable13 miles (ou 21 kilomètres), sans frais d'abonnement ni dépendance aux réseaux Wi-Fi ou cellulaires.

Nous allons utiliser deuxHeltec WiFi LoRa 32modules, chacun logé dans un robusteBoîtier Meshnology N32avec une batterie de 3000 mAh, pour créer un émetteur et un récepteur. L'émetteur mesurera une tension cible (d'un few volts jusqu'à 100V ou plus) en utilisant un simple circuit diviseur de tension et enverra la lecture sans fil en utilisant LoRa. Le récepteur affichera ensuite cette tension en temps réel, vous permettant de surveiller vos systèmes à des kilomètres de distance.


Comment ça fonctionne : Le diviseur de tension

Le cœur de ce projet est la capacité de mesurer une large gamme de tensions. Comme les broches d'entrée de l'ESP32 ne peuvent mesurer en toute sécurité que des tensions allant jusqu'à 3,3 V, nous ne pouvons pas connecter une source de 12 V ou de 100 V directement. Pour résoudre ce problème, nous utilisons un circuit simple appelé undiviseur de tension, qui abaisse la tension à un niveau sûr pour que le microcontrôleur puisse lire. Cela est expliqué dans la vidéo à12:26.

Le circuit utilise deux résistances (R1 et R2) connectées en série. La source de haute tension (Vdans) est appliquée sur les deux résistances, et l'ESP32 lit la tension proportionnelle inférieure (Vdehors) à travers uniquement la résistance R2. Avec les bonnes valeurs de résistances, vous pouvez mesurer avec précision des tensions très élevées.

Schéma de circuit d'un diviseur de tension avec des résistances R1 et R2.

Lors du choix de vos résistances, une bonne règle générale est de sélectionner des valeurs qui maintiennent la tension de sortie bien en dessous de la limite de 3,3 V, même en mesurant la tension maximale que vous attendez. Pour la meilleure précision, vous devez mesurer la résistance réelle de vos résistances avec un multimètre et utiliser ces valeurs précises dans le code.

Formules pour calculer les tensions de sortie et d'entrée d'un diviseur de tension.

Assemblage et câblage du matériel

L'assemblage consiste à placer le module Heltec LoRa 32 et la batterie de 3000mAh à l'intérieur du boîtier N32. Le boîtier a des découpes pour l'écran et les boutons, ainsi qu'un trou pour le support d'antenne externe. L'une des notes de sécurité les plus importantes est deveillez toujours à connecter l'antenne avant de mettre l'appareil sous tension, car transmettre sans antenne peut endommager le module LoRa.

Schéma de câblage principal montrant un diviseur de tension connecté à l'ESP32 et à la batterie.
Photo du câblage réel du projet avec des résistances et des fils connectés.
Photo de l'écran OLED du transmetteur affichant une mesure de 30V.

Configuration de l'IDE et de la bibliothèque Arduino

https://resource.heltec.cn/download/package_heltec_esp32_index.json

Pour programmer les modules Heltec, vous devez d'abord configurer votre IDE Arduino. Cette configuration unique est cruciale et est détaillée à20:41dans la vidéo.

  1. Installer les cartes ESP32 :Ajoutez l'URL officielle des cartes Espressif ESP32 dans Fichier > Préférences et installez le package "esp32" depuis le Gestionnaire de cartes.
  2. Installer le support Heltec :Ajoutez l'URL JSON spécifique à Heltec dans vos préférences. Ensuite, dans le gestionnaire de cartes, recherchez et installez le package "Heltec ESP32".
  3. Installer les bibliothèques requises :En utilisant le Gestionnaire de Bibliothèques (Sketch > Inclure une Bibliothèque > Gérer les Bibliothèques), installez les éléments suivants :
    • Heltec ESP32 dev boards
    • Adafruit GFX Library(et ses dépendances)
  4. Installer la bibliothèque Robojax :Vous devrez télécharger le personnaliséRobojax_HeltecLoRa32bibliothèque, qui est fournie sous forme de fichier .zip. Installez-la dans l'IDE via Croquis > Inclure une bibliothèque > Ajouter une bibliothèque .ZIP.
  5. Sélectionnez le Conseil :Enfin, allez dans Outils > Tableau et sélectionnez leHeltec WiFi LoRa 32 (V3)et le port COM correct.

Configuration du Code Expliquée

Le projet utilise deux croquis distincts : un pour leÉmetteur (TX)et un pour leRécepteur (RX). Vous n'avez besoin de configurer que quelques paramètres clés dans le code du transmetteur pour qu'il fonctionne, comme expliqué à25:02Le code du récepteur nécessite des paramètres LoRa correspondants.


#define VOLTAGE_READING_PIN 4  // The pin reading the voltage
const int R1 = 39120; // Your measured value for R1 in ohms
const int R2 = 3312; // Your measured value for R2 in ohms

const float CALIB_FACTOR = 1.007f; // Calibration factor to match a multimeter

const char *displayTexttitle = "Voltage:"; // Text for the OLED
const char *displayTexTX = "(TX)";

// This security key MUST be IDENTICAL on the TX and RX devices
const char *userKey = "YOUR_SECRE8888";

// These LoRa settings MUST be IDENTICAL on the TX and RX devices
#define RF_FREQUENCY      915000000 // LoRa Frequency in Hz
#define TX_OUTPUT_POWER   2         // TX Power in dBm (2-21)
  • VOLTAGE_READING_PINLe pin GPIO sur l'ESP32 auquel vous avez raccordé la sortie de votre diviseur de tension.
  • R1etR2: Entrez levaleurs de résistance exactesde vos deux résistances telles que mesurées par un multimètre. Cela est crucial pour la précision.
  • CALIB_FACTORSi votre tension affichée est légèrement différente de celle d'un multimètre de confiance, vous pouvez ajuster cette valeur à la hausse ou à la baisse (par exemple, 1,008 ou 0,995) pour affiner la lecture. Réglez-le sur1.0désactiver.
  • userKeyCeci est votre clé de sécurité privée. Seuls les appareils ayant exactement la même clé peuvent communiquer.
  • RF_FREQUENCYLa fréquence de fonctionnement pour LoRa. Cela doit correspondre sur les deux appareils et être légal pour votre région (par exemple, 915 MHz pour l'Amérique du Nord).
  • TX_OUTPUT_POWERLa puissance de transmission, allant de 2 (faible puissance, courte portée) à 21 (haute puissance, longue portée). Une puissance plus élevée consomme plus de batterie. Pour le test de 13 miles, une valeur de 20 a été utilisée. Pour des tests sur votre bureau, 2 est suffisant.

Le code du récepteur a des paramètres similaires pouruserKeyetRF_FREQUENCYqui doit correspondre aux paramètres de l'émetteur.


Projet en direct en action

Une fois le code téléchargé, l'unité émettrice commencera à mesurer la tension de votre source connectée, l'affichant sur son propre écran OLED avec un indicateur "(TX)", et transmettra les données via LoRa. L'unité réceptrice, une fois programmée avec la clé de sécurité correspondante et la fréquence, écoutera le signal. Dès qu'elle reçoit une transmission valide, elle affichera la tension identique sur son écran avec un indicateur "(RX)".

Comme démontré lors du test à long terme à31:39ce système est incroyablement efficace. Avec des antennes à gain élevé et une ligne de vue dégagée, le système a réussi à transmettre et recevoir des mesures de tension précises à 21 kilomètres, prouvant qu'il s'agit d'une solution robuste et fiable pour des tâches de surveillance à distance sérieuses.


Chapitres vidéo

  • 00:00- Commencer
  • 03:33- Introduction au tableau et à LoRa
  • 05:47- Boîtier N32 pour WiFi LoRa 32
  • 12:26- Diviseur de tension pour mesurer jusqu'à 150V
  • 19:47- Préparation du fil pour mesurer la tension
  • 20:41- Installation de la bibliothèque pour WiFi LoRa 32
  • 25:02- Code de transmission expliqué
  • 27:16- Code de réception expliqué
  • 28:36- Démonstration de lecture de tension
  • 31:39- Test de distance en conditions réelles (21 km)
Aucun code joint.

Common Course Files

Fichiers📁

Autres fichiers