Automatisk Garden vattning enhet - Arduino (7 / 14 steg)
Steg 7: Att sätta koden tillsammans
Nästa steg är att ändra dessa två delar av koden och sedan lägga en slinga i det som kommer att vända på reläet när markfuktighet faller till en viss punkt. När det är allt sagt och gjort, det ser ut så här:
Detta första avsnitt sätter upp våra variabler och initierar LCD-skärmen
int jord = 0;
int relä = 7.
int relay_level = 60.
#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
initiera seriell kommunikation på 9600 bitar per sekund:
Serial.BEGIN(9600); Ange den LCD antal kolumner och rader:
}
loop rutinen körs för evigt om och om igen:
void loop() {
Läs input på analoga stift 0:
int sensorValue = analogRead(A0);
sensorValue = begränsa (sensorValue, 485, 1023);
skriva ut värdet du läsa: Serial.println(sensorValue);
initiera digital PIN-koden som en utgång.
pinMode (relä, utgång);
karta värdet till procent
jord = karta (sensorValue, 485, 1023, 100, 0);
skriva ut jord vatten procentsatsen du beräknat att LCD-skärmen:
Serial.Print(Soil);
Serial.println("%");
ställa markören till kolumn 0, linje 1
(Obs: linje 1 är den andra raden, sedan räknar börjar med 0):
LCD.BEGIN (16, 2);
Skriv ut ett meddelande till LCD-skärmen.
LCD.Clear();
LCD.Print ("marken mättnad:");
lcd.setCursor (0, 1);
skriva ut antalet sekunder sedan återställning:
LCD.Print(Soil);
LCD.Print ("%");
dröjsmål i mellan läser för stabilitet
Delay(1000);
Denna nästa slinga vänder på reläet för en minut om fukt är under nivån vi vill (i detta fall 60%), om fukt är ovan att nivå, det håller testning. Om fukt är under den nivån visar det reläet (och därefter vatten ventil för så länge du vill ha (i detta fall det är inställt för 60000 millisekunder (1 minut)). Sedan väntar en minut före provningen jorden igen för att se om det är tillräckligt våt.
om (smutsa < relay_level) {
digitalWrite (relä, hög);
Aktivera reläet (HIGH är spänningsnivån)
Delay(60000);
vänta en minut
digitalWrite (relä, låg);
Inaktivera LED genom att spänningen låg
Delay(60000);
vänta en minut
}
}