IMA5 2020/2021 P2
Sommaire
Présentation générale
Description
Aujourd’hui la qualité de l’air et plus globalement la pollution atmosphérique est un enjeu environnemental majeur, notamment dans le cadre du travail. Ce danger fait l’objet de préoccupations depuis plusieurs années et apparaît aujourd’hui comme un problème majeur de santé publique. Notre projet à pour objectif de répondre à cette problématique en proposant une analyse en temps réel de la qualité de l’air des locaux de Polytech. En effet, l’amélioration de la qualité de l’air passe en premier lieu par l’étude de celle-ci, il est primordial de connaître notre environnement avec précision.
Objectifs
Nos objectifs se séparent en 3 parties :
- Le développement de stations émettrices.
3 tailles de stations seront disponibles, pourvues de capteurs, une carte Nucléo-64 et d'un émetteur/récepteur Lora.
- La mise en place d’un réseau LoRaWaN.
Pour ce faire nous disposons de passerelle Kerlink permettant de faire le lien entre nos stations (end-points) et notre Network Serveur. Nous devrons bien évidemment mettre en place et configurer un Network Server. Les transmissions devront être privées et ce, grâce à un système de chiffrement (clé publique/clé privée).
- La récupération et l'affichage des données.
Le Network Server, commun à d'autres projets, transmettra ses données vers une base de données (Application Server). une application mobile et/ou web seront développées pour la consultation des données.
Prise en main du matériel
Transmission entre 2 cartes
Choix de l'IDE : Nous avons testé différentes IDE (Semtec, uVision, Mbed Studio). De part sa simplicité d'utilisation et de la possibilité d'utilisé une version online nous privilégions l'utilisation de l'IDE Mbed. Cette IDE a d'ailleurs été utilisée dans d'anciens projets Polytech utilisant des émetteurs Lora et des cartes Nucléo.
Afin d'avoir une première manipulation de ces cartes et de l'IDE nous avons utiliser des programmes de démonstration du type "Ping/Pong". L'émission et la réception des données sont fonctionnelles entre 2 cartes Nucléo possédant des Antennes Lora.
Test des différents capteurs
Nous disposons de plusieurs capteurs afin d'affiner nos données sur la qualité de l'air :
DFR0066 de chez DFROBOT, capteur de température et d'humidité. L'envoi de donnée se fait via un bus I2C, il est donc nécessaire de fournir une clock à ce capteur. Datasheet : https://wiki.dfrobot.com/SHT1x_Humidity_and_Temperature_Sensor__SKU__DFR0066_ On dispose d'une bibliothèque préconçue pour son utilisation par la Nucléo 64
SEN0248 de chez DFROBOT, capteur de température, humidité, pression et gaz. L'envoie de donnée s'effectue via un bus I2C, une clock est là aussi nécessaire. https://wiki.dfrobot.com/Gravity__I2C_BME680_Environmental_Sensor__VOC,_Temperature,_Humidity,_Barometer__SKU__SEN0248 On dispose d'une bibliothèque préconçue pour son utilisation par la Nucléo 64
ULPSM-H2S de chez SPEC SENSOR, capteur de sulfure d'hydrogène https://www.spec-sensors.com/wp-content/uploads/2016/10/ULPSM-H2S-968-003.pdf
T6713 de chez TELAIRE, capteur de C02 https://www.powerandsignal.com/images/pdfs/AASTelaireT6713.pdf
EC4-2000-SO2 de chez SGX SensorTech, capteur de dioxyde de souffre https://www.sgxsensortech.com/content/uploads/2014/07/DS-0243-EC4-2000-SO2-Datasheet-V2.pdf
Stations
Implémentation du firmware
Réseau LoRaWan
Network Server
Une machine virtuelle est déployée afin d'héberger le Network Server :
- Nom : lorawan.plil.info
- Mdp : glopglop
Cette machine est connectée à internet via l'interface eth0 et est relié au Vlan 501 (Lorawan) via l'interface eth1. Le Vlan501 comprend donc notre VM, la passerelle Kerlink Outdoor (sur le toit de l'école) et la passerelle Kerlink Indor.
Server DHCP
Les passerelles Kerlink doivent être connues sur notre réseau, elle doivent donc posséder leur propre adresse IP. Cette adresse IP leur est fournie par un serveur DHCP présent sur la carte réseau "eth1" de la VM lorawan. Pour ce faire nous créons un sous-réseau IPV4 192.168.42.0/24. Nous attribuons l'adresse 192.168.42.10 à la carte "eth1" et nous configurons le serveur DHCP de manière à attribuer dynamiquement des adresses IPV4 aux nouveaux appareils repérés sur le réseau.
Dans le fichier dhcpd.conf : subnet 192.168.42.0 netmask 255.255.255.0 { range 192.168.42.1 192.168.42.9 }
Ce sous réseau permet d'attribuer des adresses IPV4 allant de 192.168.42.1 à 192.168.42.9.
Nous pouvons ainsi accéder à l'interface de configuration des passerelles Kerlink en ssh via l'adresse IP attribuée (Sur lorawan.plil.info) :
- Passerelle Outdoor : ssh 192.168.42.1, mdp: pdmk-062E7A)
- Passerelle Indoor : ssh 192.168.42.2, mdp: pdmk-030970)
Cette interface de configuration nous sera très utile lors de la configuration de notre Network Server.
Installation et configuration du ChirpStack Network Server
ChirpStack Network Server est une implémentation open-source de LoRaWAN® Network Server. La responsabilité du composant Network Server est la déduplication des trames LoRaWAN reçues par les passerelles LoRa® et de gérer:
- Authentification
- Couche mac LoRaWAN (et commandes mac)
- Communication avec le serveur d'applications ChirpStack
- Planification des trames de liaison descendante
- Installation :
La mise en place de ce serveur sur la vm lorawan nécessite d'installer trois entités : Un gateway-bridge, un network-server et un application-server
On suit les instructions du site officiel : https://www.chirpstack.io/network-server/
- Configuration :
Différents fichiers de configuration sont alors disponibles :
- /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
- /etc/chirpstack-network-server/chirpstack-network-server.toml
- /etc/chirpstack-application-server/chirpstack-application-server.toml
Paramètrages notables : - Les trois serveurs démarrent automatiquement lors de l'allumage de la vm - NetworkID : 000000
On a alors accès a une interface graphique de configuration sur le port 8080 pour notre LoRaWan_Network (accès 172.26.189.22:8080 (désactiver le proxy)).
- Configuration des passerelles Kerlink :
En connection ssh sur les gateways, on update le firmware des deux passerelles (Indoor : Wirnet iFemToCell et Outdoor Wirnet iBTS). Une fois l'environnement correctement installé, on s'appuie sur le https://wikikerlink.fr/ pour activer les gateways ainsi que leur packet_fowarder (https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:lora:keros_4.3.3:cpf_configuration). On instancie notamment notre LoraNetworkServer au sein de nos gateways via la ligne gwmp.node = "192.168.42.10" dans le fichier /etc/lorafwd.toml
On instancie alors notre network serveur sous le nom de localhost (localhost:8000). L'analyse des log nous montre que des Unkown_Gateways envoie des trams de façon régulière