Étape 20 : Code de base
Code de base :
Arrosage avec l’humidité et de la sensibilité à la lumière de jardin automatique
Initialisation / / / #include
inclure les LCD bibliothèque int MoistSensePin = 0 ; L’humidité désigné capteur analogique pin à 0 int LightSensePin = 1 ; Broche analogique désigné capteur de luminosité en 1 int solénoïde = 3 ; Désigner le téton de contrôle solénoïde à 3 innovente lcd (7, 8, 9, 10, 11, 12) ; initialiser les goupilles de LCD
void setup() {pinMode (solénoïde, OUTPUT); / / ensembles solénoïde broches de sortie pour l’envoi de 5v à mosfet porte pinMode (sortie 5,); pinMode (sortie 6,) ; Serial.Begin(9600) ; LCD.Begin (16, 4) ; mettre en place nombre de l’écran LCD de colonnes et de lignes : lcd.print ("- arrosage critères-") ; Message d’impressions entre guillemets}
Début de boucle / / /
void loop() {capteur flotteur = analogRead(MoistSensePin) ; //retrieve capteur valeur float de lumière = analogRead(LightSensePin) ; delay(2000) de valeur pour le capteur de lumière //retrieve ; //2 retard s digitalWrite (5, HIGH); //Set statut Led sur delay(250) ; //2 retard s digitalWrite (5, faible); //Set statut Led OFF lcd.setCursor (0, 1); //Setup txt à suivre sur le troisième lcd.print("Moisture:") de ligne ; lcd.setCursor (10, 1) ; installation txt à suivre sur le premier lcd.print(sensor) de ligne ; imprimer « sensor » valeur à LCD delay(1000) ; Retard de 1000 cycles de valeur de la sonde pour lcd.setCursor de lisibilité plus facile (0, 2) ; Installation txt à suivre sur le troisième lcd.print("Light:") de ligne ; lcd.setCursor (7, 2) ; Installation txt à suivre sur le troisième lcd.print(light) de ligne ; imprimer « lumière » valeur à LCD delay(1000) ; Retard de 1000 cycles valeur lumineux pour une lisibilité plus facile Serial.print (« lumière: ") ; Serial.println(Light) ; afficher des variables « lumière » à serial monitor pour diagnostic delay(1000) ; Retard de 1000 cycles valeur clair pour une lecture plus facile
Serial.Print ("l’humidité:") ; Serial.println(Sensor) ; afficher des variables « capteur » à serial monitor pour diagnostic delay(1000) ; Retard de 1000 cycles de valeur de la sonde pour une lisibilité plus facile
début de la boucle imbriquée pour du solénoïde de contrôle basé sur la lumière et capteur de valeurs / / / si (lumière > 200) //initialization de boucle, contrôlé par la valeur de lumière afin de déterminer le jour ou la nuit pour la sécurité de l’usine {si (capteur > 190) //if lumière est sûr alors demander si la sonde d’humidité est assez sèche pour commencer l’arrosage {lcd.setCursor (0, 4); //set point de départ de la deuxième ligne de l’écran LCD du texte lcd.print("! Active!") ; imprimer active à diagnostiquer si l’arrosage est considérée comme nécessaire digitalWrite (6, HIGH) ; Eau LED de contrôle de la valeur sur digitalWrite (3, hauts) ; Si l’arrosage est nécessaire le solénoïde est défini sur élevé delay(60000) déclenchement de solénoïde ; eaux pour 1min digitalWrite (3, bas) ; } else //alternative si pas assez sec pour l’arrosage {digitalWrite(3,LOW) ; //set mosfet porte au bas pour désactiver ou garder le solénoïde désactivé digitalWrite (6, LOW); lcd.setCursor (0, 4); //set à partir de texte à la deuxième ligne du LCD lcd.print("Inactive!") //print inactif! à dertime de l’électroaimant a été désactivé}} d’autre //alternative si pas assez sombre pour l’arrosage {digitalWrite(3,LOW) ; //keep la broche de gate mosfet à faible pour maintenir hors statut, si pas assez sombre pour l’arrosage digitalWrite (6 FAIBLE) ; lcd.setCursor (0, 4) ; définir la position du texte à la deuxième position lcd.print("Inactive!") ; imprimer "Inactif!" de faire prendre conscience de que son statut pas assez sombre et inactif est maintenue}}