[TUTORIEL] LoRaWAN et ChisteraPi

Forum de support et échanges autour du Chistera-Pi

[TUTORIEL] LoRaWAN et ChisteraPi

Message non lude NicolasGonzalez » Ven 21 Oct 2016 15:11

chistera-pi-2.jpg
chistera-pi-2.jpg (66.36 Kio) Vu 336 fois


La ChisteraPi en mode End-device

La ChisteraPi est une carte d'extension pour RaspberryPi qui permet de mettre en oeuvre de nombreux protocoles grâce à ses deux transmetteurs qui permettent d'émettre dans les deux bandes ISM (433MHz et 868MHz).

Dans ce tutoriel nous avons juste besoin d'utiliser le RFM95 et la librairie qui gère le LoRaWAN.

Avant de commencer vous pouvez vous référer à ce tuto pour configurer le RaspberryPi, le mettre à jour et installer la librairie wiringpi.
http://forum.snootlab.com/viewtopic.php?f=59&t=1512

Dans ce tuto vous pouvez également activer le SPI qui est le bus de communication avec le transmetteur.

Une fois que vous êtes prêt il vous faut récupérer les sources sur notre github :
https://github.com/Snootlab/lmic_chisterapi

Code: Tout sélectionner
git clone https://github.com/Snootlab/lmic_chisterapi.git


Dans le dossier src vous avez un code d'exemple qui vous montre comment utiliser la librairie :

Code: Tout sélectionner
nano src/OTAA_JoinAndTransmit.c


Pour tester le code il suffit de se mettre dans la racine du dépôt et de faire :
Code: Tout sélectionner
make


Cette opération compile l'exemple en un binaire et l'on peut directement l'exécuter comme ceci :
Code: Tout sélectionner
sudo ./OTAA_JoinAndTransmit


Dans le code d'exemple on peut voir qu'il y a deux identifiants et une clé de chiffrement :
Code: Tout sélectionner
static const u1_t APPEUI[8]  = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static const u1_t DEVEUI[8]  = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static const u1_t DEVKEY[16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };


Ces deux identifiants (AppEUI et DevEUI) et la clé de chiffrement (DevKEY) doivent être enregistrés chez votre opérateur pour que votre objet puisse rejoindre le réseau.

/!\ Attention : AppEUI et DevEUI sont souvent inversés entre la librairie et l'interface web à cause de l'endianness.
C'est à dire que si vous mettez un identifiant 123456789abcdef0 dans la page web de votre opérateur il faut mettre ceci dans votre code source :
Code: Tout sélectionner
static const u1_t APPEUI[8]  = { 0xf0, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12 };


La ChisteraPi en mode Gateway

Il est possible d'utiliser la ChisteraPi pour faire une gateway c'est à dire pour remonter des informations à destination d'un serveur de réseau.

Quelle est la différence entre une gateway que l'on trouve en vente pour 200€ - 400€ et la ChisteraPi ?
Une passerelle qui coûte cher permet d'écouter sur plusieurs canaux, c'est à dire qu'elle a la possibilité de dialoguer avec beaucoup plus d'objets. Mais avec une ChisteraPi il est possible de dialoguer avec plusieurs dizaines d'objets donc nous avons de la marge :)

La mise en oeuvre est très facile car tout est déjà fait !
Voici le projet qui permet cela : https://github.com/tftelkamp/single_chan_pkt_fwd

Il y a juste quelques modifications à faire pour l'adapter à une ChisteraPi :
Remplacer ça :
Code: Tout sélectionner
int ssPin = 6;

Par ça :
Code: Tout sélectionner
int ssPin = 10;


Et ne pas oublier de changer l'IP de votre serveur de réseau :
Remplacer ça :
Code: Tout sélectionner
#define SERVER1 "54.72.145.119"    // The Things Network: croft.thethings.girovito.nl

Par ça :
Code: Tout sélectionner
#define SERVER1 "XX.XX.XX.XX"    // Votre serveur
NicolasGonzalez
 
Messages: 3
Inscription: Lun 10 Oct 2016 15:11

Re: [TUTORIEL] LoRaWAN et ChisteraPi

Message non lude Mongino » Jeu 3 Aoû 2017 14:48

Bonjour,
J'ai essayé de réaliser la gateway mais sans succès... La gateway semble fonctionnée, mais je ne vois aucun capteur.
Avez vous des pistes de débogage ?

Merci
Mongino
 
Messages: 1
Inscription: Jeu 3 Aoû 2017 14:44


Retourner vers Chistera-Pi

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron