Arduino automatisk vattning trädgård projekt (14 / 16 steg)
Steg 20: Basic-kod
Basic-kod:
Auto Garden vattning med fukt och ljuskänslighet
Initiering / / / #include
inkluderar LCD bibliotek int MoistSensePin = 0; Designera fukt sensor analoga stift till 0 int LightSensePin = 1; Designera ljussensor analoga stift till 1 int magnetventil = 3; Utse magnetventil kontroll stift till 3 LiquidCrystal lcd (7, 8, 9, 10, 11, 12); initiera LCD pins
void setup() {pinMode (magnetventil, OUTPUT); / / uppsättningar magnetventil Pin till utgången för att skicka 5v till mosfet gate pinMode (5, OUTPUT), pinMode (6, OUTPUT); Serial.BEGIN(9600); LCD.BEGIN (16, 4); Ange den LCD antal kolumner och rader: lcd.print ("- vattning krav-"). Skriver ut meddelandet i citat}
Början av Loop / / /
void loop() {float sensor = analogRead(MoistSensePin); //retrieve sensor värde float ljus = analogRead(LightSensePin); //retrieve ljussensor värde delay(2000) //2 sek fördröjning digitalWrite (5, HIGH); //Set status-Led till på delay(250); //2 sek fördröjning digitalWrite (5, låg); //Set status Led av lcd.setCursor (0, 1); //Setup txt att följa på den tredje raden lcd.print("Moisture:"); lcd.setCursor (10, 1); setup txt att följa på den första raden lcd.print(sensor); skriva ut "sensor" värde till LCD delay(1000); Fördröjning av 1000 cykler sensor värde för lättare läsbarhet lcd.setCursor (0, 2); Setup txt att följa på den tredje raden lcd.print("Light:"); lcd.setCursor (7, 2); Setup txt att följa på den tredje raden lcd.print(light); skriva ut "light" värde till LCD delay(1000); Fördröjning av 1000 cykler ljusvärde för lättare att läsa på Serial.print ("ljus:"); Serial.println(Light); "light" variabel utskrift till seriell monitor för diagnostik delay(1000); Fördröjning av 1000 cykler ljusvärde för lättare läsbarhet
Serial.Print ("fukt:"); Serial.println(sensor); skriva ut "sensor" variabel utgång till seriell monitor för diagnostik delay(1000); Fördröjning av 1000 cykler sensor värde för lättare läsbarhet
början av kapslade slingan för magnetventil kontroll baserad på ljus och sensor värden / / / om (ljus > 200) //initialization av loop kontrolleras av det ljus värdet för att bestämma dag eller natt för anläggningens säkerhet {om (sensor > 190) //if light är säkert då fråga om fukt sensorn är tillräckligt torrt för att börja vattna {lcd.setCursor (0, 4); //set startpunkt av text till andra raden av LCD lcd.print("! Aktiva!"); skriva ut aktiv för att diagnostisera om vattning bedöms vara nödvändiga digitalWrite (6, hög); Ställa in vattenstatus Led till på digitalWrite (3, hög); om vattning behövs nödsänkningssolenoiden är inställd på hög utlösande magnetventil delay(60000); vatten för 1min digitalWrite (3, låg); {} annat //alternative om inte tillräckligt torrt för vattning {digitalWrite(3,LOW), //set mosfet gate till låga för att inaktivera eller hålla magnetventil inaktiveras digitalWrite (6, låg), lcd.setCursor (0, 4); //set start till andra rad av LCD lcd.print("Inactive!"), //print inaktiv! till dertime av nödsänkningssolenoiden har inaktiverats}} annat //alternative om inte tillräckligt mörk för vattning {digitalWrite(3,LOW); //keep mosfet gate stift till låg för att upprätthålla av status om inte tillräckligt mörk för vattning digitalWrite (6 LÅG); lcd.setCursor (0, 4); Ange textens placering till andra position lcd.print("Inactive!"); skriva ut "Inaktiv!" att göra medvetna sin status inte tillräckligt mörk och inaktiva upprätthålls}}