TP Arduino : Serre automatisée

Le but est de réaliser un programme permettant la gestion d’une serre. Il faudra surveiller la température et ouvrir une trappe si cette température est trop importante (>25°C). Il faudra pouvoir également ouvrir la trappe manuellement soit avec un bouton ou une télécommande. La nuit la trappe devra être fermée pour ne descendre trop en température.

Vous utiliserez une Breadboard, un capteur de température LM35, un servomoteur pour piloter l’ouverture de la trappe, un bouton poussoir et une résistance et/ou une télécommande et un capteur IR receiver et une résistance LDR pour détecter la luminosité.

Montage LM35 :

//Capteur de température à LM35
const int LM35 = A0; //pin LM35
float temperature;

void setup() {
Serial.begin(9600);
}

void loop() {
//CAN sur 10 bits soit 1 bit représente 5/1023 Volt et pour le LM35 10mV=1°C (cf 

http://www.ti.com/lit/ds/symlink/lm35.pdf

)
temperature = (float(analogRead(LM35))*5/(1023))/0.01;
Serial.print("Temperature: ");
Serial.println(temperature);
delay(1000);
}

Montage LDR :

//Capteur de luminosité
const int LDR = A0; //pin LDR
float luminosite;

void setup() {
Serial.begin(9600);
}

void loop() {
luminosite = analogRead(LDR);
Serial.print("Luminosité : ");
Serial.println(luminosite);
delay(1000);
}

Montage bouton :

//Bouton poussoir et LED
int bp = 2;
int led = 11;
int bp_test = 0;

void setup()
{ pinMode(bp, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{ bp_test = digitalRead(bp);
  
 if (bp_test == HIGH) {
   digitalWrite(led, HIGH);
 } 
 else {
   digitalWrite(led, LOW);
 }
}

Montage télécommande :

#include <IRremote.h>

const unsigned short int telecommande_pin=4; //capteur IR sur pin 4
IRrecv telecommande(telecommande_pin);       //objet telecommande
decode_results code;                         //code de la telecommande

void setup(){
  Serial.begin(9600);
  telecommande.enableIRIn();                     //Activer le capteur IR
}

void loop(){
  if(telecommande.decode(&code)){          //Un code a été reçu ?
    Serial.println(code.value,HEX);        //Afficher le code sur le port serie
    
    delay(30);  //Ajout d'un delai pour éviter les erreurs de lecture
    telecommande.resume();                  //reception du code suivant
  } 
}

Montage Servo

#include <Servo.h>
#define pinServo 9
Servo trappe;

void setup() {
  trappe.attach(pinServo);
  Serial.begin(9600);
  trappe.write(0);
  delay(2000);
}

void loop() {
 trappe.write(47);
 delay(500);
 trappe.write(0);
 delay(500);
}

TP Serre

  1. Faire l’acquisition de la tension délivrée par le capteur de température LM35
  2. Faire l’acquisition de la tension délivrée par le capteur de luminosité LDR
  3. Vérifier l’appui sur le bouton ou sur la télécommande
  4. En fonction de la température ou de la luminosité ou de l’état du bouton ou de la télécommande, agir sur le servomoteur qui ouvre ou ferme la trappe
  5. Afficher la température, la luminosité, l’état de la trappe (ouverte ou fermée) sur le port série
  6. Faire une vidéo du montage et envoyez la au professeur

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *