Configuration de la passerelle LoraWan


10

J'essaie de construire un réseau LoRaWan en utilisant un capteur programmable avec Arduino et un bouclier Dragino Lora .

J'ai trouvé de nombreuses solutions pour créer une passerelle, y compris un Raspberry Pi connecté à un autre Dragino Lora Shield ou à iC880A , et les données que je recevrai seront envoyées sur un serveur dans le cloud. Je suis très confus quant à la programmation de la passerelle.

  • Dois-je lui dire de se connecter au nœud et au serveur? Ou reçoit-il automatiquement les données?
  • Et puis-je programmer le serveur pour qu'il se connecte à la passerelle ou directement aux nœuds?

2
Bienvenue sur le site. Pouvez-vous ajouter quelques informations sur les modèles d'appareils que vous utilisez et ajouter plus de détails sur votre cas d'utilisation? Cela nous aidera à vous donner de meilleures réponses.
Helmar

Salut et merci! Je suis un débutant dans les réseaux Iot, j'ai donc créé un nœud en utilisant un arduino uno, un capteur de température et un Dragino Lora Shield, j'essaie d'envoyer la date à un serveur alors j'ai essayé de créer une passerelle LoraWan en utilisant une framboise pi, j'ai fait quelques recherches sur la façon de le transformer en une passerelle LoraWan et j'ai découvert que je peux utiliser un autre Dragino Lora Shield ou avec un module iC880A, et j'ai trouvé le code source pour le faire, mais je suis toujours confus sur la façon de connecter le passerelle vers le nœud, et comment envoyer les données du nœud vers la passerelle vers le serveur ?? Merci d'avance !!
Mohamed Achref Dridi

Réponses:


11

Dans un réseau LoRaWAN typique, les passerelles sont des appareils stupides, comme l'explique la LoRa Alliance :

L'architecture de réseau LoRaWAN est généralement présentée dans une topologie étoile par étoiles dans laquelle les passerelles sont un pont transparent reliant les messages entre les terminaux et un serveur de réseau central dans le backend.

Ainsi, une passerelle doit uniquement être configurée pour se connecter à un serveur réseau, tel que le réseau The Things Network ouvert . C'est tout.

Les passerelles sont souvent appelées "redirecteurs de paquets". En tant que telles, les passerelles font exactement cela: elles transfèrent tous les paquets LoRaWAN reçus à un serveur réseau (quel que soit le nœud qui les a envoyées), et elles transmettent tout ce qui est commandé par le serveur réseau. Par conséquent, les nœuds (terminaux) ne se connectent pas à une passerelle ; au lieu de cela, ils transmettent simplement et espèrent qu'une ou plusieurs passerelles reçoivent leur transmission et la transmettent au serveur de réseau qui connaît le nœud. (Les passerelles ne peuvent pas lire les données chiffrées qu'elles transfèrent.)

Pour connecter des nœuds au réseau, ils sont "activés" en utilisant l'une des deux options :

  • Activation en direct (OTAA)

    Tout d'abord, à l'aide d'un site Web ou d'une API, chaque nouveau nœud est enregistré sur le serveur réseau à l'aide de son appareil unique EUI ( DevEUI). Il obtient ensuite un identifiant d'application publique ( AppEUI) et une clé d'application secrète ( AppKey). Ces trois valeurs sont programmées dans le nœud.

    Ensuite, lorsque vous êtes prêt à envoyer pour la première fois, les valeurs sont utilisées par le nœud pour créer et transmettre une demande de jointure LoRaWAN. Si une telle demande est reçue par une ou plusieurs passerelles, elle est transmise au serveur de réseau qui, s'il est approuvé, indiquera à une passerelle de transmettre une acceptation de jointure. S'il est reçu par le nœud, cela donne au nœud une adresse de périphérique public ( DevAddr), une clé de session réseau secrète ( NwkSKey) et une clé de session d'application secrète ( AppSKey).

    Les valeurs déterminées à partir de la jointure acceptée sont utilisées chaque fois que le nœud a besoin de transmettre des données réelles (avec un compteur de sécurité qui commence à zéro à chaque jointure). L'activation est valide tant que le nœud le garde en mémoire (et que les compteurs de sécurité n'ont pas été épuisés), généralement pendant plusieurs mois, voire des années. En cas de perte, un nœud peut envoyer une nouvelle demande de jointure et obtenir de nouveaux secrets.

  • Activation par personnalisation (ABP)

    Ici, lors de l'enregistrement à l'aide d'un site Web ou d'une API, le nœud reçoit immédiatement une adresse d'appareil ( DevAddr), une clé de session réseau secrète ( NwkSKey) et une clé de session d'application secrète ( AppSKey), qui sont programmées dans le nœud et ne changent jamais. Le nœud n'a pas besoin d'envoyer d'abord une demande de jointure avant de pouvoir commencer à envoyer des données, mais il faut veiller à ce que les compteurs de sécurité ne soient pas perdus. De plus, les clés sont spécifiques à un réseau donné; APB rend difficile (voire impossible) le déplacement des nœuds vers un autre fournisseur de réseau.


