Introduction

Le capteur de température tmp36 est un capteur qui génère un signal digital en sortie codant une valeur de température mesurée en temps réel.

On a fait un cours sur un autre capteur de température, le dht11 qui lui permet aussi de mesurer l’humidité en plus de la température.

Le capteur de température et d’humidité peut-être utilisé dans plein de domaine, que ça soit pour savoir la température extérieur, pour gérer l’arrosage d’une petite serre autonome… C’est pour cela que nous avons fait un petit tableau récapitulatif des caractéristiques du capteur :

 
TMP36 Plage de tension Valeur de fonctionnement Précision Linéarité Facteur d’échelle
Caractéristique [2,7V – 5,5V] [-40°C – 125°C] +/- 2°c +/- 0,5°C 10 mv/°C

Ce tableau nous indique différentes caractéristiques qui sont intéréssante à détailler :

  • La plage de tension accepté par le capteur permet de le brancher à une carte Arduino
  • La valeur de fonctionnement permet de mesurer une tension négative, contrairement au capteur DHT11.
  • Le capteur est sensible à 0.5 degrés celsius. Ce n’est donc pas le bon capteur si vous souhaitez une précision à 0,1°C près.

 

Les broches du capteur tmp36

Vcc : permet d’alimenter le capteur. A brancher sur le Vcc de la carte Arduino

Signal : Permet de récupérer la température. A brancher sur une broche analogique de la carte Arduino.

Ground : La masse du capteur tmp36. A brancher sur le GND de la carte Arduino

Afficher la température sur le moniteur série

On va maitenant voir comment afficher la température sur le moniteur série.

Voici le schéma du circuit :

int Capteur = 0 ; // Corresponds à la broche A0 ou est connecté le capteur de température

void setup() {
Serial.begin(9600); // Permet d'initialiser le moniteur série
} 

void loop () {
  int lecture = analogRead(Capteur); // On lit la valeure du capteur
  float voltage = 5.0 /1024 * lecture ; // On transforme cette valeur en tension
  float temperature = voltage * 100 -50 ; // On transforme cette tension en température en degrée
  Serial.print("La temperature est : "); // On affiche la température
  Serial.print (temperature);
  Serial.println(" degrees");
  delay(500); // On fait une pause entre chaque mesure
}

Voici le résultat sur le moniteur série :

Allumer des leds en fonction de la température

On va maintenant voir comment allumer différente led en fonction de la température mesuré par le capteur. On va pour cela utiliser 4 leds qui seront allumés en fonction de la température :

 
LED Température
Led Rouge Supérieur à 27 °C
Led Orange Compris entre 17°C et 27°C
Led Verte Compris entre 17°C et 5°C
Led Bleu Inférieur à 5°C

Voici le schéma du circuit :

int Capteur = 0 ; // Corresponds à la broche A0 ou est connecté le capteur de température
int led_bleu_broche = 8;  // On assigne la LED bleu à la broche 8.
int led_verte_broche = 11;  // On assigne la LED verte à la broche 11.
int led_orange_broche = 12;  // On assigne la LED bleu à la broche 12.
int led_rouge_broche = 13;  // On assigne la LED bleu à la broche 13.

void setup() {
  pinMode(led_bleu_broche, OUTPUT); // On assigne la LED  bleu en sortie
  pinMode(led_verte_broche, OUTPUT); // On assigne la LED verte  en sortie
  pinMode(led_orange_broche, OUTPUT); // On assigne la LED orange en sortie
  pinMode(led_rouge_broche, OUTPUT); // On assigne la LED rouge en sortie
} 

void loop (){
  int lecture = analogRead(Capteur); // On lit la valeure du capteur
  float voltage = 5.0 /1024 * lecture ; // On transforme cette valeur en tension
  float temperature = voltage * 100 -50 ; // On transforme cette tension en température en degrée
  if (temperature <5) {
      digitalWrite(led_bleu_broche,HIGH); // On allume la LED bleu
      digitalWrite(led_verte_broche,LOW); // On éteint les autres leds
      digitalWrite(led_orange_broche,LOW); 
      digitalWrite(led_rouge_broche,LOW); 
    }
    if (5<temperature && temperature <17) {
      digitalWrite(led_verte_broche,HIGH); // On allume la LED vert
      digitalWrite(led_bleu_broche,LOW); // On éteint les autres leds
      digitalWrite(led_orange_broche,LOW); 
      digitalWrite(led_rouge_broche,LOW); 
    }
  if (17<temperature && temperature <27) {
      digitalWrite(led_orange_broche,HIGH); // On allume la LED orange
      digitalWrite(led_verte_broche,LOW); // On éteint les autres leds
      digitalWrite(led_bleu_broche,LOW);  
      digitalWrite(led_rouge_broche,LOW); 
    }
    if (27<temperature) {
      digitalWrite(led_rouge_broche,HIGH); //  On allume la LED rouge
      digitalWrite(led_verte_broche,LOW); // On éteint les autres leds
      digitalWrite(led_orange_broche,LOW); 
      digitalWrite(led_bleu_broche,LOW); 
    }
   
}

Pour aller plus loin : Contrôler votre composant avec Python

Vous pouvez aussi contrôler votre capteur de température avec python. On a fait un cours où l’on affiche la température sur la console python.

logo python