LoRaGate-Projet-complet-Etude

LoRaGate (Projet complet) – partie 1 – l’étude

Bon … avant toute chose, je dois dire que je n’ai pas suivi de cursus dans l’électronique mais plutôt dans l’informatique et que la vie a fait que je me suis lancé dans ce domaine. Je n’ai donc pas les bases scolaires et je me défini plutôt comme autodidacte en la matière.

Du coup, si vous, vous êtes du métier et que je dis des bêtises ou qu’il y a des manquements ou améliorations à apporter, n’hésitez pas à le signaler en commentaire, je ne vous en voudrai pas.

Parce que c’est toujours plus simple de montrer les choses par l’exemple, je vais partir d’un produit qui devrait sortir (à l’issue des articles) sur la boutique LiXee. A savoir la LoRaGate

Click to rate this post!
[Total: 13 Average: 4.3]

 

Introduction au projet LoRaGate

Ce projet est un projet assez simple et permet de comprendre les bases sans trop rentrer dans la complexité technique. En effet, cet appareil sera un simple modem LoRaWAN permettant d’envoyer des commandes AT au travers d’une interface USB.

Comme il va être compliqué de tout condenser dans un seul article, il y aura une série de 1, 2, 3 ou 4 articles sur le sujet.

Voici toutes les étapes du projet que je vais tenter de détailler :

  • L’étude (permet de lancer le projet et de répertorier tous les besoins)
  • La conception (grâce à un outil de CAO, on lance la schématisation et le design de la carte électronique)
  • La réalisation (on affine le design, on optimise et on corrige ce qui ne va pas grâce à certains outils avant d’envoyer en production)
  • L’optimisation. On adapte l’antenne pour qu’elle résonne à la fréquence voulue

L’étude de la LoRaGate

A quoi sert la LoRaGate

La LoRaGate sera une passerelle/modem LoRaWAN permettant d’envoyer et recevoir des messages. Elle permettra donc de rendre votre box domotique (par exemple) compatible avec ce réseau destiné aux objets connectés.

Le protocole LoRa et le réseau LoRaWAN

Mais qu’est-ce que le LoRa / LoRaWAN ?

Comme d’habitude (vous commencez à me connaître), je ne vais pas entrer trop dans les détails. Si vous le souhaitez vous pouvez le faire en suivant le lien Wikipedia.

Premièrement, il faut distinguer le LoRa du LoRaWAN car ce n’est pas exactement la même chose et souvent, on les mélange par abus de langage.

La modulation

Le LoRa est une modulation de fréquence généralement sur la bande 868Mhz (en Europe) 915Mhz (au USA ou ceux qui utilisent la FCC) mais aussi récemment sur le 2.4Ghz

C’est une modulation qui a été développée par des frenchies (Cycléo) à la base !! (cocorico) puis rachetée par Semtech. C’est une modulation assez révolutionnaire (à mon sens) car elle permet de communiquer en dessous du niveau de bruit radio.

En effet, normalement, il est compliqué, voir impossible, de communiquer dans le bruit. Le niveau de bruit radio ambiant / interférence se situe généralement aux alentours de -90dBm. C’est comme si vous tentiez de discuter avec un ami avec la musique à fond. Difficile de communiquer. C’est un « peu » pareil avec la radio, soit c’est lié à beaucoup d’interférences, soit c’est lié à la distance. Ce bruit va constituer la limite des performances de votre conversation.

Spectrum_analyzer_display_noise_floor

D’ailleurs si vous regardez la sensibilité des modules radio bluetooth, zigbee, WiFi etc … vous verrez qu’ils ne descendent quasiment jamais en dessous du bruit, soit -100dBm max (en condition de laboratoire).

Voici donc la première innovation de la modulation et contrairement à une modulation classique qui possède 2 fréquences pour signaler les 1 et 0, le LoRa repose sur des sauts de fréquences qui représentent des groupes de bits.

modulation_lora

Et pour garantir l’intégrité des données, la modulation utilise le Spreading Factor (SF) qui va utiliser une signature du motif plus ou moins longue. Plus le motif est important, moins il y a de perte d’intégrité et plus on peut aller loin.

Spreading factor LoRa

