Table des matières:

Communication Arduino LoRa simple (plus de 5 km): 9 étapes
Communication Arduino LoRa simple (plus de 5 km): 9 étapes

Vidéo: Communication Arduino LoRa simple (plus de 5 km): 9 étapes

Vidéo: Communication Arduino LoRa simple (plus de 5 km): 9 étapes
Vidéo: Hacking into Android in 32 seconds | HID attack | Metasploit | PIN brute force PoC 2024, Juillet
Anonim
Communication Arduino LoRa simple (plus de 5 km)
Communication Arduino LoRa simple (plus de 5 km)

Nous allons tester E32-TTL-100 avec ma librairie. Il s'agit d'un module émetteur-récepteur sans fil, fonctionnant à 410 441 MHz (ou 868 MHz ou 915 MHz) basé sur le RFIC SX1278 d'origine de SEMTECH, une transmission transparente est disponible, niveau TTL. Le module adopte la technologie à spectre étalé LORA.

Fournitures

  • Arduino UNO
  • Appareils LoRa e32

Optionnel

  • Bouclier Mischianti Arduino LoRa (Open source)
  • Bouclier Mischianti WeMos LoRa (Open source)

Étape 1: Spécifications des appareils

Le module dispose de l'algorithme de correction d'erreur directe FEC, qui garantit une efficacité de codage élevée et de bonnes performances de correction. En cas d'interférence soudaine, il peut corriger automatiquement les paquets de données interférés, de sorte que la fiabilité et la portée de transmission soient améliorées en conséquence. Mais sans FEC, ces paquets de dates ne peuvent être que lâchés. Et avec le cryptage et le décryptage rigoureux, l'interception des données devient inutile. La fonction de compression des données peut réduire le temps de transmission et la probabilité d'être des interférences, tout en améliorant la fiabilité et l'efficacité de la transmission.

  • Taille du module: 21*36mm
  • Type d'antenne: SMA-K (impédance 50Ω)
  • Distance de transmission: 3000 m (max)
  • Puissance maximale: 2 dB (100 mW)
  • Débits aériens: 2,4 Kbit/s (6 niveaux en option (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbit/s)
  • Longueur d'émission: 512ByteReceive
  • longueur: 512 octets
  • Interface de communication: UART – 8N1, 8E1, 8O1,
  • Huit types de débit en bauds UART, de 1200 à 115200bps (par défaut: 9600)
  • Prise en charge RSSI: non (traitement intelligent intégré)

Étape 2: Type de transmission

Type de transmission
Type de transmission

Transmission transparente Cela peut être considéré comme un « mode démo », par défaut, vous pouvez envoyer un message à tous les appareils de la même adresse et du même canal configurés.

Transmission fixe

Ce type de transmission vous permet de spécifier une adresse et un canal où vous souhaitez envoyer le message. Vous pouvez envoyer un message à:

  • Appareil spécifié avec une adresse basse, une adresse haute et un canal prédéterminés.
  • Message de diffusion à un ensemble de dispositifs de canal Mode normal Envoyez simplement un message.

Étape 3: Mode appareil

Mode normal Envoyez simplement un message.

Mode réveil et mode économie d'énergie

Comme vous pouvez l'imaginer, si un appareil est en mode Wake-up, vous pouvez « réveiller » un ou plusieurs appareils en mode d'économie d'énergie avec une communication de préambule.

Programme/mode veille

Avec cette configuration, vous pouvez modifier la configuration de votre appareil.

Étape 4: Câblage du périphérique

Dispositif de câblage
Dispositif de câblage
Dispositif de câblage
Dispositif de câblage

Voici le schéma de connexion de l'appareil, il s'agit d'un entièrement connecté, avec gestion des pins M0 et M1 permettant de changer de modalité de l'appareil, vous pouvez donc passer en mode configuration ou réveil avec programme, la librairie vous aide dans tout ça opération.

Étape 5: Configuration

Configuration
Configuration

Existe une commande spécifiée pour définir et obtenir la configuration

void setup() { Serial.begin(9600); retard (500); // Démarrer toutes les broches et UART e32ttl100.begin(); ResponseStructContainer c; c = e32ttl100.getConfiguration(); // Il est important d'obtenir le pointeur de configuration avant toute autre opération Configuration configuration = *(Configuration*) c.data; Serial.println(c.status.getResponseDescription()); Serial.println(c.status.code); printParameters(configuration); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation(); // Il est important d'obtenir le pointeur d'informations avant toute autre opération ModuleInformation mi = *(ModuleInformation*)cMi.data; Serial.println(cMi.status.getResponseDescription()); Serial.println(cMi.status.code); printModuleInformation(mi); }

Étape 6: Résultat de la configuration

Et le résultat devient

Début réussi 1 ----------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (par défaut) SpeedUARTDataRate BIN: 11 -> 9600bps (par défaut) SpeedAirDataRate BIN: 10 -> 2,4kbps (par défaut) OptionTrans BIN: 0 - > Transmission transparente (par défaut) OptionPullup BIN: 1 -> TXD, RXD, AUX sont des push-pulls/pull-ups OptionWakeup BIN: 0 -> 250ms (par défaut) OptionFEC BIN: 1 -> Activer le commutateur de correction d'erreur directe (par défaut) OptionPower BIN: 0 -> 20dBm (Par défaut) ---------------------------------------- Succès 1 ----------------------------------------- BAC À TÊTE: 11000011 195 C3 N° de modèle.: 32 Version: 44 Fonctionnalités: 14 ----------------------------------------

Étape 7: envoyer un message

Envoyer le message
Envoyer le message

Voici un croquis simple pour envoyer un message à tous les appareils connectés à la chaîne

void loop() { // Si quelque chose est disponible if (e32ttl100.available()>1) { // lit le message String ResponseContainer rc = e32ttl100.receiveMessage(); // Est-ce que quelque chose ne va pas print error if (rc.status.code!=1){ rc.status.getResponseDescription(); }else{ // Imprimer les données reçues Serial.println(rc.data); } } if (Serial.available()) { String input = Serial.readString(); e32ttl100.sendMessage(entrée); } }

Étape 8: Shield pour Arduino

Bouclier pour Arduino
Bouclier pour Arduino

Je crée aussi un shield pour Arduino qui devient très utile pour le prototypage.

Et je le publie en tant que projet open source ici

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

Étape 9: Bibliothèque

Une bibliothèque
Une bibliothèque

Référentiel GitHub

Forum d'entraide

Documents supplémentaires

Conseillé: