Nous avons déjà abordé les montages à base d'Arduino mais pas encore les capteurs qui peuvent être connectés. Lors d'un stage organisé par le Labo Numérique de Vélizy-Villacoublay avec l’association Planète Sciences le Samedi 06 Octobre nous avons eu l'occasion de voir en détails les capteurs, leur exploitation à travers la programmation.
Quels capteurs?
Les grandeurs mesurées sont très variées: température, pression, pluviométrie, vent, U.V, volume sonore, qualité de l'air, ...
Pour chaque grandeur que vous souhaitez mesurer, il existe un type de capteur dédié et adapté à l'interface avec le monde Arduino.
Ainsi pour mesurer la température, un capteur de température (ex: Grove seeedstudio) a une plage de fonctionnement de -40 à 125 ºC. Une thermistance fournit la température ambiante sous forme d'une valeur de résistance, puis elle est convertie en tension qui est mesurée sur une broche d'entrée analogique. Il reste à traiter cette valeur tension par un programme très simple pour afficher une température.
On trouve très facilement un capteur qui mesure à la fois la température et l'humidité relative. Basé sur un capteur de type DHT11, il donne le degré d'hygrométrie ambiante compris entre 20 % RH et 90 % RH, et lorsque la température est comprise entre 0°C et 50°C.
En règle générale, faites attention au temps de réponse des capteurs qui peut être assez long (ex: 6 s pour le capteur DHT11).
Ci-après un exemple de module Arduino Uno équipé d'un shield et entouré de différents capteurs. En haut à droite, on retrouve les capteurs de température, d'humidité. En bas à gauche, vous pouvez voir un GPS avec son antenne.
On trouve très facilement un capteur qui mesure à la fois la température et l'humidité relative. Basé sur un capteur de type DHT11, il donne le degré d'hygrométrie ambiante compris entre 20 % RH et 90 % RH, et lorsque la température est comprise entre 0°C et 50°C.
Exemple de mesure de l'humidité
En règle générale, faites attention au temps de réponse des capteurs qui peut être assez long (ex: 6 s pour le capteur DHT11).
Ci-après un exemple de module Arduino Uno équipé d'un shield et entouré de différents capteurs. En haut à droite, on retrouve les capteurs de température, d'humidité. En bas à gauche, vous pouvez voir un GPS avec son antenne.
Exemple de montage avec différents capteurs
Comment connecter les capteurs
En se basant sur une carte Arduino Uno, nous pouvons connecter autant de capteurs qu'il y a d'entrées analogiques (cas du capteur de température) où d'entrées numériques (cas du capteur combiné). Cependant, cela s'avère assez vite brouillon (fils de partout) et peu pratique pour un remplacement ou une extension. Une solution élégante consiste à utiliser un shield. Ce "bouclier" est une carte fille qui vient se connecter sur la carte Arduino Uno et elle contient les connecteurs adaptés, avec détrompeur, aux nappes des capteurs.
Un capteur de température, Arduino Uno et le shield
La sérigraphie sur le shield permet d'identifier facilement les entrées utilisées. A0, A1, A2, A3 pour des entrées analogiques et D2 à D8.
Vue du capteur connecté sur le module Arduino via le shield
Il est intéressant de grouper des capteurs au sein d'un même boitier pour faciliter la prise des mesures.
Par exemple, il est possible de mettre un capteur de température, de lumière, d'infra-rouge dans un boitier étanche que l'on peut placer à l'extérieur. De même, on peut placer le module Arduino et son shield dans un autre boitier étanche.
Vue du montage Arduino avec son shield dans un boitier
Vue des capteurs dans un boitier
Comment programmer les capteurs
Pour traiter les mesures venant des capteurs, il faut réaliser des petits programmes qui sont simples. Il existe un environnement de développement simple et assez convivial nommé mBlock/Scratch (gratuit).
Vue de l’environnement mBlock/Scratch
La programmation se fait sous forme graphique en sélectionnant des instructions prédéfinies. Les instructions regroupées en catégories telles que "Mouvement", "Apparence", "Son", "Stylo" qui sont destinées à un usage sur ordinateur.
Les catégories "Bloc et variables", "Evénement", "Contrôle", "Capteurs", "Opérateurs", "Pilotage" sont les éléments de base pour programmer en vue de faire fonctionner le programme sur le module Arduino.
La partie capteur est bien fournie et cela permet de gagner un temps précieux tout en simplifiant la manipulation des mesures (ex: conversion).
Exemple de programme
Dans notre exemple, nous avons utilisé un panda comme indicateur visuel pour nous donner la température. Puis nous avons créé des listes des mesures. Enfin on peut télécharger le programme sur le module Arduino et l'exécuter.
Il est aussi possible d'exporter vos programmes sous forme de sketch dans l'IDE Arduino.
Exemple de génération d'un sketch à partir de mBlock
A vous de jouer
Les possibilités sont tellement vastes que nous ne pourrions en faire le tour. Le stage a présenté les capteurs pour une station météo, mais il y a aussi des applications pour le modélisme ferroviaire en particulier pour la détection de passage des trains, les mesures de vitesse (mis en place sur le réseau des passionnés du train).
Un grand merci à Gabriel de l'association Planète Sciences et au Labo Numérique de Vélizy-Villacoublay.