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.

rpi zero w

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

ic880a

7 câbles dupond femelle-femelle de 7.5 cm pour connecter la carte au rpi0.

Suivant ce plan de connexion.

iC880a pinDescriptionRPi physical pin
21Supply 5V2
22GND6
13Reset22
14SPI CLK23
15MISO21
16MOSI19
17NSS24

Une antenne et le connecteur

pigtail antenne

Un boitier

Taille du boitier étanche 105 x 105 x 46 mm.
boiier 1 boiier 1

Les logiciels

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.
  • vérifier le bon fonctionnement de la connexion et du passage en super utilisateur.

    • supprimer l'utilisateur pi
      • sudo userdel -rf 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 rpi0-iC880a

Ic880a --> antenne iC880a-antenne

La mise en boite provisoire

en boite

!! 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 ago

Main 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

  1. crée le répertoire /opt/ttn-gateway
  2. récupère les sources à partir de github avec git
  3. compile l'application.
  4. modifie le nom de machine.
  5. installe le service
  6. redémarre la machine.