Bien entendu, tous ces avantages entraînent forcément un inconvénient (quoi que…) qui est le débit. En effet, on ne peut pas tout avoir… Cette modulation n’est pas faite pour faire du débit mais pour aller loin.

data rate

Bon la technologie est complexe et il y aurait beaucoup à dire mais ce qu’il faut retenir c’est que :

  • Cette modulation LoRa permet de communiquer sur de longues distances (jusqu’à 15 Km environ)
  • Elle ne peut faire transiter que des messages très courts (51 octets utiles)

Le réseau LoRaWAN

Maintenant que l’on a vu la modulation de fréquence, qu’est-ce que le LoRaWAN.

Hé bien, le LoRaWAN est tout simplement un réseau qui permet d’interfacer les appareils qui communiquent en LoRa.

Alors pareil, difficile de synthétiser tout ça en quelques lignes mais ce qu’il faut retenir, c’est que le LoRaWAN rassemble une infrastructure plus ou moins complexe à mettre en place, permettant de traiter / décoder les informations remontées par les appareils LoRa pour les rendre exploitables.

lorawan_network

Il existe 2 types d’infrastructures possible en LoRaWAN :

  • La publique qui est en quelque sorte l’opérateur (Orange, Objenious, The Things Network(TTN), etc… )
  • La privée qui peut être développée à la maison (whouaouuuu !!)

Pour l’opérateur, c’est assez simple. Il faut prendre un abonnement et vous pourrez (sous réserve de couverture) récupérer les informations de votre appareil LoRa pour les rediriger vers votre serveur d’exploitation de données. En effet, ils mettent à disposition des API ou « routage » vous permettant de rediriger la donnée brute vers votre serveur personnel.

Pour le réseau privé, il vous faudra :

  • Une passerelle LoRaWAN pour récupérer la donnée brute et assurer l’intégrité des données. Il existe beaucoup de passerelles plus ou moins professionnelles. Vous pouvez les retrouver en partie ici : https://www.thethingsnetwork.org/docs/gateways/start/list.html
  • Un/des serveur(s) pour stocker les données et la rediriger vers votre service de traitement de l’information.

Bien entendu, ce réseau LoRaWAN est sécurisé de bout en bout et vous serez le seul à pouvoir interpréter les données. (sachant que le risque de piratage ne peut pas être égal à zéro)

Chaque objet souhaitant se connecter sur le réseau devra choisir sa « classe » et son mode d’authentification (OTAA – Over The Air ou ABP – Activation By Personalization) et ensuite, renseigner, selon son mode d’authentification, ses identifiants:

Pour OTAA : DEVEUI, APPEUI, APPKEY
Pour ABP :  DEVADDR, NWSKEY, APPSKEY

Pour la classe, il en existe 3 (A, B, C). Chacune utilise un mode de communication différent:

  • Class A : On envoie un message toutes les x minutes et on se met en écoute x secondes dans la foulée au cas où il y aurait 1 message à réceptionner. Ce mode, destiné aux objets sur pile permet de très peu consommé. (majorité du temps en veille)
  • Class B : Cette classe est une sorte de compromis entre la classe A et C. Elle utilise des « beacons » permettant une synchronisation entre le serveur et l’appareil. Du coup, l’appareil se mettra en écoute au moment ou le serveur enverra un message. Ce mode est encore très peu utilisé et incompatible avec les opérateurs publiques.
  • Class C : Dans ce mode, on est en écoute permanente de messages. On peut émettre toutes les X minutes (en respectant les normes et les temps d’occupation de la fréquence). Ce mode est destiné aux appareils alimentés.

Alors je sais, je survole de très haut tout ces concepts (et ça me perturbe parce que j’ai l’impression de rien dire) mais c’est tellement vaste … Bref voici les éléments essentiels de ce réseau que je trouve encore trop peu connu.

L’autre réseau IoT…

Dans la même catégorie, il existe aussi le réseau Frenchie Sigfox (cocorico bis) qui n’utilise pas du tout la même modulation et qui a l’inconvénient de ne fonctionner qu’en passant par un opérateur (mais ça changera…). Je développerai sans doute des produits sur ce réseau et je ne manquerai pas de vous en faire part.

