Collecte de Données Sur Arduino Chaine D'information

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Accueil Cours Exercices Ressources À propos

Cours > Système embarqué > Transmission numérique > Collecte de données sur Arduino

Chaine d'information
Les données capturées par les capteurs vont suivre une chaine d'information au sein du système, qui a pour but
de les collecter, de les analyser et de les traiter. À partir d'une information source, trois principales étapes,
résumées sur la figure 1 constituent la chaine d'information :

1. L'information source est d'abord acquise grâce à un capteur, qui va effectuer des mesures de la grandeur Navigation
physique d'intérêt. Le capteur produit, comme résultat de ses mesures, un signal électrique de type Introduction
logique, analogique ou numérique. Chaine d'information
2. Le signal produit par le capteur est ensuite traité, typiquement par un programme exécuté sur un Transmission du signal
microcontrôleur, dans le cadre de petits systèmes, voire sur un ordinateur plus puissant, doté d'un ou LM35/DHT11
plusieurs microprocesseurs, pour de gros systèmes. Collecte de données
3. Enfin, une fois le signal traité, vient une phase de communication du résultat du traitement. L'information
peut, par exemple, être restituée sous forme d'une visualisation, après avoir été stockée dans une base de
données. Un autre scénario possible est l'envoi d'une consigne vers un système, pour commander une
action ou configurer des paramètres de ce dernier.

Figure 1. La chaine d'information commence par l'acquisition d'une mesure de la grandeur physique d'intérêt,
puis vient un traitement des données collectées et enfin, une communication des résultats du traitement.

Acquérir des données du capteur

La première étape de la chaine de transmission consiste donc en l'acquisition de données à partir des différents
capteurs choisis. Dans le cadre du système développé dans ce cours, trois capteurs ont été choisis et présentés
dans le chapitre précédent. La température est mesurée à l'aide d'un LM35, l'humidité relative à l'aide d'un DHT11
et, enfin, le niveau sonore avec un module de détection sonore.

Pour choisir le capteur le plus adéquat, pour mesurer une grandeur physique donnée, plusieurs critères peuvent
être pris en compte :

• Il faut évidemment d'abord vérifier que la plage de mesures du capteur couvre les valeurs qu'il faudra être
capable de mesurer, dans le cadre du système développé.
• Ensuite, il faut s'intéresser aux éventuelles contraintes imposées par le projet, et s'assurer que les
caractéristiques du capteur soient compatibles avec ces dernières. Il se peut, par exemple, qu'un certain
niveau de précision, qu'une résolution minimale ou encore qu'un temps de réponse minimal soit imposé.
• On peut également prendre en compte les caractéristiques en lien avec la qualité du capteur, telles que sa
fiabilité, sa fidélité ou encore sa gamme de températures d'utilisation. En fonction du système développé,
un simple capteur pourrait suffire, ou alors il se peut qu'il faille monter en qualité.
• Enfin, il ne faut pas non plus négliger le prix du capteur, notamment par rapport au budget total prévu pour
développer le système. Ce budget pourrait être plus faible dans le cadre d'un prototype et ensuite plus
élevé dans le cadre d'une version plus avancée, une fois que la preuve de concept a été faite et validée.

On peut aussi s'intéresser au nombre de capteurs qui seront nécessaires pour le système à développer. Comme
on l'a vu au chapitre précédent, certains capteurs peuvent mesurer plusieurs grandeurs physiques, comme le
DHT11 qui mesure l'humidité relative et la température. N'avoir qu'un capteur au lieu de deux peut rendre plus
faciles les traitements effectués dans la suite de la chaine d'information, pour autant que ses caractéristiques
satisfont les demandes du projet, évidemment. Cette question particulière de la mesure de la température, avec le
LM35 ou le DHT11 est abordée plus loin, à la section 2.3.

Enfin, il faut également s'assurer que les différents capteurs choisis sont compatibles entre eux, le plus possible
en tout cas, notamment par rapport à leur type de signal de sortie et à leurs tensions d'alimentation possibles. Au
plus il y aura de l'hétérogénéité, au plus la suite de la chaine d'information sera complexe à réaliser.

Traiter des données par l'Arduino


La deuxième étape de la chaine de transmission consiste donc à traiter les données qui proviennent des capteurs.
Cette étape est typiquement réalisée par un programme exécuté sur une machine, que ce soit un simple
microcontrôleur ou un ordinateur plus puissant composé d'un ou plusieurs microprocesseurs.

Le but de cette étape est de récupérer toutes les données provenant de plusieurs capteurs pour les traiter, et pour
les analyser et prendre des décisions. Le traitement des données consiste en une interprétation des signaux
électriques reçus des capteurs, selon leur type. Les données de type numérique vont souvent nécessiter plus de
travail que les données logiques ou analogiques. On peut également, parfois, devoir transformer, interpréter ou
vérifier les données reçues. Rappelez-vous, par exemple, du DHT11, vu à la section 1.3, qui envoie des trames
de 40 bits contenant les valeurs mesurées de l'humidité relative et de la température (chacune sur 16 bits), ainsi
qu'un code de 8 bits utilisé pour vérifier s'il y a eu des erreurs de transmission sur le bus 1-Wire. Le traitement des
données provenant de ce capteur nécessitera beaucoup de travail.

