Étape 7: Assembler le Code
L’étape suivante consiste à modifier ces deux morceaux de code puis mettre une boucle qui se met en marche le relais lorsque l’humidité du sol descend jusqu'à un certain point. Lorsque que tout est dit et fait, il ressemble à ceci :
Cette première section met en place nos variables et initialise l’écran LCD
sol int = 0 ;
int relais = 7 ;
int relay_level = 60 ;
#include
Innovente lcd (12, 11, 5, 4, 3, 2) ;
la routine d’installation s’exécute une fois que lorsque vous appuyez sur reset :
void setup() {}
initialiser une communication série 9600 bits par seconde :
Serial.Begin(9600) ; mis en place nombre de l’écran LCD de colonnes et de lignes :
}
la routine de la boucle s’exécute maintes et maintes fois pour toujours :
void loop() {}
lire l’entrée sur la broche analogique 0 :
int sensorValue = analogRead(A0) ;
sensorValue = contraindre (sensorValue, 485, 1023) ;
imprimer la valeur que vous lisez : Serial.println(sensorValue) ;
initialiser la broche numérique en tant que sortie.
pinMode (relais, sortie) ;
carte de la valeur à un pourcentage
sol = carte (sensorValue, 485, 1023, 100, 0) ;
imprimer le pourcentage d’eau du sol que vous avez calculé à l’écran LCD :
Serial.Print(Soil) ;
Serial.println("%") ;
régler le curseur sur la colonne 0, ligne 1
(Remarque : la ligne 1 est la seconde ligne, puisque le décompte commence par 0) :
LCD.Begin (16, 2) ;
Imprimer un message à l’écran LCD.
LCD.Clear() ;
LCD.Print ("Saturation du sol:") ;
lcd.setCursor (0, 1) ;
imprimer le nombre de secondes depuis le reset :
LCD.Print(Soil) ;
LCD.Print ("%") ;
délai entre les lectures de stabilité
Delay(1000) ;
Cette boucle suivante active le relais pour une minute si l’humidité est inférieure au niveau que nous voulons (dans ce cas 60 %), si l’humidité est plus haut que niveau, il maintient stable. Si le niveau d’humidité est inférieur à ce niveau, il s’avère le relais (et par la suite l’eau vanne pour aussi longtemps que vous le souhaitez (dans ce cas, il est fixé pour 60000 millisecondes (1 minute)). Puis, il attend encore une minute avant de tester le sol à nouveau afin de voir si elle est assez humide.
Si (sol < relay_level) {}
digitalWrite (relais, élevé) ;
Allumez le relais (le haut est le niveau de tension)
Delay(60000) ;
Attendez une minute
digitalWrite (relais, faible) ;
éteindre la LED en rendant la tension basse
Delay(60000) ;
Attendez une minute
}
}