Gateway LoraWan rpi0 - ic880a
introduction
Dans mes activités de bricolage j'ai eu envie d'explorer la technologie Lora et la couche réseau qui lui est associé, LoraWan.
Cette technologie permets de déployer des capteurs consommant peu de ressource électrique et elle a la particularité de ne pas obligatoirement nécessiter la mise en place d'un réseau.
Il existe un réseau ouvert The Things Network une sorte d'internet des objets dont vous trouverez ici une description.
Toutefois il faut avoir à proximité de chez soit une passerelle, n'ayant pas cette passerelle à proximité de chez moi j'ai donc dans un premier temps construit celle-ci.
Ma première passerelle ( Gateway ) fut contruite à partir d'un Rpi3B+ et d'une carte ic880a
J'ai pour cela suivi les instructions du wiki de la communauté TTN de Zurich. J'ai mis un peu plus d'un week-end :-(
Je vais décrire ici les étapes de mise en place d'une deuxieme passerelle construite elle avec un rpi0 et intégrer ces composants dans un boitier de dérivation électrique avec un degré d'étanchéité IP65 afin de le placer en extérieur
Ensuite dans un deuxieme article je parlerais du réseau "The Things Network"
Le matériel utilisé
un raspberry pi zero WH
C'est une minuscule carte 65mm x 30mm x 5mm intégrant un composant Wifi et une antenne originale. Le RPI zero WH est en terme de ressource mémoire et cpu équivalent à la première version du raspberry PI avec 512 Mo de mémoire et un processeur 1 core à 1Ghz. Mais surtout une consommation 5x plus faible.
Une comparaison des différents modèles
une carte SD de 8Go ou 16Go.
Une carte pour la transmission radio
IMST IC880A - SPI
Cette carte concentrateur est très populaire et le montage est identique à celui fait avec le RPI 3B, décrit sur le wiki de la communauté Zurichoise du réseau TheThingsNetwork.
Taille de la carte : 80 x 68 x 14 mm
7 câbles dupond femelle-femelle de 7.5 cm pour connecter la carte au rpi0.
Suivant ce plan de connexion.
iC880a pin | Description | RPi physical pin |
---|---|---|
21 | Supply 5V | 2 |
22 | GND | 6 |
13 | Reset | 22 |
14 | SPI CLK | 23 |
15 | MISO | 21 |
16 | MOSI | 19 |
17 | NSS | 24 |
Une antenne et le connecteur
Un boitier
Taille du boitier étanche 105 x 105 x 46 mm.
Les logiciels
- Raspberry Pi Os
- git
- les sources du projet ttn-zh
La mise en oeuvre.
L'OS
La procédure d'instalation de Raspberry Pi Os ( Raspbian ) sur un RPI Zero WH est identique à une installation sans écran classique.
Il est nécessaire
- de Télécharger une image sur le site rapsberrypi.org
- Monter cette image sur la carte SD.
- activer
- le ssh - en créant un fichier ssh vide dans la partitition boot
- le wifi : en créant un fichier wpa_supplicant.conf dans la partition boot.
- le SPI : en modifiant dans config.txt le parametre dtparam=spi=on
Une fois tout cela fait insérer a carte micro SD et brancher le secteur.
Puis rechercher l'IP de cette nouvelle machine sur votre réseau. La commande nmap en tant que root devrait faire le travail:
sudo nmap -sP -n 192.168.xxx.0/24
Et faite une connexion sur l'ip avec l'utilisateur pi. une fois cette connexion faite.
Passer en root
- pour mettre à niveau l'OS.
- apt update
- apt upgrade
- mettre à jour tzdata
- dpkg-reconfigure tzdata
- Installer git
- apt install git
- créer un utilisateur gate pour l'application
- adduser gate
- adduser gate sudo ( ajout au groupe sudo)
- donner les droits d'éxécution sans passage de mot de passe en créant un fichier dans sudoers.d à l'identique de celui pour l'utilisateur pi.
- pour mettre à niveau l'OS.
vérifier le bon fonctionnement de la connexion et du passage en super utilisateur.
- supprimer l'utilisateur pi
- sudo userdel -rf pi
- supprimer l'utilisateur pi
vérifier que spi est bien actif.
lsmod | gre spi
l'application
préparation
- cloner l'application.
Avant de lancer l'installation préparer les éléments que vous allez configurer à savoir.
- Nom de la gateway( descritif )
- Nom de la machine.
- position géographique
- latitude
- longitude
- altitude
Ne pas lancer l'installation avant d'avoir connecter les éléments entre eux.
rpi0 --> Ic880a
Ic880a --> antenne
La mise en boite provisoire
!! Important brancher l'antenne avant de mettre sous tension
installation
- Aller dans le répertoire cloner
- lancer l'installation et renseigner les infos.
sudo ./install.sh spi
Une fois l'installation finie, votre passerelle va redémmarrer.
Vérification
En fin d'installation vérifier par la commande
sudo systemctl status ttn-gateway.service
Le bon fonctionnement du service.
sudo systemctl status ttn-gateway.service
● ttn-gateway.service - The Things Network Gateway
Loaded: loaded (/lib/systemd/system/ttn- gateway.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-04-05 19:02:19 CEST; 36s agoMain PID: 3277 (start.sh) Tasks: 4 (limit: 2062) CGroup: /system.slice/ttn-gateway.service ├─3277 /bin/bash /opt/ttn-gateway/bin/start.sh └─3300 ./poly_pkt_fwd
Quand tout est OK vous pouvez passez à la configuration de la passerelle en ligne
Mais avant regardons ce qui est installé.
Qu'est ce qui est installé?
Le clonage
Il installe plusieurs scripts
- install.sh pour l'installation de l'application
- start.sh pour le démarrage de l'application
La description du service au format systemd : ttn-gateway.service pour une prise en charge automatique des relances en cas d'arret.
Le script d'installation
Le script
- crée le répertoire /opt/ttn-gateway
- récupère les sources à partir de github avec git
- compile l'application.
- modifie le nom de machine.
- installe le service
- redémarre la machine.