Outils pour utilisateurs

Outils du site


e45-ttl-100

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
e45-ttl-100 [2019/01/16 21:59] – [Fabrication d'un kit de mesure du signal LoRa] bigMaxe45-ttl-100 [2020/10/29 13:58] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. serge
Ligne 1: Ligne 1:
-====== Le transceiver (émetteur/récepteur) LoRa E45-TTL-100 ======+====== Le modem LoRa E45-TTL-100 ====== 
 +<WRAP center round important 60%> 
 +Ce device n'est pas compatible avec LoRaWAN. 
 +</WRAP> 
 + 
 +  * "Transceiver" : émetteur / récepteur
   * Basé sur le SX1276 de semtech.   * Basé sur le SX1276 de semtech.
   * "E32-868T20D"   * "E32-868T20D"
Ligne 8: Ligne 13:
   * Consommation un peu trop élever pour être alimenté par le 3.3V de l'ESP32.   * Consommation un peu trop élever pour être alimenté par le 3.3V de l'ESP32.
  
-===== Fabrication d'un kit de mesure du signal LoRa ===== +===== Fabrication d'un kit de mesure du signal radio LoRa sur la fréquence 868 MHz ===== 
-2 Modules : +[[ max_lora_signal_test_kit | Une page est dédié ]]
-  * Une module mobile qui emet des messages et mesure la qualité du signal et le débit (ou meilleut spread factor) utilisable. +
-  * Une simili gateway fixe qui répond au message LoRa+
  
 +===== Incompatible avec LoRaWAN =====
 +Le e45-ttl-100 n'est pas compatible avec LoRaWAN.
  
-Algorithme de négociation du spread factor : +Tous les device LoRa ne semble pas compatible LoRaWANcf [[ https://github.com/sandeepmistry/arduino-LoRa/issues/203 ]]
-  * Si pas de méssage valide depuis linkDeadTimeout, on écoute sur le plus gros SF. +La bibliothèque [[ https://github.com/sandeepmistry/arduino-LoRa ]] est codé pour dialoguer avec le protocole sérié SPI. Or le e45-ttl-100 communique avec le protocole série UART.
-  * Si validMessageCountSpeedIncreaseThreshold messages séquentielle valides reçu alors on tente d'augmenter le SF +
-  * Si on a reçu speedIncreaseRequestCount demandes séquentielles valides de changement de SF on change de SF. +
-  * Si on a pas reçu de message depuis tooFastTimeout on décrémente le SF+
-  * Après un retour à la normal suite à un tooFastTimeout on ne retente pas l'augmentation de SF avant un temps waitBeforeSpeedIncreaseInterval +
-  * La gateway acquitte les méssages en retournant le message avec le numéro de sequence incrémenté. +
-  * Tant qu'un message n'est pas acquitté il est retransmis. +
-  * linkDeadTimeout > 2 x tooFastTimeout +
-  * tooFastTimeout dépend du SF tel que tooFastTimeout > 2 x messageTransmissionTime +
-  * messageTransmissionTime = messageSize / SFdebit +
-  * waitBeforeSpeedIncreaseInterval > 10 * messageTransmissionTime ?+
  
-Contenu des messages : 
-  * indicateur de session 
-  * indicateur de sequence 
-  * SF demandé 
- 
- 
-Code : 
- 
-SPEED_INC_VALID_MSG_COUNT =  
-SPEED_INC_REQ_COUNT =  
-TOO_FAST_TIMEOUT =  
-LINK_DEAD_TIMEOUT =  
- 
- 
-String sessionId = random; 
-int seqId = 0; 
-byte requestedSpreadFactor = 0; 
-int sequentialValidMessages = 0; 
-int speedIncreaseReqCount = 0; 
- 
-long lastValidMessageReceivedTimestamp = now(); 
- 
-while(lastValidMessageReceivedTimestamp + LINK_DEAD_TIMEOUT > now()) { 
-  message = sessionId + "_" + seqId + "_"; 
-  if (sequentialValidMessages > SPEED_INC_VALID_MSG_COUNT) { 
-    message = message + (requestedSpreadFactor + 1); 
-  } 
- 
-  sendMessage(message); 
-  long lastMessageSentTimestamp = now(); 
-  while (lastMessageSentTimestamp + TOO_FAST_TIMEOUT > now()) { 
-    String message = receiveMessage(); 
-    int msgSessionId = message.substring(); 
-    int msgSeqId = message.substring(); 
-     
-    if (msgSessionId == sessionId && msgSeqId == seqId + 1) { 
-      sequentialValidMessages += 1; 
-      lastValidMessageReceivedTimestamp = now(); 
-      seqId = msgSeqId + 1; 
-       
-      int msgRequestedSpreadFactor = message.substring(); 
-      if (msgRequestedSpreadFactor) { 
-        speedIncreaseReqCount += 1; 
-         
-        if (speedIncreaseReqCount > SPEED_INC_REQ_COUNT) 
-      } 
-    } else { 
-      sequentialValidMessages = 0; 
-    } 
-  } 
-   
-} 
 ===== Ressources ===== ===== Ressources =====
-  * {{ ::e45-ttl-100_datasheet_en_v1.0.pdf | Datasheet du E45-TTL-100 }} +  * {{ media_03:e45-ttl-100_datasheet_en_v1.0.pdf | Datasheet du E45-TTL-100 }} 
-  * {{ ::lora_e32-868t20d_usermanual_en_v1.30.pdf | Datasheet de la game des E32 devices}} +  * {{ media_08:lora_e32-868t20d_usermanual_en_v1.30.pdf | Datasheet de la game des E32 devices}} 
   * [[ http://www.cdebyte.net/e45-ttl-100.html | site web du E45-TTL-100 ]]   * [[ http://www.cdebyte.net/e45-ttl-100.html | site web du E45-TTL-100 ]]
   * Quelques billets de blog : [[ https://quadmeup.com/tag/e45-ttl-100/ ]]   * Quelques billets de blog : [[ https://quadmeup.com/tag/e45-ttl-100/ ]]
 +
 +
 +{{tag>périphérique sans_fil max}}
e45-ttl-100.1547675993.txt.gz · Dernière modification : 2019/01/16 21:59 de bigMax