INHOUDSOPGAWE:

APIS - Outomatiese plantbesproeiingstelsel: 12 stappe (met foto's)
APIS - Outomatiese plantbesproeiingstelsel: 12 stappe (met foto's)

Video: APIS - Outomatiese plantbesproeiingstelsel: 12 stappe (met foto's)

Video: APIS - Outomatiese plantbesproeiingstelsel: 12 stappe (met foto's)
Video: 3 мегапикселя камера видеонаблюдения. Стоит ли покупать? На что влияет разрешение? 2024, November
Anonim
APIS - outomatiese plantbesproeiingstelsel
APIS - outomatiese plantbesproeiingstelsel

Die GESKIEDENIS: ('n volgende evolusie van hierdie stelsel is hier beskikbaar)

Daar is 'n hele paar instruksies oor plantwater, so ek het skaars iets oorspronkliks hier uitgevind. Wat hierdie stelsel anders maak, is die omvang van die programmering en aanpassing, wat dit moontlik maak om beter beheer en integrasie in die daaglikse lewe moontlik te maak.

Hier is 'n video van 'n waterloop: waterloop

Dit is hoe APIS ontstaan het:

Ons het twee rooiwarm chilipeperplante wat verskeie van ons vakansies skaars "oorleef" het, en op hierdie stadium byna as familielede oorweeg het. Hulle is deur uiterste droogte en te veel water, maar het altyd op een of ander manier herstel.

Die idee om plantwater op Arduino te bou, was byna die eerste idee hoe Arduino as 'n tuisautomatiseringsprojek toegepas kan word. So is 'n eenvoudige plantwaterstelsel gebou.

Weergawe 1 het egter geen aanduiding van die humiditeit van die grond nie, en daar was geen manier om te bepaal of dit op die punt was om die plante nat te maak nie, of om 'n paar dae te water.

Nuuskierigheid, soos ons almal weet, het die kat doodgemaak, en weergawe 2 is gebou met 'n 4 -syfer -7 -segmentmodule om die huidige humiditeit ten alle tye te vertoon.

Dit was nie genoeg nie. Die volgende vraag was "wanneer laas het die plante natgemaak"? (Aangesien ons selde tuis was om dit te sien). Weergawe 3 het die 7 -segment -module gebruik om ook te wys hoe lank gelede die laaste waterloop plaasgevind het (as 'n lopende teksstring).

Een aand het die water om 04:00 begin en almal wakker gemaak. Frustrerend … Omdat dit te veel werk was om APIS vir die nag af te skakel en vir die dag om water te voorkom, word 'n intydse horlosie bygevoeg om die toestel snags aan die slaap te maak as deel van weergawe 4.

Aangesien die real -time klok periodieke aanpassings vereis (soos byvoorbeeld die verandering van die somtyd), bevat weergawe 5 drie knoppies waarmee u 'n verskeidenheid plantwaterparameters kan instel.

Dit het nie daar gestop nie. Ek het opgemerk dat die humiditeitssonde geneig is om vinnig te erodeer, moontlik as gevolg van die feit dat dit (volgens ontwerp) onder konstante spanning was, en daarom was daar konstante elektriese stroom tussen die sondes (erodeer -anode). Die goedkoop grondsonde uit China het ongeveer 'n week oorleef. Selfs 'n gegalvaniseerde spyker is binne 'n maand 'opgeëet'. 'N Roesvrye staal sonde hou beter, maar ek het opgemerk dat selfs dit opgee. Weergawe 6 skakel die sonde elke uur slegs 1 minuut aan (en telkens tydens water), wat erosie dramaties verminder (~ 16 minute per dag teenoor 24 uur per dag).

Die idee:

Ontwikkel plantwaterstelsel met die volgende vermoëns:

  1. Meet die humiditeit van die grond
  2. As u 'n voorafbepaalde "lae" humiditeitsmerk bereik, skakel die waterpomp aan en water die plante totdat 'n "hoë" humiditeitsmerk bereik word
  3. Gieter moet in verskeie lopies uitgevoer word, geskei deur periodes van onaktiwiteit om waterversadiging deur die grond toe te laat
  4. Die stelsel moet homself snags deaktiveer tussen 'slaap' en 'wakker word'
  5. Die "wakker" -tyd moet vir naweke aangepas word na 'n latere waarde
  6. Die stelsel moet die logboek van pomplopies byhou
  7. Die stelsel moet die huidige waarde van die humiditeit van die grond vertoon
  8. Die stelsel moet die datum/tyd van die laaste pomploop aandui
  9. Gieter parameters moet verstelbaar wees sonder herprogrammering
  10. Hou op pomp en dui aan Fouttoestand as die pomploop nie lei tot 'n verandering in humiditeit (uit water of sensorprobleme) wat voorkom dat die plant oorstroom en water lek
  11. Die stelsel moet die humiditeitsmeter aan/af skakel om metaalerosie te voorkom
  12. Die stelsel moet water uit die buise dreineer om te voorkom dat vorm daarin voorkom

Die volgende parameters moet via knoppies ingestel word:

  1. 'Lae' humiditeitsmerk, in %, om met pomp te begin (standaard = 60 %)
  2. "Hoë" humiditeitsmerk, in %, om die pomp te stop (standaard = 65 %)
  3. Duur van 'n enkele waterloop, in sekondes (standaard = 60 sekondes)
  4. Aantal pogings om die teiken humiditeit te bereik (standaard = 4 lopies)
  5. Militêre tyd om vir die nag uit te skakel, slegs ure (standaard = 22 of 22 uur)
  6. Militêre tyd om in die oggend te aktiveer, slegs ure (standaard = 07 of 7 uur)
  7. Naweekaanpassing vir oggendaktivering, delta -ure (standaard = +2 uur)
  8. Huidige datum en tyd

APIS skryf die datum/tyd van 10 laaste wateroplossings in die EEPROM -geheue in. Die log kan vertoon word met datum en tyd van die lopies.

Een van die vele dinge wat ons by APIS geleer het, is dat u nie eintlik elke dag water hoef te plant nie, wat ons roetine was totdat ons die humiditeitsmetings op 'n 7 -segment -skerm sien …

Stap 1: ONDERDELE EN GEREEDSKAP

ONDERDELE EN GEREEDSKAP
ONDERDELE EN GEREEDSKAP
ONDERDELE EN GEREEDSKAP
ONDERDELE EN GEREEDSKAP

U benodig die volgende dele om APIS te bou:

BEHEERBUS EN BUIS:

  1. Arduino Uno -bord: op Amazon.com
  2. 12v peristaltiese vloeistofpomp met silikoonbuis: op Adafruit.com
  3. 4X Numeriese LED-skerm Digitale buis JY-MCU-module: op Fasttech.com
  4. DS1307 Real Time Clock breakout board kit: op Adafruit.com (opsioneel)
  5. Microtivity IM206 6x6x6mm Tact Switch: op Amazon.com
  6. Vero -bord: op Amazon.com
  7. L293D motorbestuurder IC: op Fasttech.com
  8. 3 x 10kOhm weerstande
  9. Arduino projekteer plastiekkas: op Amazon.com
  10. 12v AC/DC -adapter met 'n 2,1 mm -aansluiting: op Amazon.com
  11. Bamboespiesies
  12. Loopvlak en 'n bietjie ekstra gom
  13. Super sagte latex rubber buis 1/8 "ID, 3/16" OD, 1/32 "muur, halfhelder amber, 10 voet lengte: op McMaster.com
  14. Duursame nylon buisverbinding met dichtheid, pak vir 1/8 "buis-ID, wit, pakkies van 10: op McMaster.com
  15. Duursame nylon buisverbinding met dichtheid, Wye vir buis-ID van 1/8 inch, wit, 10 stuks: op McMaster.com
  16. Soos gewoonlik, drade, soldeergereedskap, ens.

VOGTIGHEIDSPROBE:

  1. Klein stuk hout (1/4 "x 1/4" x 1 ")
  2. 2 x naalde vir ekstraksie van aknee in vlekvrye staal: op Amazon.com
  3. Sensormodule vir grondvochtigheidsopsporing: op Fasttech.com

Stap 2: GRONDVOGTIGHEIDSPROBE V1

GRONDVOGTIGHEIDSPROBE V1
GRONDVOGTIGHEIDSPROBE V1
GRONDVOGTIGHEIDSPROBE V1
GRONDVOGTIGHEIDSPROBE V1
GRONDVOGTIGHEIDSPROBE V1
GRONDVOGTIGHEIDSPROBE V1

Grondvogtigheid word gemeet op grond van die weerstand tussen twee metaalsonde wat in die grond geplaas is (ongeveer 1 duim uitmekaar). Die skemas word op die prent voorgestel.

Die eerste sonde wat ek probeer het, was die een wat u by 'n aantal internetverskaffers (soos hierdie) kan koop.

Die probleem hiermee is dat die foelievlak relatief dun is en vinnig erodeer ('n kwessie van een of twee weke), en daarom het ek vinnig die vooraf vervaardigde een vir die stewiger sensor laat vaar, gebaseer op gegalvaniseerde spyker (sien die volgende stap)).

Stap 3: GRONDVOGTIGHEIDSPROBE V2

GRONDVOGTIGHEIDSPROBE V2
GRONDVOGTIGHEIDSPROBE V2
GRONDVOGTIGHEIDSPROBE V2
GRONDVOGTIGHEIDSPROBE V2

Die 'volgende generasie' sonde is tuisgemaak van twee gegalvaniseerde spykers, 'n houtbord en 'n paar drade.

Aangesien ek reeds 'n verslete vervaardigde sonde gehad het, het ek die aansluitstuk en die elektronika-module daaruit hergebruik, in plaas daarvan om die grondkomponent te vervang.

Gegalvaniseerde naels het tot my verbasing ook geërodeer (hoewel stadiger as dun foelie), maar steeds vinniger as wat ek sou wou.

Nog 'n sonde is ontwerp, gebaseer op 'n vlekvrye staal aknee -verwyderingsnaalde. (sien volgende stap).

Stap 4: GRONDVOGTIGHEIDSPROBE V3 "Katana"

GRONDVOGTIGHEIDSPROBE V3
GRONDVOGTIGHEIDSPROBE V3
GRONDVOGTIGHEIDSPROBE V3
GRONDVOGTIGHEIDSPROBE V3

Die sonde van vlekvrye staal (wat lyk soos samoerai -swaard, vandaar die naam) is die een wat tans gebruik word.

Ek glo dat die vinnige erosie toegeskryf kan word aan die feit dat die sonde altyd onder elektriese spanning (24x7) was, ongeag hoe gereeld die werklike meting plaasgevind het.

Om dit te versag, het ek die meetintervalle verander na een keer per 1 uur (dit is immers NIE 'n reële tydstelsel nie) en het die sonde gekoppel aan een van die digitale penne in plaas van permanente 5v. Tans word die sonde slegs ~ 16 minute per dag in plaas van 24 uur aangedryf, wat sy lewensduur dramaties moet verhoog.

Stap 5: BASIESE FUNKSIONALITEIT

BASIESE FUNKSIONALITEIT
BASIESE FUNKSIONALITEIT
BASIESE FUNKSIONALITEIT
BASIESE FUNKSIONALITEIT

APIS is gebaseer op die Arduino UNO -raad.

APIS meet die humiditeit van die grond een keer per uur, en as dit onder 'n voorafbepaalde drempel val, skakel die pomp aan vir 'n voorafbepaalde tydsduur, vooraf gedefinieerde aantal kere wat geskei word deur 'versadigings'-intervalle.

Sodra 'n teiken humiditeitsdrempel bereik is, gaan die proses terug na die metingsmodus van een keer per uur.

As die teiken humiditeit nie bereik kan word nie, maar die onderste limiet bereik is, is dit ook goed (ten minste het daar natgemaak). Die rede kan 'n ongelukkige sondeplasing wees, waar dit te ver van die klam grond is.

As selfs die onderste humiditeitsgrens nie bereik kon word nie, word 'n fouttoestand verklaar. (Waarskynlik 'n probleem met die sonde, of die emmer vol water, ens.). Onder 'n fouttoestand slaap die eenheid 24 uur sonder om iets te doen, en probeer dan weer.

Stap 6: 7 SEGMENT -DISPLAY

7 SEGMENTWERKWYSING
7 SEGMENTWERKWYSING
7 SEGMENTWERKWYSING
7 SEGMENTWERKWYSING

TM1650 GEBASEERDE 7 SEGMENTWYS:

Oorspronklik het APIS geen vertoonvermoë gehad nie. Dit was onmoontlik om die huidige humiditeitsvlak van die grond te bepaal sonder om via USB aan te sluit.

Om dit reg te stel, het ek 'n 4 -syfer -7 -segmentskerm by die stelsel gevoeg: op Fasttech.com

Ek kon nêrens 'n biblioteek vind om met hierdie module te werk nie (ook nie 'n gegewensblad daarvoor nie), so na 'n paar uur se ondersoek en eksperimentering van I²C besluit ek om self 'n bestuurdersbiblioteek te skryf.

Dit ondersteun skerms tot 16 syfers (met 4 as standaard), kan basiese ASCII -karakters vertoon (let daarop dat nie alle karakters met 7 segmente saamgestel kan word nie, sodat letters soos W, M, ens nie geïmplementeer word nie.), Ondersteun desimale puntvertoning op die module, met 'n reeks karakters (om meer as 4 letters te vertoon), en ondersteun 16 grade helderheid.

Die biblioteek is hier op die arduino.cc speelterrein beskikbaar. Bestuurdersbiblioteek TM1650

Voorbeeldvideo is hier beskikbaar

ANIMASIE:

'N Bietjie 7 -segment -animasie word geïmplementeer tydens 'n waterloop.

  • Terwyl die pomp ingeskakel is, loop die digitale kolletjies op die skerm in 'n patroon van links na regs, wat 'n waterloop simboliseer: animasievideo natmaak
  • Gedurende die "versadigingsperiode" loop die kolletjies na die middel van die skerm na buite, wat versadiging simboliseer: versadigingsanimasievideo

Onnodig, maar 'n mooi aanraking.

Stap 7: POMP- en POMPBEHEER

POMP- en POMPBEHEER
POMP- en POMPBEHEER
POMP- en POMPBEHEER
POMP- en POMPBEHEER

POMP

Ek het 'n 12V peristaltiese vloeistofpomp (hier beskikbaar) gebruik om die plante nat te maak. Die pomp bied ongeveer 100 ml/min (wat ongeveer 'n halwe glas is - goed om te onthou wanneer u die watertyd instel om oorstromings te voorkom, en dit gebeur 8-))

POMPBEHEER - L293D

Die pomp word bestuur deur middel van die L293D -motorbestuurderskyfie. Aangesien die rotasierigting vooraf ingestel is, hoef u eintlik net die chip-aktiveringspen vir beheer te gebruik. Die rigtingpenne kan direk aan +5v en GND permanent gekoppel word.

As u (soos ek) nie seker was in watter rigting die pomp gaan nie, kan u steeds al drie penne aan Arduino koppel en die rigting programmaties beheer. Minder her soldeer.

Stap 8: KONFIGURASIE en KNOPPE

KONFIGURASIE en KNOPPE
KONFIGURASIE en KNOPPE
KONFIGURASIE en KNOPPE
KONFIGURASIE en KNOPPE

KNOPPE:

Ek het drie knoppies gebruik om APIS op te stel en te beheer.

Alle druk op die knoppies word verwerk op grond van die penonderbrekings (PinChangeInt -biblioteek).

  • Rooi (heel regs) is 'n SELECT -knoppie. Dit laat APIS in die konfigurasiemodus gaan, en bevestig ook die waardes.
  • Swart links en middelste knoppies (onderskeidelik PLUS en MINUS) word gebruik om die instelbare waardes te verhoog/te verlaag (in die konfigurasiemodus), of om die huidige datum/tyd en die laaste waterloopinligting (in normale modus) weer te gee.

Aangesien die skerm meestal afgeskakel is, sal al die knoppies eers APIS "wakker" maak, en dan eers, by 'n tweede druk, hul funksie verrig.

Die skerm word afgeskakel na 30 sekondes van onaktiwiteit (tensy 'n besproeiing aan die gang is).

APIS loop deur die konfigurasieparameters by die aanvang vir hersiening: video

KONFIGURASIE:

APIS het vier konfigurasiemodusse:

  1. Stel waterparameters in
  2. Stel real -time klok in
  3. 'Forceer' natloop
  4. Hersien die waterlogboek

WATERPARAMETERS:

  1. Lae grondvogtigheidsdrempel (begin natmaak)
  2. Hoë grondvogtigheidsdrempel (stop natmaak)
  3. Duur van 'n enkele waterloop (in sekondes)
  4. Aantal besproeiings in een bondel
  5. Duur van die grondversadigingsperiode tussen lopies binne een bondel (in minute)
  6. Aktiveringstyd in die nagmodus (militêre tyd, slegs ure)
  7. Eindtyd in die nagmodus (militêre tyd, slegs ure)
  8. Naweekaanpassing vir die eindtyd van die nagmodus (in ure)

EINDE TYD KLOK INSTELLING:

  1. Eeu (dit wil sê 20 vir 2015)
  2. Jaar (d.w.s. 15 vir 2015)
  3. Maand
  4. Dag
  5. Uur
  6. Minuut

Die klok word verstel met sekondes op 00 na bevestiging van minute.

Die instelling het 'n tydsduur van 15 sekondes, waarna alle veranderinge gekanselleer word.

By stoor word parameters in die EEPROM -geheue gestoor.

Dwing 'n waterloop:

Ek weet nog steeds nie hoekom ek dit geïmplementeer het nie, maar dit is daar. Sodra dit geaktiveer is, gaan APIS in die besproeiingsmodus. Die besproeiingsmodus is egter steeds onderworpe aan drempels. Dit beteken dat as u natloop dwing, maar die grondvogtigheid bo die HOOG punt is, die waterloop onmiddellik eindig. Dit werk basies slegs as die humiditeit van die grond tussen die lae en die hoë drempels is.

WATERING LOG OORSIG:

APIS hou 'n logboek van die laaste 10 besproeiings in die EEPROM -geheue, wat die gebruiker kan hersien. Slegs die datum/tyd van die besproeiing word gestoor. Drempels (destyds) en die aantal lopies wat dit geneem het om die HOOGE drempel te bereik, word nie gestoor nie (hoewel dit moontlik in die volgende weergawe is).

Stap 9: RTC: REAL TIME CLOCK

RTC: REAL TIME CLOCK
RTC: REAL TIME CLOCK

NAGMODUS

Toe APIS my snags wakker maak, het ek 'n idee gekry om 'n 'nagmodus' te implementeer.

'N Nagmodus is wanneer geen metings plaasvind nie, die vertoning af is en geen lopies water gee nie.

Op 'n gewone werksdag word APIS om 07:00 wakker (konfigureerbaar), en gaan dit na 22:00 in (na opstel). Op 'n naweek gebruik APIS 'n 'naweekaanpassing' -instelling om 'n wakker word te vertraag (byvoorbeeld tot 09:00, as naweekaanpassing 2 uur is).

RTC UITBREEKBOORD vs "SOFTWARE" RTC:

Ek het hardeware RTC (hier beskikbaar) gebruik om die datum/tyd by te hou en nagmodusse in te voer/te verlaat.

Dit is opsioneel om te gebruik, aangesien sketse saamgestel kan word om die sogenaamde "sagteware" RTC (met behulp van millis () funksionaliteit van arduino) te gebruik.

Die nadeel van die gebruik van sagteware RTC is dat u die tyd moet instel elke keer as APIS aanskakel.

Ek het die standaard RTC -biblioteek aangepas om presies by die API te pas, en ook om die probleem met die omrol van millis te omseil. (Sien die sketsstap vir aflaai).

Stap 10: PLAAS DIT ALLES SAAM

SAAM ALLES
SAAM ALLES
SAAM ALLES
SAAM ALLES
SAAM ALLES
SAAM ALLES
SAAM ALLES
SAAM ALLES

Die hele stelsel (behalwe sonde), insluitend die pomp, pas in 'n klein boks vir Arduino Uno.

  1. TM1650 -skerm gebruik TWI -koppelvlak, sodat die SDA- en SDC -drade na onderskeidelik Arduino -penne A4 en A5 gaan. Die ander twee drade is +5v en GND.
  2. RTC -bord gebruik TWI -koppelvlak, dieselfde as hierbo. (TM1650 en RTC gebruik verskillende hawens, sodat hulle vreedsaam saamleef). RTC +5v -pen is gekoppel aan arduino -pen 12 (aangedryf via digitale pen in plaas van +5v). Onthou nie hoekom ek dit gedoen het nie, jy hoef nie.
  3. L293D -penne word soos volg verbind: aktiveer (pen 1) na D5, en rigtingbeheerpenne 2 en 7 na arduino -penne D6 en D7 onderskeidelik.
  4. KNOPPE is gekoppel aan penne D2, D8 en D9 vir onderskeidelik SELECT, PLUS en MINUS. (Knoppies word geïmplementeer met 'n aftrekbare 10K-weerstand-in die 'aktief-hoë' opset).
  5. PROBE -module se +5v krag is gekoppel aan arduino -pen 10 (om periodieke metings moontlik te maak), en sonde is gekoppel aan analoog pen A1.

OPMERKING: Fritzing -skematiese lêer is by die github -bewaarplek gevoeg.

Stap 11: SKETSE en meer

SKETSE en meer
SKETSE en meer

Opdatering vir Maart 2015:

  1. Bygevoeg funksionaliteit om die buise te dreineer nadat dit natgemaak is om te voorkom dat vorm vorm (seuntjie! Ek is bly dat ek nie die draairigting van die pomp op L293D vasgemaak het nie!)
  2. Meer uitgebreide houtkap sluit datum/tyd in van die begin en einde van die waterloop, die begin en einde van die humiditeit en hoeveel keer die pomp tydens die besproeiing ingeskakel is
  3. Foutroetine opgedateer: toestel sal moeilik herstel word na 24 uur nadat die fouttoestand ingevoer is
  4. Saamgestel met TaskScheduler 2.1.0
  5. Verskeie ander foutoplossings

Vanaf 18 November 2015 is APIS opgegradeer met die volgende bykomende funksies:

  1. Gebruik die DirectIO -biblioteek vir vinniger en makliker penveranderings
  2. Gebruik die tydsone -biblioteek om korrek oor te skakel tussen EST en EDT
  3. Bygevoeg knoppie-weerkaatslogika slegs met behulp van TaskScheduler
  4. Bygevoeg knoppie herhaal funksie (waardesiklus as die knoppie ingedruk word en die siklus na 5 siklusse toeneem)
  5. Saamgestel met IDE 1.6.6 AVR 1.6.9 teen TaskScheduler 1.8.4
  6. Na Github verhuis

BIBLIOTEKE:

APIS is gebaseer op die volgende biblioteke:

  • EEPROM - deel van Arduino IDE
  • Wire - deel van Arduino IDE
  • EnableInterrupt - beskikbaar op Github
  • Tydsone - beskikbaar op Github
  • DirectIO - beskikbaar op Github

Deur my gewysig (gevurk):

  • Tyd - beskikbaar op Github
  • RTClib - beskikbaar op Github

Deur my ontwikkel:

  • TM1650 - beskikbaar op Github
  • TaskScheduler - beskikbaar op Github
  • AvgFilter - beskikbaar op Github

SKETS:

Die nuutste weergawe van die APIS -skets, insluitend fritzing -skematiese lêer, is beskikbaar op Github

INLIGTINGSBLAAIE:

  • L293D: hier
  • RTC -uitbreekbord: hier

Stap 12: *** ONS WEN !!! ***

*** ONS HET GEWEN !!! ***
*** ONS HET GEWEN !!! ***

Hierdie projek het 'n tweede prys gewen in die Home Automation -wedstryd wat deur Dexter Industries geborg word.

Kyk daarna! WOO-HOE !!!

Tuis outomatisering
Tuis outomatisering
Tuis outomatisering
Tuis outomatisering

Tweede prys in die huisautomatisering

Aanbeveel: