1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| #include <LiquidCrystal.h>
#include <SoftwareSerial.h>
SoftwareSerial HC06(11,10); // pin data module bluetouth
String messageRecu;
char mode; // variable mode qui prend la valeur des messages envoyés par bluetouth
LiquidCrystal lcd(2,3,4,5,6,7); //ls valeurs correspondent aux pins de l'arduino
const int relais = 12; //le pin numérique du cateur est branché sur le pin 2 de l'arduino
const int analog_capteur = A1; //le pin analogique du capteur est branché sur le pin A1 de l'arduino
const int LED_rouge = 13; //la led est branché sur le pin numérique 2 de l'arduino
int ValeurCapteur = 0;
int seuil_alerte = 500; // valeur peux être changé
void setup()
{
pinMode(relais,OUTPUT);
pinMode(LED_rouge, OUTPUT);
Serial.begin(9600);
HC06.begin(9600);
lcd.begin(20,4);
lcd.clear();
delay(10);
lcd.print("Mode : ");
lcd.setCursor(2,0);
lcd.print("Hum.Terre : ");
}
void loop()
{
lcd.setCursor(1,8);
lcd.print(ValeurCapteur);
delay(10);
while (HC06.available())
{char c = HC06.read();
messageRecu += c;
}
if (messageRecu.length()>0)
{
Serial.println(messageRecu);
if (messageRecu == "manuel") //mode manuel
{
lcd.setCursor(1,8);
lcd.print(" ");
lcd.print("Manuel");
delay(10);
digitalWrite(relais, HIGH);
digitalWrite(LED_rouge, HIGH);
}
if (mode == "OFF") //mode OFF
{
lcd.setCursor(1,8);
lcd.print(" ");
lcd.print("OFF");
delay(10);
digitalWrite(relais, LOW);
digitalWrite(LED_rouge, HIGH);
}
if(mode == "automatique") //mode automatique
{
lcd.setCursor(1,8);
lcd.print(" ");
lcd.print("Automatique");
delay(10);
while (mode == "Automatique")
{
ValeurCapteur = analogRead(analog_capteur); //ValeurCapteur et la variable qui prend les valeurs de la pin analogique A1
if(ValeurCapteur > seuil_alerte) //si la valeur de ValeurCapteur est plus haute que la limite alors pompe ON
{
digitalWrite(relais, HIGH);
digitalWrite(LED_rouge, HIGH);
delay(20000); //temps de fonctionnement sec
digitalWrite(relais, LOW);
digitalWrite(LED_rouge, LOW);
delay(900000); //temps avant que le capteur refasse une vérification. 15 min
}
}
}
}
delay(500); //temps avant que la void loop se refasse
}
//max temps pour delay en milliseconde 4 294 967 295 |
Partager