Raspberry Pi kontrollerade bevattningssystem (10 / 12 steg)
Steg 10: Testa krets
Innan du går för fullt utvecklad automation, är det en bra idé att testa banan manuellt. Du kan göra detta genom att använda kommandoraden i Python. Kom ihåg att jag antar att du har grundläggande kunskaper i hur man använder en Raspberry Pi på denna punkt. Om du befinner dig ställa frågor som "Hur installerar jag operativsystemet?" eller "hur jag startar Python?", ska du kolla in de många Instructables på komma igång med Raspberry Pi eller Raspberry Pi stiftelsens officiella utbildningsresurser innan du fortsätter.
För att testa din krets, driva upp din Raspberry Pi (topp LED på din kretskort ska lysa upp eftersom den är ansluten direkt till de 3.3V supply), sedan öppna Python och ange följande kommandon:
importera RPi.GPIO som GPIO
GPIO.setmode (GPOI. BCM)
GPIO.setup(17,out)
GPIO.setup(27,out)
GPIO.setup(22,out)
Detta initierar GPIO pin kontrollerna och sätter stift 17, 27 och 22 som resultat. Skriv nu
GPIO.output (27, GPIO. HÖG)
GPIO.output (22, GPIO. HÖG)
Detta aktiverar de andra två status lysdioderna. Du vet att saker och ting fungerar så långt. Nu till det stora provet (drumroll). Typ
GPIO.output (17, GPIO. HÖG)
Du bör höra ett "klick" som relä växlar position. Gå ut och kolla din magnetventil. Det bör vara öppna och vatten bör vara flytande. Förutsatt att du kollat för och fasta läckor tidigare, detta innebär allting arbetar! Nu, gå tillbaka insidan och typ
GPIO.output (17, GPIO. LÅG)
Du bör höra en annan "klicka" från reläet. Detta stängs ventilen. Gå tillbaka utsidan och kontrollera att vattnet har slutat.
Stor så far...but du inte vill skriva en massa kommandon varje gång du vatten dina växter. Nu är det dags att automatisera hela!
Varning: Använd inte GPIO.cleanup(). Genom några timmar av irriterande felsökning fann jag att detta kommando (av skäl jag fortfarande inte förstår) orsakar reläet att slå på igen, öppna ventilen. Den bästa förklaringen jag kan hitta kom från denna Stackexchange tråd där en kommentar anges att "metoden rensning anger alla gpios du har brukade vara ingångar och inaktiverar de inre pull-tabs-pop-ups/nedgångar för dessa gpios." Du behöver PIN-koden att stanna som en utgång med en låg spänning att hålla reläet bort, så som kan orsaka problemet. Jag försökte lägga till en 10K nedrullningsbara motstånd till MOSFET porten men det fungerade inte. Så, även om det rekommenderas generellt som god praxis, skulle jag undvika med hjälp av GPIO.cleanup() för detta projekt. Lämna gärna en kommentar om du har en lösning här.