Outils pour utilisateurs

Outils du site


lorawan

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
lorawan [2019/01/30 09:10] – créée bigMaxlorawan [2020/12/01 17:40] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. serge
Ligne 10: Ligne 10:
 LoRaWAN est un protocole de communication réseau.  LoRaWAN est un protocole de communication réseau. 
  
 +  * Duty Cycle
 +  * "Low SF anti spam"
 +  * Class A (baseline), B (beacon) et C (continuous)
 +  * ABP vs OTAA : [[ https://www.thethingsnetwork.org/forum/t/what-is-the-difference-between-otaa-and-abp-devices/2723 ]]
 +
 +cf Description des couches du protocoles LoRaWAN : [[ https://www.rfwireless-world.com/Tutorials/LoRa-protocol-stack.html ]]
 +\\
 +cf Description de la couche MAC : [[ https://www.rfwireless-world.com/Tutorials/LoRaWAN-MAC-layer-inside.html ]]
 ===== LoRaWAN une infrastructure réseau ===== ===== LoRaWAN une infrastructure réseau =====
 Des gateways, des serveurs d'applications, ... Des gateways, des serveurs d'applications, ...
 +cf [[ https://www.thethingsnetwork.org/docs/lorawan/ ]]
  
 ===== Implémentation du protocole ===== ===== Implémentation du protocole =====
-il existe donc différente implémentation+il existe différentes implémentations du protocole LoRaWAN.
  
-===== Ressources ===== +==== Protocole de communication entre les gateways et les routers TTN ==== 
-La documentation fournit par the TTN est interessante : [[ https://www.thethingsnetwork.org/docs/ | The TTN doc ]]. On y trouve notament le framework Arduino pour envoyer des messages via LoRaWAN en quelques lignes de code [[ https://www.thethingsnetwork.org/docs/devices/arduino/ | Framework Arduino LoRaWAN ]].+cf [[ https://www.thethingsnetwork.org/docs/gateways/start/connection.html ]] 
 +D'après TTN : Semtech à conçu le premier protocole de communication entre les gateways et un backend le "Semtech UDP protocol". Ce protocole n'est pas sécurisé, ne permet pas de s'assurer de l'identité d'une gateway, ou que le message reçu n'a pas été altéré. Pour palier à ces problèmes, TTN à conçu un nouveau protocole le "Gateway connector protocol"Néanmoins, vu la simplicité d'utilisation du protocol historique de Semtech, il est assez répandu (toujours d'après TTN).
  
-Guides pour construire une gateway LoRaWAN :  +==== Arduino ==== 
-  * [[ https://github.com/ttn-zh/ic880a-gateway ]] +Pour Arduino, il existe des bibliothèques qui implémente le protocole. 
-  * [[ https://www.thethingsnetwork.org/docs/gateways/start/build.html ]] +  * Un portage de la bibliothèque LMIC (LoraMAC-in-C) d'IBM : [[ https://github.com/matthijskooijman/arduino-lmic | Arduino-LMIC ]] 
-  * [[ https://www.rs-online.com/designspark/building-a-raspberry-pi-powered-lorawan-gateway-cn-de-fr ]] +  * Une adaptation "user friendly" de LMIC : [[ https://github.com/mcci-catena/arduino-lorawan | Arduino-LoRaWAN ]]
-  * [[ https://frightanic.com/iot/build-a-lorawan-gateway-for-the-things-network/ ]]+
  
-Liste des gateway LoRaWAN existantes : [[ https://www.thethingsnetwork.org/docs/gateways/start/list.html ]]+Toutes les bibliothèques ne supportent pas tous les circuits du marché. Avant d'acheter un circuit compatible LoRaWAN, il faut vérifier qu'il existe une bibliothèque capable de le piloter, ou bien il faudra implémenter un driver pour le circuit.
  
-Code Arduino pour une Single channel LoRaWAN Gateway basé sur un ESP32 : https://github.com/things4u/ESP-1ch-Gateway-v5.0+==== TTN LoRaWAN stack ==== 
 +TTN a développé une "stack". C'est un ensemble de services (serveurs) qui sont déployable sur un réseau privés et qui permettent de recevoir, de router, et d'administrer des données provenant de gateway LoRaWAN. cf [[ https://github.com/TheThingsNetwork/lorawan-stack ]] 
 +\\ \\ 
 +Documentation pour déployer une stack LoRaWAN ttn privé avec docker : [[ https://www.thethingsnetwork.org/article/setting-up-a-private-routing-environment ]]
  
 ===== Authentification / Sécurité ===== ===== Authentification / Sécurité =====
 +La communication radio est sujette à différentes menaces. Voici un document édité par trendmicro qui classes les attaques possibles en 5 classes : 
 +{{ media_12:radio-communication-threats-trendmicro.jpg?nolink&600 |}}
 +Et voici des contre mesures envisageables :
 +{{ media_12:radio-communication-threats-response-trendmicro.png?nolink&600 |}}
 +
   * [[ https://lora-alliance.org/sites/default/files/2018-04/lora_alliance_security_whitepaper.pdf ]]   * [[ https://lora-alliance.org/sites/default/files/2018-04/lora_alliance_security_whitepaper.pdf ]]
  
Ligne 40: Ligne 57:
 Dans l'architecture TTN actuelle, un émetteur LoRa n'a pas accès à Internet. Il envoie un message avec une structure de données spécifiques pour une gateway TTN LoRaWAN. L'émetteur n'utilise pas d'autre protocole de communication supplémentaire. La gateway transmet ensuite ce message à un serveur TTN via Internet qui se charge de le dédupliquer et le router vers une "application". L'application par défaut publie ce message au format json dans le topic  Dans l'architecture TTN actuelle, un émetteur LoRa n'a pas accès à Internet. Il envoie un message avec une structure de données spécifiques pour une gateway TTN LoRaWAN. L'émetteur n'utilise pas d'autre protocole de communication supplémentaire. La gateway transmet ensuite ce message à un serveur TTN via Internet qui se charge de le dédupliquer et le router vers une "application". L'application par défaut publie ce message au format json dans le topic 
 dédié d'un broker MQTT de TTN. dédié d'un broker MQTT de TTN.
 +
 +===== Technologie =====
 +  * LoRaWAN ADR (Adaptive Data Rate) : [[ https://www.thethingsnetwork.org/docs/lorawan/adr.html ]]
  
 ==== TTN workflow ==== ==== TTN workflow ====
Ligne 56: Ligne 76:
 </WRAP> </WRAP>
  
 +===== Cayenne Low Power Paylod =====
 +CayenneLPP est une bibliothèque largement supporté qui permet de transporter des messages avec des tailles les plus réduites possibles. cf [[ https://mydevices.com/cayenne/docs/lora/#lora-cayenne-low-power-payload ]]
 +
 +===== Ressources =====
 +La documentation fournit par the TTN est interessante : [[ https://www.thethingsnetwork.org/docs/ | The TTN doc ]]. On y trouve notament le framework Arduino pour envoyer des messages via LoRaWAN en quelques lignes de code : [[ https://www.thethingsnetwork.org/docs/devices/arduino/ | Framework Arduino LoRaWAN ]].
 +
 +Guides pour construire une gateway LoRaWAN : 
 +  * [[ https://github.com/ttn-zh/ic880a-gateway ]]
 +  * [[ https://www.thethingsnetwork.org/docs/gateways/start/build.html ]]
 +  * [[ https://www.rs-online.com/designspark/building-a-raspberry-pi-powered-lorawan-gateway-cn-de-fr ]]
 +  * [[ https://frightanic.com/iot/build-a-lorawan-gateway-for-the-things-network/ ]]
 +
 +Liste des gateway LoRaWAN existantes : [[ https://www.thethingsnetwork.org/docs/gateways/start/list.html ]]
 +
 +Code Arduino pour une Single channel LoRaWAN Gateway basé sur un ESP32 : https://github.com/things4u/ESP-1ch-Gateway-v5.0
  
-{{tag>documentation protocole_reseau theorie_fondamentale sans_fil}}+{{tag>documentation protocole_reseau theorie_fondamentale sans_fil max}}
lorawan.txt · Dernière modification : 2020/12/01 17:40 de serge