Sunteți pe pagina 1din 9

A U.

: 2019/2020

Durée: 2 heures
T P N° 01
ACQUISITION DE DONNEES

Mesure de température et d’humidité à l’aide des capteurs LM35,


DHT11, DHT22 et Soil Moisture

NIVEAU :

- 1ère Année Cycle Ingénieur Génie Electromécanique.


- 1ère Année Cycle Ingénieur Management des Systèmes Electriques Intelligents.

ORGANISATION DES MANIUPULATIONS :

- les manipulations se déroulent en salle de TP(dispositifs et conception


électronique) , avec 5 bancs de travail

Encadré par les Professeurs:

– Mr MOUTCHOU Mohammed (Cours)

– Mr ALAMI ESSAADOUI (TP)

1
I. Objectif du TP :

La mise en pratique des connaissances acquises dans le cours ̋Acquisition de


l’information ̎ pour mesurer le taux d’humidité et/ou le degré de la température et de
les afficher sur un écran LCD ou les imprimer sur le moniteur série.
Matériels nécessaires :
 Une carte Arduino (UNO, MEGA , DUE……)
 Un capteur d’humidité et de température DHT11 (ou DHT22)
 Capteur d’humidité du sol
 Capteur de température LM35
 Un écran LCD 2×16
 Une plaque d’essai
 Résistances 220Ω, 1kΩ , 4.7kΩ, 10kΩ)
 Potentiomètre 1kΩ
 Fils de connexion.

Logiciels nécessaires:

 L’Arduino IDE est un logiciel open source permet d’éditer les programmes, les compiler et
les charger sur la carte Arduino.
 Proteus est un outil logiciel permettant la conception électronique assistée par ordinateur
éditée par la société Labcenter Electronics Proteus est composé de deux logiciels principaux :
ISIS, permettant entre autres la création de schémas et la simulation électrique, et ARES,
dédié à la création de circuits imprimés.
 Bibliothèques utilisées :
 Arduino :
 Proteus :

II. Présentation des matériels :

1. Capteur LM35
Le circuit LM35 est un capteur analogique de température. Le capteur de
température LM35 est capable de mesurer des températures allant de -50°C à
+150°C avec une précision de de ±0,5°C.
La température mesurée par le capteur est donnée par la relation :
��
�=
avec :
Vs : Tension de sortie [mV]
T : Température [°C]

2. Les capteur DHTxx


Le capteur DHTxx est un capteur de température et d’humidité à sortie numérique sérielle. La
liaison entre la carte Arduino et le capteur est assuré par un microcontrôleur 8 bits intégré dans le
corps du DHTxx. Une bibliothèque permet la communication entre le capteur et la carte
ARDUINO.
2
Caractéristiques :
Humidité (relative%) : 20 à 90 %
Précision (humidité) : +/- 5%
1 : Vcc Température : 0°C à +50°C
2 : Sortie sérielle (DATA) Précision (température) : +/- 2°C
3 : Non Connecté Fréquence mesure : (2 mesure /
4: GND seconde)
Tension d’alimentation : 3 à 5 volts
DHT11
Caractéristiques :
Humidité (relative%) : 0 à 100 %
1 : Vcc Précision (humidité) : +/- 2%
2 : Sortie sérielle (DATA) Température : -40°C à +150°C
3 : Non Connecté Précision (température) : +/- 0,5°C
4: GND Fréquence mesure : (2 mesure /
seconde)
Tension d’alimentation : 3 à 5 volts

DHT22

3. capteur d'humidité du sol

Capteur d’humidité du sol : La sensibilité de ce module est ajustable via


un potentiomètre numérique Alimentation: 3,3V-5V Module avec 2
sorties: Une analogique et une numérique. La sortie numérique est plus
précise Indicateur de tension (LED rouge) et Indicateur de sortie
numérique (LED verte). Le capteur de l'humidité du sol nous donne le
taux d’humidité de notre jardin, afin de donner l’ordre à la pompe à eau
pour arroser

4. Afficheur LCD

LCD 1602 : Tension d’alimentation 5.0V Dimensions du module de


85mm x 36mm x 10.2mm (Lx l x h) Zone de visualisation de 66mm x
16.2mm (Lx l) 2 lignes de 16 caractères Affichage réfléchissant Gamme
de température d'utilisation de -20° à 70°C

Caractéristiques :
5. Carte Arduino Microcontrôleur : ATmega328
Tension de fonctionnement : 5V
Tension d'entrée (recommandé) : 7-12 V
Tension d'entrée (limites) : 6-20V
Broches d’E/S numérique : 14 (dont 6
fournissent la sortie PWM)
Broches d'entrée analogiques : 6
Courant DC par broche d’E/S : 40 mA
Mémoire Flash : 32 Ko dont 0,5 KB utilisé
par bootloader
SRAM : 2 KB
EEPROM : 1 KB
Vitesse d'horloge : 16 MHz
Longueur : 68,6 mm
Largeur : 53,4 mm
Poids : 25 g 3
III. Travail à faire

