TP 2: Capture de données environnementales

Auteur: Congduc Pham, UPPA

TRES IMPORTANT: Avant toute manipulation pour enlever des composants électroniques des capteurs, il faut que le capteur soit éteint ou non alimenté par le port USB par exemple.

Si vous avez déjà récupéré un zip contenant tous les fichiers d'exemple, vous avez déjà le code source de tous les exemples. Vous n'avez donc pas besoin de les télécharger.

Les capteurs Arduino

Capteurs température

Nous allons utiliser un capteur analogique MCP9700A. La page suivante décrit la marche à suivre. Le code où le capteur est connecté sur l'entrée analogique A8 est disponible ici. Le fil rouge ou orange est connecté au 5V de l'Arduino, le fil noir ou blanc à la terre (GND) et le fil marron ou jaune à l'entrée A8.

Vous pouvez utiliser ce capteur pour détecter des hausses de températures et réagir en conséquence.

Capteurs luminosité

Nous allons utiliser un capteur analogique de luminosité du type photorésistance. La page suivante décrit la marche à suivre. Le code où le capteur est connecté sur l'entrée analogique A9 est disponible ici. Le fil rouge ou orange est connecté au 5V, le fil noir ou blanc à la terre (GND) et le fil jaune à l'entrée A9.

Vous pouvez utiliser ce capteur pour détecter des variations de luminosité et réagir en conséquence.

Capteurs d'humidité.

Nous allons utiliser un capteur analogique d'humidité 808H5V5. La documentation sur ce capteur est disponible ici. Ce capteur se branche de la manière suivante: le - sur le GND de l'Arduino et le + sur le 5V de l'Arduino. Le fil connecté à V se branche sur une entrée analogique. Le code pour lire la valeur sur l'entrée analogique A8 est disponible ici. A partir de la documentation donner les valeurs de taux d'humidité lues.

Capteurs de présence PIR

Nous allons utiliser un capteur PIR (Passive InfraRed) pour détecter les mouvements. La page suivante décrit la marche à suivre. Le code où la sortie du capteur PIR (fil de la sortie OUT) est connecté sur l'entrée numérique D2 est disponible ici. Le fil + (VCC) connecté au 5V, le fil - (GND) à la terre (GND). On branche une led sur la pin numérique D13, avec le - de la led (patte la plus courte) sur le GND qui est juste à coté de la pin D13.

Vous pouvez utiliser ce capteur pour détecter des intrusions et réagir en conséquence. Voir cet exemple qui permet de recevoir sur son téléphone portable des SMS lorsqu'il y a une intrusion.

Capteurs ultra-son pour mesurer une distance

Le capteur ultra-son que nous utilisons est le HRLV-MaxSonar EZ. La fiche technique peut-être trouvée ici. Il faut donc connecter la pin 3 sur une entrée analogique, le V+ sur une sortie 5V de l'Arduino et le GND à une pin GND de l'Arduino. En fait, vous pouvez donc adapter l'example du capteur de température ou luminosité pour implémenter la conversion qui permet de déduire la distance (voir page 2 de la fiche technique où il y a l'explication pour la pin 3).

Capteurs son de base

Le capteur son que nous allons utiliser possède déjà une amplification permettant sont usage sur un port analogique. Il donne une mesure du niveau de bruit. Le micro est branché de la manière suivante: la sortie audio du microphone est relié à l'entrée analogique A8, le VCC est relié au 3.3V de l'Arduino et le GND au GND de l'Arduino. Le code peut être récupéré ici.

Capteur son avancé

On peut ensuite réaliser un échantillonnage à 8Khz permet par exemple de générer une séquence audio en mode RAW. Vous aurez besoin de la librairie TimerOne. Le code Arduino pour échantillonner à 4KHz ou 8KHz est disponible ici. Le micro est branché de la manière suivante: la sortie audio du microphone est relié à l'entrée analogique A8, le VCC est relié au 3.3V de l'Arduino et le GND au GND de l'Arduino.

Une fois l'Arduino branché sur votre machine Linux, il sera sans doute reconnu sous le port série /dev/ttyACM0. Vous pouvez lire le port série avec le script python 38400SerialToStdout.py et utiliser la commande suivante pour récupérer les échantillons et les jouer sur l'ordinateur.

    $ python 38400SerialToStdout.py /dev/ttyACM0 | play --buffer 50 -t raw -r 4000 -u -1 -

Dans une étape ultérieure, lorsque nous aurons aborder les possibilités de communication radio, la page suivante (voir la partie audio) décrit une démo complète audio avec lecture en streaming radio sur un PC. Les outils logiciels nécessaires sont également décrits et disponibles. Attention, vous ne pouvez pas échantillonner à 8KHz et transmettre en même temps car la communication avec le module XBee se fait à 38400 bauds. Utiliser donc 4KHz. La transmission et la réception se font avec des module XBee en mode transparent (AP0) qui servent de passerelle Radio vers port série.

Lien

Pour vous donnez une idée de la variété de capteurs que l'on peut mettre, vous pouvez regarder cette page de Cooking Hack.