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
- Faire l’acquisition de la tension délivrée par le capteur de température LM35
- Faire l’acquisition de la tension délivrée par le capteur de luminosité LDR
- Vérifier l’appui sur le bouton ou sur la télécommande
- 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
- Afficher la température, la luminosité, l’état de la trappe (ouverte ou fermée) sur le port série
- Faire une vidéo du montage et envoyez la au professeur