Alors, l’autre énorme avantage que je n’ai pas cité plus haut de ces réseaux, c’est que les appareils ne consomment quasiment rien pour émettre leur message et du coup permet de créer des IoT sur pile (ou sans pile), très petit et qui durent dans le temps. Mais bon vu que ce projet, en particulier, est sur alimentation USB, ce point est moins important. (Mais sera la base des projets suivants ;))

Les besoins du projets

Alors pour réaliser ce projet, il y a 3 points importants :

L’alimentation

Il y a de grandes chances qu’il faille du 3.3VDC (souvent utilisé dans les microcontrôleurs). La LoRaGate sera branchée en USB (5VDC) donc il faudra une régulation de tension. Contrairement au WiFi gourmant, le LoRa devrait consommer 50 mA lors de l’émission (consommation max du coup)  donc la régulation n’aura pas besoin d’être dans la « puissance ».

Le driver USB-TTL

Pour faire communiquer la LoRaGate avec son hôte, il faut évidemment pouvoir transformer les signaux TTL vers l’USB et inversement. Et pour cela, il faut un pilote. J’en ai déjà testé quelques un lors de mes projets antérieurs et je pense que le pilote FTDI répondra au besoin et notamment sur la partie régulation 3.3VDC.

Avec ce pilote, on ne se trompe pas beaucoup, il fera le taff et sera fiable. Le seul inconvénient, c’est son prix mais comme il peut nous faire économiser la partie régulation, ça compense.

Le module Radio

Enfin le dernier élément, le module LoRa. Il existe pleins de solutions et de combinaisons pour dialoguer en LoRa mais pour ce projet, je souhaitais quelque chose de simple et « ready to play ». Après quelques recherches, je suis tombé sur ce module : le E78-868LN22S

Alors, il est assez cher mais il est vraiment prêt à l’emploi. Il suffit de lui envoyer des commandes AT pour le paramétrer et envoyer des messages. Comme un vulgaire SIM800L 😉

Conclusion

Bon, on va pas se le cacher, la partie 1, c’est la partie la plus pompeuse… beaucoup de théorie et du blabla technique. Pourtant, promis, j’essaie de faire le plus synthétique (quitte à faire d’énormes raccourcis). Malgré tout, c’est le passage indispensable.

Voilà ce qu’on a appris dans cette partie.

  • L’objectif du produit est assez clair. Passerelle ou Modem LoRaWAN pour box domotiques.
  • On comprend comment la modulation radio et le réseau fonctionne.
  • On a listé les besoins primaires pour concevoir le produit.

Dans la prochaine partie, on verra comment faire la schématique et le design du produit au travers d’Eagle CAD.

A bientôt.

EDIT : Le Modem LoRaGate est désormais disponible sur la boutique

Click to rate this post!
[Total: 13 Average: 4.3]

