Test du transmetteur LoRa REYAX RYLR890
publication: 15 janvier 2022 / mis à jour 16 janvier 2022
Appel à collaboration
Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.
Partagez-les ici sur ce site.
ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.
Vos montages peuvent aider d'autres développeurs.
Les montages des autres développeurs peuvent vous aider.
Pour proposer un article ou un montage, cliquez ici
Environnement de test requis
Pour tester notre transmetteur LoRa REYAX RYLR890, il faut:
- utiliser strings management for ESP32forth
- utiliser une version ESP32Forth avec accès au port UART2, voir Installation du port série UART2
- câbler le transmetteur LoRa REYAX RYLR890 comme suit:
Préparer la communication avec le transmetteur LoRa REYAX RYLR890
Tous les programmeurs amenés à gérer le port UART2 définissent une zone mémoire qui va servir de tampon. Pour notre part, nous allons créer directement une variable alphanumérique:
128 string LoRaTX \ buffer ESP32 -> LoRa transmitter
Dans cet article, nous allons seulement procéder à des tests d'envoi de commandes vers le transmetteur LoRa REYAX RYLR890 et voir comment récupérer ce que ce même transmetteur renvoie. Il nous faut donc une autre variable alphanumérique pour la réception:
128 string LoRaRX \ buffer LoRa transmitter -> ESP32
Commençons par initialiser la transmission série vers le transmetteur LoRa. Ici, la vitesse est de 115200 bauds. C'est la vitesse de transmission par défaut du transmetteur LoRa:
Serial \ Select Serial vocabulary \ initialise Serial2 : Serial2.init ( -- ) #SERIAL2_RATE Serial2.begin ;
Pour notre commande de test vers le transmetteur LoRa, on sélectionne la fréquence de travail du transmetteur, ici 868.5 Mhz:
\ Setup LoRa Frequency : .band8685 ( -- ) s" AT+BAND=868500000" LoRaTX $! $0d LoRaTX c+$! $0a LoRaTX c+$! \ add CR LF code at end of command LoRaTX Serial2.write drop ;
Enfin, on définit un mot permettant de récupérer la réponse du transmetteur LoRa:
\ input from LoRa transmitter : LoRaInput ( -- n ) Serial2.available dup if LoRaRX maxlen$ nip Serial2.readBytes LoRaRX drop cell - ! then ;
Le mot LoRaInput
teste si une transmission par liaison série
a été reçue depuis le port série UART2:
- s'il n'y a pas de réception, renvoie 0
- s'il a des caractères, stocke ces caractères dans la chaîne alphanumérique
LoRaRX
et met à jour la taille de cette chaîne.
Exemple de transmission et réception:
Serial2.init .band8685 LoRaInput
Voici ce que donne un dump mémoire de LoRaRX
:
LoRaRX dump --addr--- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ------chars----- 3FFF-87A0 05 00 00 00 2B 4F 4B 0D 0A 31 0D 0A 2B 4F 4B 0D ....+OK..1..+OK.
Si on exécute LoRaRX
, on récupère l'adresse et surtout la longueur de tous
les caractères reçus, incluant les caractères CR+LF ($0d $0a). Pour ne gérer que les caractères
strictement compris dans l'intervalle [0..0A..Za..z], il faut diminuer la taille de la chaine
de deux unités:
: LoRaType ( -- ) LoRaRX dup 0 > if 2 - type else 2drop then ; LoRaType \ display: +OK
Ici, l'exécution de LoRaType
affiche +OK qui est la réponse
à notre commande de test AT+BAND=868500000.
Dans l'article suivant, nous allons voir comment gérer toutes les commandes de paramétrage de notre transmetteur LoRa REYAX RYLR890.
Listing complet: Communication with LoRa transmitter thru UART2
Legal: site web personnel sans commerce / personal site without seling