1
Certaines passerelles spéciales incluent un serveur de réseau LoRaWAN et peuvent agir en tant que réseaux autonomes. Mais la plupart doivent être connectés à un serveur réseau externe. J'ai supprimé ma réponse qui n'était pas assez claire sur ce point.
Sylvain

0

La réponse d'Arjan est bonne. Technique. Je voulais fournir une réponse de saveur différente pour aider ceux qui sont nouveaux et qui ont du mal à rassembler l'image en ce qui concerne les passerelles et la façon dont les paquets se déplacent d'avant en arrière.

Analogie...

You > Letter > Mailbox > Mailman > Post Office Dist > Recipient

|----------------- TX -------------------|

Node > Packet > Transmission > Gateway > Network Server > Application

|----------------- RX -------------------|

Node < Packet < Transmission < Gateway < Network Server < Application

La lettre / le paquet a une adresse. Le facteur / passerelle récupère la lettre dans votre boîte aux lettres ou dans la boîte aux lettres dans laquelle vous avez déposé votre lettre. Elle est gérée jusqu'au destinataire. Si l'adresse est incorrecte, elle n'arrivera pas et vous devriez en être informé. Le destinataire peut vous renvoyer une lettre via le même système.

Que vous utilisiez le réseau The Things Network ou que vous essayiez de créer votre propre serveur privé à l'aide de quelque chose comme LoRaServer, vous aurez besoin d'une passerelle à portée de votre nœud / mote / terminal pour transmettre des messages d'avant en arrière. Considérez les différentes clés dans le code du nœud comme les adresses sur la lettre dans l'analogie.

Vous pouvez déterminer s'il y a déjà une passerelle TTN dans votre région sur leur page de carte et s'il y en a une à portée de votre nœud, vos messages devraient atteindre votre TTN (en supposant que vous avez enregistré et appliqué les clés à votre nœud). S'il n'y a pas de passerelle à portée de main, vous pouvez créer la vôtre. Il existe de nombreuses options pour ce faire.

En ce qui concerne la configuration de la passerelle, selon la bibliothèque que vous choisissez, il vous suffit généralement de configurer certains paramètres dans le code source ou dans un fichier global_conf.json ou local_conf.json.

Voici un exemple de bricolage avec un RFM9X (basé sur SX1276) et un RPI3 B + utilisant single_chan_pkt_fwdqui ne fournira pas de réponses ... gardez à l'esprit que c'est juste pour bricoler / tester. Le transitaire et les exemples global_conf.json ci-dessous ne sont pas plug-n-play et ne doivent pas être utilisés pour une mise en réseau LoRaWan appropriée. Une passerelle conforme dispose de 3 radios et peut traiter plusieurs canaux et envoyer / recevoir en même temps. Cet exemple est juste reçu du nœud sur un seul canal et n'est pas très fiable mais présente une configuration. Chacune des valeurs dépend du matériel que vous utilisez et de l'endroit où vous vous trouvez ... ou de l'emplacement de la passerelle, comme US, EU, etc ... convient à tous. Différentes bibliothèques ont généralement plus d'options de configuration pour plusieurs radios, canaux, etc ... juste pour info.

{
  "SX127x_conf": // depending on your hardware/radio this could be something like sx1301..., sx127x...., etc.. 
  {
    "freq": 903000000, // depending on whether US (900 range), EU (800 range) or other...
    "spread_factor": 7, // look this up
    "pin_nss": 10, // wiringpi value = physical pin #24
    "pin_dio0": 5, // wiringpi value = physical pin #18
    "pin_rst": 21 // wiringpi value = physical pin #29
  },
  "gateway_conf":
  {
    "ref_latitude": 0.0, 
    "ref_longitude": 0.0,
    "ref_altitude": 2,

    "name": "WHATEVER NAME",
    "email": "WHATEVER@EMAIL.TLD",
    "desc": "WHATEVER DESC",

    "servers":
    [
      {
        "address": "localhost", // this one is private so localhost, but TTN lookup address
        "port": 1700, // this one is private so localhost, but TTN lookup port
        "enabled": true
      } // you could add more... say you have a private one and TTN 
    ]
  }
}

Disons que vous construisez un nœud avec un périphérique Arduino et du code. Et vous utilisez quelque chose comme la bibliothèque LMIC-Arduino et un exemple d'esquisse. Vous devez d'abord déterminer en fonction du matériel de l'appareil comment configurer le pinmap pour que l'appareil fonctionne même. Ensuite, si vous allez utiliser TTN, vous suivez l'un des nombreux guides pour vous inscrire et obtenir les clés nécessaires que vous mettez dans le code d'esquisse. Vous devez également vous assurer que vous transmettez sur la fréquence appropriée et autres ... pour vous aligner avec la passerelle de votre région.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.