Une classe Micropython pour les modules LORA de la série EBYTE E22
Les modules EBYTE E22 pris en charge sont basés sur des chipsets SEMTECH SX1262 / SX1286 et sont disponibles pour les 400 MHz (410.125 ... 493.125) et 900 MHz (850.125 ... 930.125) Clats de fréquence et fournissent 22 dBM max. Power TX.
Une interface UART simple est utilisée pour contrôler l'appareil.
EBYTE FEUTES DESTAUX:
E22-900T22D
E22-400T22D
La classe LORAE22 est basée sur la classe LORAE32 par Effevee: https://github.com/effevee/lorae32
Connectez une antenne appropriée avant de transmettre!
Avant d'utiliser, vérifiez vos réglementations locales pour utiliser cette plage de fréquences. Par exemple, dans la majeure partie de l'Europe, la puissance TX maximale autorisée est inférieure à la valeur par défaut de 22 dBm! Il peut également y avoir des restrictions supplémentaires, par exemple, des restrictions sur le cycle de service de vos transmissions (c'est-à-dire la fraction du temps d'air jusqu'au temps total étendu pendant une période d'utilisation de l'appareil)!

Voir code pour la configuration des broches.
Remarques: Le code de test LORAE22 diffère du code de test E32 en termes de Pin UART et AUX utilisé! De plus, LORAE22 utilise le «mode normal», tandis que LORAE32 utilise le «mode de réveil» dans SendMessage () .
| Mode de transmission | Tx (addr - ch) | Rx (addr - ch) | Msg (addr - ch) | Code d'émetteur | Code récepteur |
|---|---|---|---|---|---|
| transparent | 0x0001 - 0x02 | 0x0001 - 0x02 | 0x0001 - 0x02 | testSende22_Transparent.py | testRecve22_Transparent.py |
| P2p fixe | 0x0001 - 0x02 | 0x0003 - 0x04 | 0x0003 - 0x04 | testSende22_p2p.py | testRecve22_p2p.py |
| diffusion fixe | 0x0001 - 0x02 | 0x0003 - 0x04 | 0xffff - 0x04 | testSende22_broadcast.py | testRecve22_broadcast.py |
| moniteur fixe | 0x0001 - 0x02 | 0xffff - 0x04 | 0x0003 - 0x04 | testSende22_monitor.py | testRecve22_monitor.py |
Chaque nœud envoie un message à un intervalle fixe contenant une valeur de contrôle LED en fonction de l'état d'un bouton-poussoir.
Ensuite, il vérifie les messages reçus. Si un message avec une valeur de contrôle LED est disponible, la LED est commutée en conséquence.
Le mode de transmission (configuration d'adresse / canal) pour le nœud local et le nœud homologue peut être défini comme souhaité dans les tableaux ADDR et CHAN .
Le code de node0.py et node1.py est identique à l'exception des paramètres des variables moi et pair .
| Node0 | Node1 |
|---|---|
| node0.py | node1.py |
L'émetteur LORA envoie une chaîne contenant son ID de puce et un numéro de séquence de messages à un intervalle fixe.
Le récepteur LORA imprime / logs <horodat>, <latitude>, <longitude>, <altitude>, <rssi> à un intervalle prédéfini.
La position du récepteur et un horodatage sont décodés à partir des messages NMEA reçus via UART d'un récepteur GPS. À cette fin, les micropygps sont utilisés.
Si disponibles, les messages LORA entrants sont reçus du module d'émetteur-récepteur LORA EBYTEE22 via un autre UART. Si les messages attendus de l'émetteur LORA ne pouvaient pas être reçus pendant un certain temps, une valeur RSSI de -255 dBm est supposée, indiquant la perte de la liaison radio LORA.
Le Tuple <TimeStamp>, <Latitude>, <Longitude>, <Altitude>, <Rssi> est imprimé et éventuellement écrit dans un fichier journal uniquement si une position valide est disponible.
Si la journalisation est activée, un nom de fichier dans le format log_ <8_random_hex_digits _>. CSV est créé après la mise sous tension ou la réinitialisation. Les fichiers journaux sont écrits dans le système de fichiers interne de Micropython. La journalisation doit être arrêtée explicitement en appuyant sur une touche, sinon le fichier ne peut pas être fermé correctement et sera corrompu / vide.
Deux LED indiquent l'état du correctif GPS et la liaison LORA, respectivement.
| Nœud d'émetteur | Nœud récepteur |
|---|---|
| lora_tx.py | lora_rssi_logger.py |
Les fichiers journaux peuvent être convertis à partir du format CSV en un format approprié - comme GPX ou KML - sur l'hôte plus tard. Voir RSSI_CSV_TO_KML.py - Le fichier de sortie KML fournit la valeur RSSI en tant que données étendues à afficher avec le tracé d'élévation dans GoogleEarth. (Utilisation: rssi_csv_to_kml.py log_deadbeef.csv >log_deadbeef.kml )
Remarque: l'intrigue ne sert à ce que l'exemple - l'intervalle de journalisation aurait dû être plus court et la stratégie de journalisation a été modifiée par la suite.