1. Mesure de la température par le capteur LM35


1.1- Ce capteur est-il actif ou passif ? Justifier la réponse.
1.2 - Quelle est la sensibilité de ce capteur ?

1.3- Réalisez le montage suivant sous proteus :

1.4- Taper le code source en annexe 1

Indiquer à la carte Arduino le chemin du programme.


 Lancez la simulation du montage.
Pour visualiser l’exécution du programme sur la carte Arduino UNO réelle :
 brancher la carte à votre ordinateur.
 Allez vers l’Arduino IDE, assurer vous le port CO M correspondant à votre carte est bien
choisi. Pour cela cliquer sur Outils Port, et choisissez le port convenable.
 Charger le programme sur la carte en cliquant sur le bouton Téléverser.

4
2. Amélioration de la précision de la mesure de la température par le capteur LM35
Dans le cas du capteur LM35, la température maximale mesurée Tmax ≈ 110°C, ce qui
correspond à une tension de sortie maximale Vmax = 1,1V. Pour améliorer la précision de la
mesure, on a intérêt à choisir une tension de référence Vréf très proche de Vmax, soit Vréf = 1.1 V.
La fonction analogReference(INTERNAL1V1) satisfait cette demande et oblige le
microcontrôleur à utiliser une tension de référence interne Vréf = 1.1V au lieu de Vréf = 5V.
Pour avoir Vréf = 1.1 V, utiliser analogReference(INTERNAL1V1)
Pour un retour à la tension par défault, Vréf = 5 V, utiliser analogReference(DEFAULT)

3. Exploitation du capteur DHT11 et DHT22 pour la mesure de la température et de


l'humidité
Taper le code qui permet d’afficher le degré de la température et le taux d'humidité sur le moniteur
série et sur l’écran LCD en utilisant la fonction dht.temperature et dht.humidity après avoir
charger la bibliothèque <DHT.h>.

Remarque : La lecture des données se fait avec la fonction dht.read (DHT11_PIN) où


DHT11_Pin est la broche qui relie le capteur à la carte Arduino, on se référant à l'annexe 2

Ecrire un programme Arduino qui permet de lire le degré de la température et le taux d'humidité
d’un capteur DHT22 et les afficher sur un écran LCD (Simulation + réalisation), on se référant à
l'annexe 2 et aux montages suivants:

5
4. Comparaison des différentes mesures de la température
Ecrire un programme qui permet la mesure de la température par 3 méthodes différentes et son
affichage sur 4 digits (2 pour la partie entière et 2 pour la partie décimale) :
TDHT22 : Température mesurée par le capteur DHT22.
TDEF : Température mesurée par le capteur LM35 avec tension de référence 5V
analogReference(DEFAULT).
T1V1 : Température mesurée par le capteur LM35 avec tension de référence 1.1V :
analogReference(INTERNAL1V1).

Remarque : pour le passage de analogReference(DEFAULT) vers


analogReference(INTERNAL1V1), se référer à l'annexe

6
5. Détecteur d’humidité du sol

Le détecteur d’humidité se plante dans la terre (près des racines) de le la plante. Ce capteur mesure
l'humidité du sol à partir des changements de conductivité électrique de la terre (la résistance du sol
augmente avec la sécheresse). il est utilisé soit en mode numérique ou analogique, si la terre est
Humide la sortie D0 du capteur est au niveau BAS (0). Si la terre est Sèche, la sortie D0 du capteur
est au niveau HAUT (1).

Ecrire un programme qui permet de mesure de taux d’humidité et afficher le résultat sur un
écran LCD ou le moniteur série.

7
Annexe N° 01
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

void setup() {
lcd.begin(16,2);
lcd.setCursor(1,0);
lcd.print("Temp= ");
lcd.setCursor(10,0);
lcd.print("C");
lcd.setCursor(1,1);
lcd.print("TP Acquisition");

void loop() {
int Valeur=analogRead(A0);
int Vout=Valeur*5.0/1023*1000;
int temp=Vout/10;

lcd.setCursor(7,0);
lcd.print(temp);

Annexe N° 02

#include "DHT.h" // Librairie des capteurs DHT


#define DHTPIN 2 // Changer le pin sur lequel est branché le DHT
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("Test du composant DHT11 !");
dht.begin();
}
void loop() {
// Délai de 2 secondes entre chaque mesure. La lecture prend 250 millisecondes
delay(2000);
// Lecture du taux d'humidité
float h = dht.readHumidity();
// Lecture de la température en Celcius
float t = dht.readTemperature();
// Pour lire la température en Fahrenheit
float f = dht.readTemperature(true);

// Stop le programme et renvoi un message d'erreur si le capteur ne renvoi aucune mesure


if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Echec de lecture !");
return;
8
}

Serial.print("Humidite: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");
}