Capteurs environnementaux et Arduino

De Centre de Ressources Numériques - Labomedia
Révision de 26 avril 2018 à 18:10 par Simon (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Avant-Propos

Objectifs

Objectif de la page wiki: apprendre à utiliser un Arduino pour effectuer des mesures à l'aide de composants électroniques.

Objectif du projet: fabriquer un système qui permette de suivre des paramètres liés à l'environnement et d'envoyer des données issues de ces capteurs environnementaux sur Internet.

Petite Introduction

L'Arduino est une petite carte électronique relativement peu chère qui permet de manipuler aisément des composants électroniques. Différentes versions dédiées à des utilisations spécifiques existent, mais cette page se concentrera sur la version la plus légère, l'Arduino Uno :

Arduino uno.jpg

La partie la centrale de l'Arduino est la puce électronique que l'on peut voir à droite de l'image, il s'agit d'un ATmega328. C'est un microcontrôleur, que l'on peut reprogrammer en fonction de ses besoins. Même si cela n'est pas exact, on peut considérer cette puce comme un minuscule ordinateur, dans le sens où l'on peut changer ses fonctionnalités, contrairement à d'autres puces dont la structure interne n'est pas modifiable.

Avec ceci en tête, il est plus facile de comprendre ce qu'est l'Arduino : une carte électronique qui facilite la programmation de l'ATmega328. En effet, l'Arduino intègre une connectique USB pour la modifier facilement, un quartz afin d'affiner son rapport au temps, une alimentation pour ne pas avoir à rajouter soit même une pile, et des entrées/sorties ne nécessitant pas de soudure.

Ces entrées/sorties font tout l'intérêt de l'Arduino, car elles vont nous permettre de l'utiliser pour contrôler d'autres éléments électroniques, par exemple des moteurs, ou, dans notre cas des capteurs :

Arduino sensors.jpg

Les capteurs seront présentés plus en détail plus loin dans cette page.

La dernière chose à savoir à propos de l'Arduino est la manière de le programmer. Comme nous l'avons vu, il se connecte en USB à un ordinateur. Un logiciel a ainsi été crée pour faciliter cet opération, qui porte le nom d'Arduino IDE ( ce qui signifie Environnement de Développement Intégré pour Arduino ). À dire vrai, plusieurs versions de ce logiciel existent sur la toile, mais je vous recommande celle à cette adresse : https://www.arduino.cc/ ( dans l'onglet Software / Downloads ), ayant eu des soucis avec les autres versions pour intégrer certaines fonctionnalités avancées ( certaines librairies, plus précisément ).

Hello World : connection d'un capteur de distance.

Le but de cette section est d'apprendre à connecter un premier capteur à l'Arduino, et d'afficher les valeurs qu'il envoie sur l'écran de l'ordinateur. J'ai choisi un capteur de distance, ce qui n'est pas en lien direct avec les données environnementales; néanmoins, il s'agit d'un capteur peu onéreux et souvent disponible à l'utilisation dans les Fablabs et autres Hackerspaces. Il est en outre facile à connecter et de nombreux tutoriels sont disponibles à son propos sur internet, d'où mon choix.

Matériel

Vous aurez donc besoin pour ce tutoriel :

  • D'un ordinateur sur le quel Arduino IDE est installé.
  • Un Arduino et son câble USB.
  • Un capteur de distance HC-SR04 ou similaire.
  • 4 jumpers mâle/femelle pour connecter le tout.
Matos.JPG

Le montage sera facilité si vous avez :

  • Une breadboard et 4 jumpers mâle/mâle.

Avant de commencer

Si vous n'avez jamais utilisé d'Arduino, voici la manœuvre à suivre pour commencer. Branchez l'Arduino en USB à l'ordinateur. Si vous êtes sous Windows, il vous sera demandé d'installer un driver. Pas de panique, l'éditeur est vérifié... Lancez ensuite Arduino IDE. Dans l'interface qui apparaît, l'onglet Outil -> Type de Carte vous permet de sélectionner le type d'Arduino utilisé, dans mon cas un Uno.

Typecarte.jpg

Ensuite, Outils -> Port permet de sélectionner le port USB avec lequel on communique avec l'Arduino.

Portserie.jpg

Dernière précision, ces deux boutons sont à utiliser lors du développement :

Bb.jpg

Le premier permet de vérifier si le code est correct. Honnêtement, je ne l'utilise jamais. Le second permet de téléverser le programme dans l'Arduino. C'est en appuyant sur ce bouton que le programme affiché à l'écran de l'ordinateur est transféré dans l'Arduino.

Connecter le capteur

L'IDE Arduino vous permet de développer vos propres programmes pour Arduino. Il utilise le langage de programmation C++, et donne accès aux outils de base de programmation : conditionnels, boucles, variables, etc. Mais si vous êtes en train de lire ces lignes, il y a en fait fort à parier que ces mots ne fassent pas encore grand sens.

Pas de panique !

En fait, l'une des facilités d'utilisation de l'Arduino provient du fait qu'une grande partie des technologies a déjà été documentée sur internet. Il s'agit donc moins de savoir coder que de savoir rechercher des programmes tous faits sur internet. Mais encore faut-il savoir que chercher ? Dans notre cas, deux choses sont à relier : l'Arduino, et le capteur. Celui-ci se distingue par une référence, il s'agit du capteur HC-SR04. Dans un moteur de recherche, tapons "Arduino HC-SR04". Outre quelques liens commerciaux, certains résultats semblent intéressants :

Note : la plupart des documents sur internet est malheureusement écrite en anglais. D'où l'importance de s'investir dans la traduction de certaines ressources en langues vernaculaires. Ou d'apprendre l'anglais...

Bref, ces quatres pages, facilement accessibles, sont des tutoriels tous prêts pour la connection du capteur de distance. Il présentent le schéma de montage, le code Arduino à téléverser, et expliquent même parfois comment le capteur marche. Il ne s'agit donc plus que de reproduire le schéma de montage et de copier-coller le code dans l'Arduino pour faire fonctionner tout ça.

Capteurs données environnementales

Air

Radiations, nucléaire

Shields, kits

Config du kit Geiger de cooking hacks :

Diffusion des données sur le web