Dans ce cours, on va travailler avec l'Arduino Uno, présentée sur la figure 2, une simple carte électronique open
source sur laquelle se trouve un microcontrôleur ATmega328P d'architecture Atmel, autour duquel se trouvent
toute une série d'autres composants, qui vont faciliter sa programmation et son interfaçage avec d'autres circuits
extérieurs.

Figure 2. L'Arduino Uno est une simple carte électronique open source composée d'un microcontrôleur
ATmega328P et d'une série de composants facilitant sa programmation et son interfaçage avec d'autres circuits
extérieurs.

L'Arduino possède de nombreuses pins, lui permettant de communiquer avec d'autres circuits, notamment des
capteurs. L'Arduino Uno possède précisément 14 pins numériques et 6 pins analogiques, toutes capables de
fonctionner en entrée ou en sortie. D'autres versions de l'Arduino possèdent un plus grand nombre de pins. La
tension de fonctionnement de ces 20 pins est de 5 V, la même que celle de l'Arduino. On pourra donc aisément
utiliser les trois capteurs que l'on a sélectionné pour le système de surveillance sonore développé dans ce cours.

Enfin, l'Arduino se programme très facilement grâce à l'environnement de développement intégré Arduino IDE et
au langage de programmation Arduino, une version spécifique du langage C++, avec une librairie standard
contenant des fonctions spécifiques à l'Arduino. Un programme Arduino, appelé sketch, est compilé puis chargé
sur le microcontrôleur de l'Arduino pour y être exécuté. Un sketch se compose de trois parties, inspirées du
langage de programmation Processing : (a) une partie en-tête, avec notamment des imports de librairies et des
définitions de variables globales, (b) la fonction d'initialisation (setup) exécutée une seule fois au lancement du
sketch, (c) et, enfin, la fonction boucle principale (loop) dont le contenu est exécuté en boucle, se répétant
indéfiniment.

La figure 3 montre un exemple de sketch Arduino, qui fait clignoter une LED connectée à la pin numérique 7, en
produisant un signal électrique qui alterne entre un signal haut et un signal bas, en attendant une seconde entre
les transitions :

• Dans l'en-tête du sketch, on définit simplement le mot LED comme étant équivalent à 7, le numéro de la pin
numérique sur laquelle la LED a été connectée.
• Dans la fonction d'initialisation, on configure la pin~7 en mode sortie, à l'aide de la fonction pinMode, c'est-
à-dire que le microcontrôleur de l'Arduino va pouvoir envoyer un signal vers le monde extérieur via cette
pin, en l'occurrence alimenter ou non la LED avec une tension de 5 V.
• Enfin, dans la fonction boucle principale, on va répéter indéfiniment quatre opérations : (a) envoyer un
signal haut vers la pin~7 avec la fonction digitalWrite, appelée avec HIGH comme second paramètre, (b)
attendre 1000 ms, c'est-à-dire une seconde, (c) envoyer un signal bas vers la pin~7, de nouveau avec
digitalWrite, mais appelée cette fois-ci avec LOW comme second paramètre, (d) et, enfin, encore
attendre 1000 ms.

Ce très simple exemple de sketch vous montre la facilité avec laquelle on peut programmer la carte électronique
Arduino Uno.

1 #define LED 7
2
3 void setup() {
4 pinMode(LED, OUTPUT);
5 }
6
7 void loop() {
8 digitalWrite(LED, HIGH);
9 delay(1000);
10 digitalWrite(LED, LOW);
11 delay(1000);
12 }
Figure 3. Un sketch Arduino se compose de trois parties, à savoir une en-tête, la fonction d'initialisation qui
s'exécute une fois au lancement et la fonction boucle principale dont le contenu se répète en boucle
indéfiniment.

Avec l'Arduino Uno, on va donc pouvoir, sans problèmes, collecter les données provenant du LM35, du DHT11 et
du module de détection sonore, dans le cadre du système de surveillance du niveau sonore aux alentours d'un
aéroport développé dans ce livre. On verra comment traiter les données envoyées par chacun des capteurs dans
la section 2.2.

Communiquer des données vers l'extérieur

La dernière étape de la chaine de transmission est la communication des données qui ont été collectées,
analysées et traitées. Elle peut prendre plusieurs formes, selon la communication qui est faite.

Une première possibilité de communication est l'envoi d'une consigne, ou d'un signal de commande, depuis la
machine qui a traité les données du capteur vers une autre machine, un appareil, un moteur, etc. Par exemple, un
thermostat mesure la température ambiante et la compare ensuite avec une température seuil configurée. Si la
température mesurée est inférieure au seuil, le thermostat envoie un signal vers la chaudière pour la démarrer,
pour chauffer la pièce.

La communication peut aussi simplement consister en l'envoi des données collectées vers une autre machine,
plus puissante, qui va pouvoir faire des traitements plus avancés. Par exemple, un serveur dans le cloud peut
stocker des données reçues et proposer une interface de visualisation de ces dernières, sous forme d'un
dashboard. La figure 4 montre un exemple de dashboard qui présente des données d'inscriptions à un collège. Il
a été généré sur le service cloud Visualize Free (disponible ici : https://www.visualizefree.com), qui permet de
gratuitement réaliser des visualisations.

Figure 4. Le service cloud Visualize Free permet de visualiser des données sous forme d'un dashboard, par
exemple des données d'inscriptions à un collège.

 Précédent Suivant 

UKO, 2000–2021. Suivez-nous :

Vous aimerez peut-être aussi