15 comments

  1. Salut

    j’ai pas trop compris ce que tu cherche à faire : un module pour end device ou une pseudo gateway ?
    si c’est pour une gateway tu ne pars pas sur le bon chip (si tu veux respecter le standard lorawan)

    De plus la limite de 51 octets ne concerne que les faible vitesse (SF10-11-12), tu passes à 115 pour SF8 et 222 pour SF7-8

    1. Bonjour,
      Je cherche à faire un modem LoRaWAN tout simplement. Donc considéré comme end device. C’est vrai pour le SF7-8 mais en pratique on se limite à 51 octets car si ADR et donc SF dynamique, il faut toujours partir du pire pour la compatibilité.

      Fred

  2. Ok donc un end device, mais tu parles de commande AT via USB donc pas prévu que ce soit low power ?
    tu as déjà décidé de ton modèle de gateway ?

    murata propose un modem lorawan ( CMWX1ZZABZ-093)
    c’est un peu cher mais ya tout et la sensi est là !
    et bonus, t’as une carte d’éval chez ST

    1. Non pas de low power vu qu’il sera alimenté par l’USB. Cependant ce module a un mode low power.
      Je connais bien le murata et je l’ai testé mais pas vraiment utile pour ce projet.

    1. Attention, la LoRaGate est vue comme un device sur le réseau LoRaWAN. Elle permet de rendre une box compatible avec le réseau mais elle ne joue pas le rôle de passerelle local.

  3. Bonjour
    LoRaGATE, je me suis dit voilà une nouvelle réalisation de passerelle (Gateway) !!
    En fait c’est une réalisation de dévice avec un module récent.
    Les ayant vu apparaître dans les boutiques CDSENET et CDEBYTE j’en ai fait venir et ai un peu joué avec.
    Par rapport aux réalisation utilisant un transceiver géré en SPI on a ici l’avantage d’un jeu de commandes AT. C’est plus simple….. mais, revers de la médaille, on est limité aux fonctionnalités offertes par ce jeu de commandes AT et dans mon cas particulier c’est pénalisant.
    N’ayant pas dans mon secteur de vraie Gateway TTN active je fais mes tests avec une Gateway TTN personnelle simplifiée basée sur un ESP32 + LoRa et le code ‘ESP-1ch-Gateway’ de Things4you.
    Cette passerelle simplifiée n’écoute qu’un seul canal sur les 8 possibles et travaille avec un facteur d’étalement unique.
    Je ne vois pas dans les commandes AT des E78-868 la possibilité de réduire le fonctionnement à un canal (une fréquence unique), par contre il y a bien la possibilité de figer le facteur d’étalement après avoir désactivé l’étalement adaptatif. (ADR)
    Quand on travaille avec un module SPI et l’une des librairies disponibles (LMIC, TinyLoRa)…on a davantage de possibilités de gestion du device LoRaWAN

    Je retient donc l’idée que c’est une puce très intéressante et facile à manier …à condition d’être proche d’une vraie Gateway TTN (complète), elle est faite pour ça et semble le faire bien.

    Cdt

    1. Bien résumé… Attention les passerelles sur un seul canal sont largement déconseillés en LoRaWAN car ça remet en cause pas mal de choses dans le fonctionnement. Ce qui serait idéal c’est de mettre en place un nouveau protocole spécifique pour la domotique avec de la modulation LoRa et avec une structure plus simple mais pas évident pour la démocratisation…

  4. Bonjour,
    Très intéressant, pour voir un peu plus loin pensez vous qu’il serait possible de « connecter » un linky à la box domotique par l’intermédiaire d’un module Lora et cerise sur le gâteau de l’alimenter également via la prise TIC du linky vu la faible conso ?

    J’ai aperçu des produits commerciaux Lora pour cet usage, pour le particulier en version DIY est ce réalisable ?

  5. Essais en cours du module E78 dans une configuration ‘basse consommation’
    cf message #10 sur ce fil du forum Arduino :
    https://forum.arduino.cc/index.php?topic=612818.0

    En gérant le module sous Arduino avec une carte Pro MIni 8MHz 3V3 un poil modifiée (led alim et régulateur dessoudés) et en alimentant l’ensemble en 3,2V (batterie LiFePO4) j’arrive à un courant de veille de 7,3µA pour l’ensemble !!

    Un problème subsiste lié au réveil de E78 : 50% des trames envoyées ont une payload vide 🙁
    Echange en cours avec EBYTE pour avoir des infos sur la gestion du sommeil de ce module.

    Autre point : le module E78 alterne logiquement 3 fréquences en émission , ma mini-passerelle provisoire ne relaie qu’une des 3 fréquences.

    1. Merci pour le retour !

      Normalement il y a 3 fréquences pour le join ensuite c’est la passerelle qui retourne les fréquences utilisées et compatibles. Ensuite, il faut vérifier si tu est bien en mode dutycycle qui est censé gérer les sauts de fréquences en fonction de leur utilisation à la norme.

      Fred

  6. Oui mais pour l’instant je fais encore avec les particularités de ma minipasserelle monocanal simplifiée, déconseillée mais tolérée sur TTN.+Device E78 en ABP, pas besoin de ‘join’
    En attendant de jouer dans la cour des grands, ça permet déjà de se faire la main et des données sont déjà exploitables sur ThingSpeak

    1. Le changement d version de TTN (passage graduel en V3 au cours de l’année) valaisser sur le carreau cerataine solutions satisfaisantes jusque là pour les devices.
      J’ai posé la question à un contact chez Ebyte pour savoir :
      1) si les E78 vendus actuellement sont totalement compatibles avec la V3 de TTN
      2) si les E78 vendus actuellement sont flashables (par SWD) ave cun eventuel firmware de mise à jour
      En attente de réponse d’Ebyte je ne commande plus de E78

Répondre à digaboy Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.