Innholdsfortegnelse:
- Trinn 1: DELER OG VERKTØY
- Trinn 2: JORDFUKTIGHETSPROBE V1
- Trinn 3: JORDFUKTIGHETSPROBE V2
- Trinn 4: SOIL FUKTIGHETSPROBE V3 "Katana"
- Trinn 5: GRUNNLEGGENDE FUNKSJONALITET
- Trinn 6: 7 SEGMENT DISPLAY
- Trinn 7: PUMPE- og PUMPKONTROLL
- Trinn 8: KONFIGURASJON og KNAPPER
- Trinn 9: RTC: REAL TIME CLOCK
- Trinn 10: SETT DET HELE SAMMEN
- Trinn 11: SKETSER og mer
- Trinn 12: *** VI VINNE !!! ***
Video: APIS - Automatisert plantevanningssystem: 12 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
HISTORIEN: (en neste utvikling av dette systemet er tilgjengelig her)
Det er ganske mange instrukser om temaet plantevanning, så jeg fant knapt opp noe originalt her. Det som gjør dette systemet annerledes er mengden programmering og tilpasning som gikk inn i det, noe som gir bedre kontroll og integrering i det daglige livet.
Her er en video av en vanningsløp: vanningsløp
Slik oppstod APIS:
Vi har to rødglødende chilipepperplanter, som knapt har "overlevd" flere av feriene våre, og nesten vurdert familiemedlemmer på dette tidspunktet. De har vært gjennom ekstrem tørke og vanning, men har alltid kommet seg på en eller annen måte.
Ideen om å bygge Arduino-basert plantevanning var nesten den første ideen om hvordan Arduino kan brukes som et hjemmeautomatiseringsprosjekt. Så et enkelt plantevanningssystem ble bygget.
Imidlertid hadde versjon 1 ingen indikasjon på jordfuktighet, og det var ingen måte å si om det var i ferd med å vanne plantene, eller vanning var noen dager unna.
Nysgjerrighet, som vi alle vet, drepte katten, og versjon 2 ble bygget med en firesifret 7 -segmentsmodul for å vise gjeldende fuktighet til enhver tid.
Det var ikke nok. Det neste spørsmålet var "når var det siste gangen det vannet plantene"? (Siden vi sjelden var hjemme for å være vitne til det). Versjon 3 brukte 7 -segmentsmodulen til også å vise hvor lenge siden den siste vanningskjøringen skjedde (som en kjørende tekststreng).
En natt startet vanningen klokken 04.00 og vekket alle. Frustrerende … Synes det er for mye jobb å slå APIS av for natten og på for å forhindre vanning midt på natten, ble det lagt til en sanntidsklokke for å sette enheten i dvale om natten som en del av versjon 4.
Siden sanntidsklokken krever periodiske justeringer (som for eksempel bytte av sommertid), inneholder versjon 5 tre knapper som gjør det mulig å angi en rekke plantevanningsparametere.
Det stoppet ikke der. Jeg la merke til at fuktighetssonden har en tendens til å erodere ganske raskt, muligens på grunn av at den (etter design) var under konstant spenning, og derfor var det konstant elektrisk strøm mellom prober (eroderende anode). Den billige jordsonden fra Kina overlevde omtrent en uke. Til og med en galvanisert spiker ble "spist opp" på en måned. En sonde i rustfritt stål holdt bedre, men jeg la merke til at selv det ga opp. Versjon 6 slår på sonden i bare 1 minutt hver time (og hele tiden under vanning), og reduserer dermed erosjon dramatisk (~ 16 minutter om dagen mot 24 timer i døgnet).
Ideen:
Utvikle plantevanningssystem med følgende funksjoner:
- Mål jordfuktighet
- Når du når et forhåndsdefinert "lavt" fuktighetsmerke, slår du på vannpumpen og vanner plantene til et "høyt" fuktighetsmerke er nådd
- Vanning bør utføres i flere løp, atskilt med perioder med inaktivitet for å tillate metning av vann gjennom jorda
- Systemet bør deaktivere seg om natten mellom "søvn" og "våkne" tider
- "Wake up" -tiden bør justeres for helger til en senere verdi
- Systemet bør føre loggen over pumpekjøringer
- Systemet skal vise gjeldende avlesning av jordfuktighet
- Systemet skal vise dato/klokkeslett for siste pumpekjøring
- Vannparametere bør være justerbare uten omprogrammering
- Stopp pumpingen og angi Feiltilstand hvis pumpekjøring ikke fører til endring i fuktighet (ute av vann eller sensorproblemer) som forhindrer oversvømmelse av anlegget og vannlekkasje
- Systemet bør slå fuktighetssonden på/av for å unngå metall erosjon
- Systemet skal tappe vann fra rørene for å forhindre at det dannes mugg inne i dem
Følgende parametere bør konfigureres via knapper:
- Fuktighets "lav" -merke, i %, for å starte pumpekjøring (standard = 60 %)
- Luftfuktighet "høyt", i %, for å stoppe pumpekjøring (standard = 65 %)
- Varighet av en enkelt vanning, i sekunder (standard = 60 sekunder)
- Antall forsøk for å nå målfuktigheten (standard = 4 kjøringer)
- Militær tid for å deaktivere for natten, bare timer (standard = 22 eller 22:00)
- Militær tid for å aktivere om morgenen, bare timer (standard = 07 eller 7 am)
- Helgejustering for morgenaktivering, deltatimer (standard = +2 timer)
- Gjeldende dato og klokkeslett
APIS skriver dato/klokkeslett for 10 siste vanningsturer i EEPROM -minnet. Loggen kan vises, og viser dato og klokkeslett for løpene.
En av mange ting vi lærte fra APIS er at du faktisk ikke trenger å vanne planter hver dag, noe som var vår rutine før vi så jordfuktighetsavlesningene på et 7 -segmenters display …
Trinn 1: DELER OG VERKTØY
Du trenger følgende deler for å bygge APIS:
KONTROLLBOKS OG SLANG:
- Arduino Uno -brett: på Amazon.com
- 12v peristaltisk væskepumpe med silikonrør: på Adafruit.com
- 4X numerisk LED-skjerm Digital Tube JY-MCU-modul: på Fasttech.com
- DS1307 sanntids klokkeutbruddssett: på Adafruit.com (valgfritt)
- Microtivity IM206 6x6x6mm taktbryter: på Amazon.com
- Vero board: på Amazon.com
- L293D motordriver IC: på Fasttech.com
- 3 x 10 kOhm motstander
- Arduino prosjekter plastkasse: på Amazon.com
- 12v AC/DC -adapter med en 2,1 mm strømkontakt: på Amazon.com
- Bambusspyd
- Slitebane og litt supercement lim
- Supermyk latexgummislange 1/8 "ID, 3/16" OD, 1/32 "vegg, halvklart rav, 10 fot. Lengde: på McMaster.com
- Slitesterk Nylon Tight-Seal Barbed Tube Fitting, Tee for 1/8 "Tube ID, White, pakker med 10: på McMaster.com
- Slitesterk nylon tetningsforsegling med piggrør, Wye for 1/8 "Tube ID, hvit, pakker med 10: på McMaster.com
- Som vanlig, ledninger, loddeverktøy, etc.
FUKTIGHETSPROBE:
- Lite treverk (1/4 "x 1/4" x 1 ")
- 2 x nåler for ekstraksjon av akne i rustfritt stål: på Amazon.com
- Jordmodulighetsdeteksjonssensormodul: på Fasttech.com
Trinn 2: JORDFUKTIGHETSPROBE V1
Jordfuktighet måles basert på motstanden mellom to metallprober som er satt inn i bakken (omtrent 1 tomme fra hverandre). Skjemaene er representert på bildet.
Den første sonden jeg prøvde var den du kan kjøpe fra en rekke internettleverandører (som denne).
Problemet med dem er at folienivået er relativt tynt og eroderer raskt (i løpet av en eller to uker), så jeg forlot raskt denne ferdigproduserte for den mer robuste sensoren, basert på galvanisert spiker (se neste trinn).
Trinn 3: JORDFUKTIGHETSPROBE V2
"Neste generasjons" sonde var hjemmelaget av to galvaniserte spiker, et trebord og et par ledninger.
Siden jeg allerede hadde en slitt produsert sonde, brukte jeg tilkoblingsstykket og elektronikkmodulen igjen fra den, i utgangspunktet bare bytte ut jordkomponenten.
Galvaniserte negler, til min overraskelse, erodert også (om enn tregere enn tynn folie), men fortsatt raskere enn jeg skulle ønske.
En annen sonde ble designet, basert på nåler for fjerning av akne i rustfritt stål. (se neste trinn).
Trinn 4: SOIL FUKTIGHETSPROBE V3 "Katana"
Sonden i rustfritt stål (som ligner samuraisverd, derav navnet) er den som brukes for tiden.
Jeg tror den raske erosjonen kan tilskrives det faktum at sonden alltid var under elektrisk spenning (24x7) uavhengig av hvor ofte den faktiske målingen fant sted.
For å redusere dette, endret jeg måleintervallene til å være en gang i 1 time (tross alt, dette er IKKE et sanntidssystem), og koblet sonden til en av de digitale pinnene i stedet for permanent 5v. For øyeblikket blir sonden bare drevet ~ 16 minutter per dag i stedet for 24 timer, noe som bør øke levetiden dramatisk.
Trinn 5: GRUNNLEGGENDE FUNKSJONALITET
APIS er basert på Arduino UNO -styre.
APIS måler jordfuktigheten en gang i timen, og hvis den faller under en forhåndsdefinert terskel, slås pumpen på i en forhåndsdefinert tidsperiode forhåndsdefinert antall ganger atskilt med "metning" -intervaller.
Når en målt fuktighetsgrense er nådd, går prosessen tilbake til en gang i timen målemodus.
Hvis målfuktigheten ikke kan nås, men den nedre grensen ble nådd, er det også OK (i det minste fant det litt vanning sted). Årsaken kan være uheldig sondeplassering, der den er for langt fra fuktig jord.
Men hvis ikke den nedre luftfuktighetsgrensen ikke kunne nås, erklæres en feiltilstand. (Mest sannsynlig er det et sondeproblem, eller det er tomt for vann i bøtte osv.). Under feiltilstand vil enheten sove i 24 timer uten å gjøre noe, og deretter prøve igjen.
Trinn 6: 7 SEGMENT DISPLAY
TM1650 BASERT 7 SEGMENTVISNING:
Opprinnelig hadde APIS ingen visningsevne. Det var umulig å fortelle gjeldende jordfuktighetsnivå uten å koble til via USB.
For å fikse det, la jeg til et firesifret 7 -segment display til systemet: på Fasttech.com
Jeg kunne ikke finne et bibliotek for å jobbe med denne modulen noe sted (verken et datablad for det), så etter noen timer med I²C -portundersøkelse og eksperimentering, bestemmer jeg meg for å skrive et driverbibliotek selv.
Den støtter skjermer opptil 16 sifre (med 4 som standard), kan vise grunnleggende ASCII -tegn (vær oppmerksom på at ikke alle tegn kan konstrueres med 7 segmenter, så bokstaver som W, M, etc. er ikke implementert)., Støtter desimal punktvisning på modulen, som kjører en rekke tegn (for å vise mer enn 4 bokstaver), og støtter 16 lysstyrker.
Biblioteket er tilgjengelig på arduino.cc lekeplass her. TM1650 driverbibliotek
Eksempelvideo er tilgjengelig her
ANIMASJON:
Litt av 7 segmenters animasjon er implementert under en vannføring.
- Mens pumpen er aktivert, kjører de digitale prikkene på skjermen i et venstre til høyre mønster, som symboliserer en vannføring: vanning av animasjonsvideo
- Under "metning" -perioden løper prikkene fra midten av skjermen utover og symboliserer metning: metningsanimasjonsvideo
Unødvendig, men en fin touch.
Trinn 7: PUMPE- og PUMPKONTROLL
PUMPE
Jeg brukte 12v peristaltisk væskepumpe (tilgjengelig her) for vanning av plantene. Pumpen gir omtrent 100 ml/min (som er omtrent 1/2 av et glass - godt å huske når du konfigurerer vanntiden for å unngå overløp, og det skjedde 8-))
PUMPEKONTROLL - L293D
Pumpen styres via L293D -motordriverbrikke. Siden rotasjonsretningen er forhåndsinnstilt, trenger du egentlig bare å bruke chip-aktiveringsnålen for kontroll. Retningspinnene kan kobles direkte til +5v og GND permanent.
Hvis du (som meg) ikke var sikker på hvilken retning pumpen vil gå, kan du fortsatt koble alle tre pinnene til Arduino og kontrollere retningen programmatisk. Mindre lodding.
Trinn 8: KONFIGURASJON og KNAPPER
KNAPPER:
Jeg brukte tre knapper til å konfigurere og kontrollere APIS.
Alle knappetrykk behandles basert på pin -avbruddene (PinChangeInt -biblioteket).
- Rød (lengst til høyre) er en SELECT -knapp. Det får APIS til å gå inn i konfigurasjonsmodus, og bekrefter også verdiene.
- Svarte venstre og midtre knapper (henholdsvis PLUS og MINUS) brukes til å øke/redusere konfigurerbare verdier (i konfigurasjonsmodus), eller vise gjeldende dato/klokkeslett og siste vanningskjøringsinformasjon (i normal modus).
Siden skjermen er slått av mest, vil alle knappene først "vekke" APIS, og først deretter, ved et annet trykk, utføre sin funksjon.
Skjermen slås av etter 30 sekunders inaktivitet (med mindre en vanningskjøring pågår).
APIS går gjennom konfigurasjonsparameterne ved oppstart for gjennomgang: video
KONFIGURASJON:
APIS har fire konfigurasjonsmoduser:
- Konfigurer vanningsparametere
- Sett opp sanntidsklokke
- "Force" vanning
- Gjennomgå vanningsloggen
VANNPARAMETRE:
- Lav jordfuktighetsgrense (start vanning)
- Høy terskel for jordfuktighet (stopp vanning)
- Varighet av en enkelt vanning (i sekunder)
- Antall vanningsløp i en batch
- Varigheten av jordmetningsperioden mellom kjøringer innen en batch (i minutter)
- Aktiveringstid for nattmodus (militær tid, bare timer)
- Nattmodus sluttid (militær tid, bare timer)
- Helgejustering for nattmodusens sluttid (i timer)
OPPSETT AV REAL TIME CLOCK:
- Århundre (dvs. 20 for 2015)
- År (dvs. 15 for 2015)
- Måned
- Dag
- Time
- Minutt
Klokken justeres med sekunder satt til 00 ved bekreftelse av minutter.
Innstillingen har en tidsavbruddsperiode på 15 sekunder, hvoretter alle endringer avbrytes.
Ved lagring lagres parametere i EEPROM -minnet.
Tvinge en vannkjøring:
Fortsatt ikke sikker på hvorfor jeg implementerte det, men det er der. Når den er aktivert, går APIS inn i vanningsmodus. Vanningsmodusen er imidlertid fortsatt underlagt terskler. Dette betyr at hvis du tvinger vanningsløp, men jordfuktigheten er over HIGH -merket, vil vanningsløpet umiddelbart avsluttes. I utgangspunktet fungerer dette bare hvis jordfuktigheten er mellom LAV og HØY terskel.
VANNLOGGGJENNOMGANG:
APIS fører en logg over de siste 10 vanningskjøringene i EEPROM -minnet, som brukeren kan se gjennom. Bare dato/klokkeslett for vanningsløpet lagres. Terskler (på det tidspunktet), og antall løp det tok for å nå HØY terskel, lagres ikke (selv om de kan være det i neste versjon).
Trinn 9: RTC: REAL TIME CLOCK
NATTMODUS
Når APIS vekket meg om natten, kom jeg på en idé om å implementere en "nattmodus".
En nattmodus er når ingen målinger finner sted, displayet er slått av og det ikke går vanning.
På en vanlig virkedag våkner APIS klokken 07.00 (konfigurerbar) og går inn i nattmodus klokken 22.00 (konfigurerbar). På en helg bruker APIS en "helgjustering" -innstilling for å utsette en våkne (f.eks. Kl. 9.00), hvis helgejustering er 2 timer).
RTC BREAKOUT BOARD vs. "PROGRAMVARE" RTC:
Jeg brukte hardware RTC (tilgjengelig her) for å holde oversikt over dato/klokkeslett og gå inn/ut nattmodus.
Det er valgfritt å bruke, ettersom skisser kan kompileres for å bruke såkalt "programvare" RTC (ved bruk av millis () funksjonalitet til arduino).
Ulempen med å bruke programvare RTC er at du må stille inn tiden hver gang APIS slår seg på.
Jeg endret standard RTC -bibliotek for å matche API nøyaktig, og også for å omgå millis rollover -problem. (Se skissetrinnet for nedlasting).
Trinn 10: SETT DET HELE SAMMEN
Hele systemet (unntatt sonde) inkludert pumpen passer i en liten boks for Arduino Uno.
- TM1650 -skjermen bruker TWI -grensesnitt, så SDA- og SDC -ledningene går til henholdsvis Arduino -pinner A4 og A5. De to andre ledningene er +5v og GND.
- RTC -kortet bruker TWI -grensesnitt, så det samme som ovenfor. (TM1650 og RTC bruker forskjellige porter, slik at de sameksisterer fredelig). RTC +5v pin er koblet til arduino pin 12 (drives via digital pin i stedet for +5v). Husker ikke hvorfor jeg gjorde det, du trenger ikke.
- L293D -pinner er koblet som følger: aktiver (pin 1) til D5, og retningskontrollpinner 2 og 7 til henholdsvis arduino -pins D6 og D7.
- KNAPPER er koblet til pinne D2, D8 og D9 for henholdsvis SELECT, PLUS og MINUS. (Knappene er implementert med en nedtrekkbar 10K-motstand-i "aktiv-høy" -konfigurasjonen).
- PROBE -modulens +5v strøm er koblet til arduino pin 10 (for å muliggjøre periodiske målinger), og sonde er koblet til analog pin A1.
MERK: Fritzing -skjemafilen er lagt til i github -depotet.
Trinn 11: SKETSER og mer
Oppdatering for mars 2015:
- Lagt til funksjonalitet for å tømme rørene etter vanning for å forhindre at det dannes mugg (gutt! Jeg er glad jeg ikke har pumpet rotasjonsretningen på L293D!)
- Mer omfattende logging inkluderer dato/klokkeslett for vanningens start og slutt, begynnende og avsluttende fuktighet og hvor mange ganger pumpen ble aktivert under vanningsløpet
- Feilrutine oppdatert: enheten vil hardt tilbakestilles etter 24 timer etter at feilen er angitt
- Omkompilert med TaskScheduler 2.1.0
- Ulike andre feilrettinger
18. november 2015 ble APIS oppgradert med følgende tilleggsfunksjoner:
- Bruk av DirectIO -bibliotek for raskere og enklere PIN -endringer
- Bruk av tidssonebiblioteket for å skifte mellom EST og EDT på riktig måte
- Lagt til knappelukkende logikk med bare TaskScheduler
- Lagt til funksjon for gjentagelse av knapper (verdisyklus hvis knappen holdes inne, og syklusens hastighet øker etter 5 sykluser)
- Kompilert på nytt med IDE 1.6.6 AVR 1.6.9 mot TaskScheduler 1.8.4
- Flyttet til Github
BIBLIOTEKER:
APIS er basert på følgende biblioteker:
- EEPROM - en del av Arduino IDE
- Wire - en del av Arduino IDE
- EnableInterrupt - tilgjengelig på Github
- Tidssone - tilgjengelig på Github
- DirectIO - tilgjengelig på Github
Endret (forked) av meg:
- Tid - tilgjengelig på Github
- RTClib - tilgjengelig på Github
Utviklet av meg:
- TM1650 - tilgjengelig på Github
- TaskScheduler - tilgjengelig på Github
- AvgFilter - tilgjengelig på Github
SKISSE:
Siste versjon av APIS -skissen, inkludert fritzing schematics file, er tilgjengelig på Github
DATAARK:
- L293D: her
- RTC breakout board: her
Trinn 12: *** VI VINNE !!! ***
Dette prosjektet vant andre pris i hjemmeautomatiseringskonkurransen sponset av Dexter Industries.
Sjekk det ut! WOO-HOO !!!
Andre pris i hjemmeautomatisering
Anbefalt:
Automatisk plantevanningssystem ved bruk av en mikro: bit: 8 trinn (med bilder)
Automatisk plantevanningssystem ved bruk av en Micro: bit: I denne instruksen skal jeg vise deg hvordan du bygger et automatisk plantevanningssystem ved hjelp av en Micro: bit og noen andre små elektroniske komponenter. Micro: bit bruker en fuktighetssensor for å overvåke fuktighetsnivået i plantens jord og
UWaiPi - tidsdrevet automatisk plantevanningssystem: 11 trinn (med bilder)
UWaiPi - tidsdrevet automatisk plantevanningssystem: Hei! Glemte du å vanne plantene dine i dag tidlig? Planlegger du en ferie, men tenker på hvem som skal vanne plantene? Vel, hvis svarene dine er Ja, så har jeg en løsning på problemet ditt. Jeg er veldig glad for å introdusere uWaiPi
Hvordan bygge et DIY automatisk plantevanningssystem med WiFi -varsler: 15 trinn
Hvordan bygge et DIY automatisk plantevanningssystem med WiFi -varsler: Dette er det ferdige prosjektet, et DIY automatisk plantevanningssystem som styres via #WiFi. Til dette prosjektet brukte vi det automatiske hagesystemet for selvmontering av hagesystem fra Adosia. Dette oppsettet bruker magnetventiler for vann og en analog jordsmuss
Automatisk plantevanningssystem: 5 trinn (med bilder)
Automatisk plantevanningssystem: Dette er det enkleste og billigste plantevanningssystemet du kan lage. Jeg brukte ikke noen mikrokontroller. Det er i utgangspunktet en transistorbryter. Du må legge til litt motstand mellom kollektor og base for å forhindre at transistoren blir defekt . (ikke bruk w
Arduino automatisk plantevanningssystem: 8 trinn (med bilder)
Arduino Automatic Plant Watering System: Meet Sprout - the Modern Indoor Planter som automatisk vanner plantene, urter, grønnsaker osv. Og vil revolusjonere hagearbeidet ditt. Det består av et integrert vannreservoar som vann pumpes fra og amp; holder plantens jord