IMA4 2019/2020 P10 : Différence entre versions

De Wiki de Projets IMA
(Protocole LoRa)
(Semaine 1)
Ligne 178 : Ligne 178 :
 
[[Fichier:Architecture_lorawan.png|center|500px|Schéma d'une architecture LoRaWAN]]
 
[[Fichier:Architecture_lorawan.png|center|500px|Schéma d'une architecture LoRaWAN]]
  
C'est pour ça que ce protocole est parfaitement adapté aux utilisation de basse consommation d'énergie. Dans le cas de ce projet, nous pouvons imaginer le potentiostat proche d'une source d'eau qui détermine la pollution de cette source. Ensuite, elle transmet les données collectées par le potentiostat au µC. Ce µC connecté à un module LoRa transmet à la station en charge de la gestion des eaux la plus proche ces données via le protocole LoRa. Ensuite, ces données sont stockées sur un serveur en attente de traitement par un opérateur.  
+
C'est pour cela que ce protocole est parfaitement adapté aux utilisations de basse consommation d'énergie. Dans le cas de ce projet, nous pouvons imaginer le potentiostat proche d'un courant d'eau qui détermine la pollution de cette source. Ensuite, elle transmet les données collectées par le potentiostat au µC. Ce µC connecté à un module LoRa transmet à la station la plus proche, en charge de la gestion des eaux, ces données via le protocole LoRa. Ensuite, ces données sont stockées sur un serveur en attente de traitement par un opérateur.  
  
Il est également possible d'utiliser un protocole P2P entre deux modules radio LoRa. Dans notre cas, nous allons nous attacher à faire communiquer deux modules radio LoRa eux-mêmes connectés à des µC STM32.
+
Il est également possible d'utiliser un protocole P2P entre deux modules radio LoRa en utilisant seulement la modulation qu'offre ce protocole. Dans notre cas, nous allons nous attacher à faire communiquer deux modules radio LoRa eux-mêmes connectés à des µC STM32.
 +
 
 +
===Recherche STM32===
 +
 
 +
Ensuite, après avoir réalisé mes recherches à propos de ce protocole, je me suis attaché à trouver un µC de STM compatible avec des modules radio. Il existe de nombreuses combinaisons possibles. Je peux partir sur une carte de développement qui intègre directement une chip LoRa ainsi qu'un µC STM32L0 de faible consommation d'énergie. Ces cartes ont l'avantage de permettre la communication P2P entre elles, car des exemples existent directement sur Mbed.
 +
 
 +
Je peux également prendre une carte STM32F4 discovery et trouver une carte qui intègre une chip LoRa et tenter de les faire communiquer. Cependant, cette solution semble risquée.
 +
 
 +
J'ai donc trouvé une carte de développement : la carte B-L072Z-LRWAN1 (https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/ac/62/15/c7/60/ac/4e/9c/DM00329995/files/DM00329995.pdf/jcr:content/translations/en.DM00329995.pdf). Cette carte est intéressante car elle intègre un module LoRa avec un µC sur la même carte. Elle est compatible Mbed, possède plusieurs bus SPI (pour permettre la communication entre le DAC et les ADC du potentiostat). Enfin, il existe des exemple de code de communication P2P entre deux cartes identiques de cette référence (https://os.mbed.com/teams/ST/code/DISCO-L072CZ-LRWAN1_LoRa_PingPong/)
  
 
==Semaine 2==
 
==Semaine 2==
  
 
=Documents Rendus=
 
=Documents Rendus=

Version du 26 septembre 2019 à 11:53


Présentation générale

Dans les sujets proposés, j'ai décidé de prendre le projet "Capteur de niveau d'eau et de pollution" dirigé par Antoine Branquart lors de la période 2018/2019.

Le but est de reprendre le projet, d'expliquer les soucis de sa non finalisation et d'enfin mener le projet à son terme. Ce projet vise la réalisation d'un système de détection de pollution dans l'eau. En effet, la pollution provoque une mauvaise qualité de l'eau, et cela engendre près de 2 millions de morts par an dû à la maladie.

La pollution est présente sous différente formes, est difficilement détectable et parfois avec une constante de temps assez longue (Certains toxiques produisent leur effet néfaste qu'après certaines années).

Il est difficile de prévoir les épisodes de pollution (qui intervient lorsque un ou plusieurs polluant dépassent la concentration limite fixés par des seuils) car les tests sont ponctuels et nécessitent des outils coûteux dans des laboratoires, ce qui prend du temps.

Le projet vise donc la réalisation d'un capteur autonome qui permet d’éviter les épisodes de pollution et d'envoyer ses résultat à un module via un couple émetteur-récepteur radio.

Description

Lors de son projet, Antoine a commencé par la réalisation d'une carte électronique avec un potentiostat. Commençons par expliquer ce qu'est un potentiostat.

Potentiostat

Un potentiostat est un outil capable de réaliser des expériences de voltamétrie cyclique simple. C'est une méthode d’électro-analyse basée sur la mesure du flux de courant résultant de la réduction ou de l'oxydation des composés tests présents en solution (ici, dans de l’eau) sous l'effet d'une variation contrôlée de la différence de potentiel entre deux électrodes spécifiques.

Le potentiostat est composé de 3 électrodes :

  • Une électrode de travail "ET" (en platine)
  • Une électrode de référence "ECS" (au calomel saturé)
  • Une contre électrode "CE" (en platine)

Le principe est d'imposer une différence de potentiel entre l'ET et L'ER et de mesurer le courant traversant l'ET.

Schéma de principe

Potentiostat1bis.png

Sur le schéma, on peut voir que l'AOP permet de maintenir la différence de potentiel entre la référence et l'électrode de travail, aussi proche possible du potentiel d'entrée de la source.

Objectifs

J'ai discuté avec Antoine à propos de son projet qu'il a continué au Vietnam. Là-bas il a designé une nouvelle carte différente de celle qu'il avait faite en France. Malheureusement, la carte n'était pas fonctionnelle. Il m'a conseillé de m'inspirer du montage qu'il avait vu (et routée) et que j'ai retrouvé dans un document. (lien vers le pdf : Fichier:Pot.pdf)

Le synoptique du système reste le même :

SynoptiqueCapteurPollution.jpg

La communication entre le microcontrôleur et le potentiostat se fera de la manière suivante. Le microcontrôleur envoie les données numériques pour générer un potentiel. Ces valeurs numériques passent à travers un DAC pour générer des valeurs analogues correspondantes. Ensuite, l'amplificateur opérationnel compare cette valeur au potentiel mesuré entre le courant dans la contre électrode jusqu'à ce que la valeur mesurée soit égale à la valeur de consigne générée par le microcontrôleur via le DAC. Ensuite, le potentiel mesuré est introduit dans un ADC, pour transmettre le tout au microcontrôleur. La transmission se fait via un bus SPI et le microcontrôleur envoie les données au module radio via également un bus SPI. Les deux modules radio communiquent via le protocole LoRa.

Antoine avait fait son potentiostat sur une carte à part, je pense qu'il est possible de faire une carte de type "shield" et de brancher ça directement sur la carte du microcontrôleur.

Pour la communication entre les deux systèmes (les deux microcontrôleurs), il est judicieux d'utiliser le protocole LoRa avec les modules radios achetés pour le projet. Enfin, pour les microcontrôleurs, les cartes Nucléo qu'Antoine utilisait au début de son projet. Cependant, ces cartes souffrent d'un manque de librairies au niveau des protocoles LoRa, et une carte arduino de basse consommation sera également envisageable.

Donc, il y aura une partie de réalisation de carte, en s'inspirant du schéma trouvé sur internet. Ensuite, la réalisation du code pour la communication radio entre les deux microcontrôleurs.

Analyse du projet

Analyse de l'ancien projet

Antoine à réalisé une carte potentiostat et à également réussi une communication entre les deux modules radio qu'il a acheté au vietnam.

Cependant, les tests réalisés avec le potentiostat qu'il a réalisé au Vietnam n'étaient pas bons. Cela vient peut-être qu'il n'a pas pu tester son capteur avec un "dummy cell", petit module qui permet de tester efficacement un potentiostat. Par ailleurs, il n'a pas réussi à assembler complètement son système.

Réunion avec M.Boé

Le 19 Septembre, j'ai eu une réunion avec M.Boé. Nous avons discuté des différends points du projet.

Tout d'abord, M.Boé m'a conforté dans mon choix de réaliser le schéma suivant :

SchematiquePotentiostat.png

Nous avons d'abord discuté du choix du microcontrôleur. Il m'a conseillé d'enlever le PIC16F1259 du schéma et d'intégrer dans le projet une carte avec un STM32F4XXX (de STMicroElectronics) qui se programme à l'aide de Mbed OS. C'est un RTOS (Real-time Operating system) qui permet de programmer des périphériques se basant sur un processeur ARM comme avec le STM32. De plus, pour la sélection de la carte STM32, je dois choisir une carte en adéquation avec un module radio LoRa compatible, et qui se branche directement sur la carte.

Par ailleurs, nous avons également discuté du DAC et des deux ADC présents sur le schéma. Ils utilisent le protocole SPI pour échanger des données. Les auteurs du pdf dans lequel se trouve le schéma on utiliser des librairies permettant l'utilisation du SPI. Le but est donc de réécrire en partie du code afin de l'adapter à mon projet.

En outre, M.Boé m'a conseillé d'ajouter des jumpers ainsi que des "tests points", afin de pouvoir déboguer la carte la plus rapidement et simplement possible.

De surcroît, la carte potentiostat sera réalisée en type "shield" afin de la brancher plus facilement sur la carte STM et d'avoir un système le plus compact possible. Il est envisageable par la suite de réfléchir sur un autre type de microcontrôleur moins gourmand en énergie.

Liste de Matériel

En adéquation avec le schéma, je reprends les composants qui sont disposés sur le schématique :

  1. LM2662 (Régulateur de tension 5V - 9V)(ref : LM2662MX/NOPBCT-ND) [1] (Quantité = 1)
  2. DAC1220 (Convertisseur Numérique Analogique)(ref : DAC1220E-ND) [2] (Quantité = 1)
  3. ADR421 (2.5V Reférence) (ref : ADR421ARZ-ND) [3] (Quantité = 1)
  4. MCP3550 (Convertisseur Analogique Numérique) (ref : ADR421ARZ-ND) [4] (Quantité = 2)
  5. OPA4192 (AOP) (ref : 296-43159-1-ND) [5] (Quantité = 1)
  6. OPA2192 (AOP) (ref : 296-42106-1-ND) [6] (Quantité = 1)
  1. Résistances 1k ±1% de type 0805 (ref : 311-1.00KCRCT-ND) [7] (Quantité = 5)
  2. Résistances 10k ±1% de type 0805 (ref : 311–10.0KCRCT-ND) [8] (Quantité = 2)
  3. Résistance 27 ohms ±1% de type 0805 (ref : 311–27.0CRCT-ND) [9] (Quantité = 1)
  4. Résistances 240k ±0.05% de type 0805 (ref : RG20N240KWCT-ND) [10] (Quantité = 2)
  5. Résistances 75k ±0.05% de type 0805 (ref : P75KBSCT-ND) [11] (Quantité = 6)
  6. Résistance 10 ohms ±0.1% de type 0805 (ref : A119971CT-ND) [12] (Quantité = 1)
  7. Résistance 1k ±0.1% de type 0805 (ref : P1.0KDACT-ND) [13] (Quantité = 1)
  8. Résistance 100k ±0.1% de type 0805 (ref : P100KDACT-ND) [14] (Quantité = 1)
  9. Résistance 18k ±0.1% de type 0805 (ref : Digikey P18KDACT-ND) [15] (Quantité = 1)
  10. Résistance 2k ±0.1% de type 0805 (ref : Digikey P2.0KDACT-ND) [16] (Quantité = 1)

Positionnement par rapport à l'existant

Analyse du premier concurrent

Analyse du second concurrent

Scénario d'usage du produit ou du concept envisagé

Réponse à la question difficile

Préparation du projet

Cahier des charges

Donc, après cette réunion, je peux commencer mon cahier des charges et ensuite réaliser un petit planning.

  1. Réalisation d'un potentiostat fonctionnel
  2. Communication entre le potentiostat et le STM32F4XXX fonctionnelle
  3. Communication entre l'emetteur et le recepteur LoRa fonctionnelle
  4. Assemblage fonctionnelle


Pour le planning :

  1. Réalisation du schématique & Routage de la carte du potentiostat
  2. Recherches autour du module radio & du STM32F4XXX
  3. Validation de la carte & Modifications

Choix techniques : matériel et logiciel

Liste des tâches à effectuer

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Pour la séance du 26 septembre, j'ai commencé par réaliser des recherches à propos du protocole LoRa.

Protocole LoRa

Le protocole LoRa ou LoRaWAN(Long Range Wide-area network) permet la communication à bas débit d'objet à faible consommation d'énergie facilitant l'internet des objets. C'est un protocole crée par la startup grenobloise Cycléo et rachetée par Semtech en 2012. Ce protocole utilise une technique de modulation par étalement de spectre de type Chirp spread spectrum propriétaire appelée LoRa.

Un réseau LoRaWAN est composé d'équipements sans-fils basse consommation qui interagissent avec des serveurs applicatifs au travers de passerelles. La modulation utilisée entre les équipements et les passerelles est LoRa. La communication entre les passerelles et les serveurs est établie via le protocole IP au moyen d'un réseau de collecte Ethernet ou 3G. La topologie d'un réseau LoRaWAN est en étoile car un serveur applicatif est connecté à une multitude de passerelles elles-mêmes connectées à une multitude d'équipements.

Schéma d'une architecture LoRaWAN

C'est pour cela que ce protocole est parfaitement adapté aux utilisations de basse consommation d'énergie. Dans le cas de ce projet, nous pouvons imaginer le potentiostat proche d'un courant d'eau qui détermine la pollution de cette source. Ensuite, elle transmet les données collectées par le potentiostat au µC. Ce µC connecté à un module LoRa transmet à la station la plus proche, en charge de la gestion des eaux, ces données via le protocole LoRa. Ensuite, ces données sont stockées sur un serveur en attente de traitement par un opérateur.

Il est également possible d'utiliser un protocole P2P entre deux modules radio LoRa en utilisant seulement la modulation qu'offre ce protocole. Dans notre cas, nous allons nous attacher à faire communiquer deux modules radio LoRa eux-mêmes connectés à des µC STM32.

Recherche STM32

Ensuite, après avoir réalisé mes recherches à propos de ce protocole, je me suis attaché à trouver un µC de STM compatible avec des modules radio. Il existe de nombreuses combinaisons possibles. Je peux partir sur une carte de développement qui intègre directement une chip LoRa ainsi qu'un µC STM32L0 de faible consommation d'énergie. Ces cartes ont l'avantage de permettre la communication P2P entre elles, car des exemples existent directement sur Mbed.

Je peux également prendre une carte STM32F4 discovery et trouver une carte qui intègre une chip LoRa et tenter de les faire communiquer. Cependant, cette solution semble risquée.

J'ai donc trouvé une carte de développement : la carte B-L072Z-LRWAN1 (https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/ac/62/15/c7/60/ac/4e/9c/DM00329995/files/DM00329995.pdf/jcr:content/translations/en.DM00329995.pdf). Cette carte est intéressante car elle intègre un module LoRa avec un µC sur la même carte. Elle est compatible Mbed, possède plusieurs bus SPI (pour permettre la communication entre le DAC et les ADC du potentiostat). Enfin, il existe des exemple de code de communication P2P entre deux cartes identiques de cette référence (https://os.mbed.com/teams/ST/code/DISCO-L072CZ-LRWAN1_LoRa_PingPong/)

Semaine 2

Documents Rendus