Taula de continguts:

APIS - Sistema de reg automàtic de plantes: 12 passos (amb imatges)
APIS - Sistema de reg automàtic de plantes: 12 passos (amb imatges)

Vídeo: APIS - Sistema de reg automàtic de plantes: 12 passos (amb imatges)

Vídeo: APIS - Sistema de reg automàtic de plantes: 12 passos (amb imatges)
Vídeo: Маленький лисенок вышел к людям за помощью 2024, Desembre
Anonim
APIS - Sistema de reg automàtic de plantes
APIS - Sistema de reg automàtic de plantes

LA HISTORYRIA: (una propera evolució d’aquest sistema està disponible aquí)

Hi ha força instruccions sobre el tema del reg de plantes, així que amb prou feines vaig inventar alguna cosa original aquí. El que fa que aquest sistema sigui diferent és la quantitat de programació i personalització que s’hi va incorporar, que permet un millor control i integració en el dia a dia.

Aquí teniu un vídeo d’una regada: regada

Així va sorgir APIS:

Tenim dues plantes de pebre vermell picant, que amb prou feines han "sobreviscut" a diverses de les nostres vacances i que gairebé són considerats membres de la família en aquest moment. Han passat per una sequera extrema i un excés de reg, però sempre s’han recuperat d’alguna manera.

La idea de construir reg de plantes basat en Arduino va ser gairebé la primera idea de com es podria aplicar Arduino com a projecte domòtic. Així, es va construir un sistema de reg de plantes senzill.

Tot i això, la versió 1 no tenia cap indicació d’humitat del sòl i no hi havia manera de saber si estava a punt de regar les plantes o si el reg era a pocs dies.

La curiositat, com tots sabem, va matar el gat i la versió 2 es va construir amb un mòdul de 4 dígits de 7 segments per mostrar la humitat actual en tot moment.

Això no era suficient. La següent pregunta va ser "quan va ser l'última vegada que va regar les plantes"? (Com que poques vegades érem a casa per presenciar-ho). La versió 3 utilitzava el mòdul de 7 segments per mostrar també quant de temps fa que es va produir la darrera tirada de reg (com una cadena de text en execució).

Una nit, el reg es va iniciar a les 4 del matí, despertant a tothom. Frustrant … Trobar massa feina per desactivar APIS durant la nit i durant el dia per evitar que es regui a mitjan nit, es va afegir un rellotge en temps real per fer dormir el dispositiu a la nit com a part de la versió 4.

Com que el rellotge en temps real requereix ajustos periòdics (com ara l'interruptor horari d'estiu), la versió 5 inclou tres botons que permeten configurar una gran varietat de paràmetres de reg de la planta.

No va parar aquí. Vaig notar que la sonda d'humitat tendeix a erosionar-se bastant ràpidament, possiblement a causa del fet que estava (per disseny) sota una tensió constant i, per tant, hi havia un corrent elèctric constant entre les sondes (ànode d'erosió). La sonda de sòl barata de la Xina va sobreviure aproximadament una setmana. Fins i tot un clau galvanitzat es va "menjar" en un mes. Una sonda d’acer inoxidable aguantava millor, però em vaig adonar que fins i tot això renunciava. La versió 6 encén la sonda només 1 minut cada hora (i durant tot el temps durant el reg), reduint així l’erosió (~ 16 minuts al dia vs. 24 hores al dia).

La idea:

Desenvolupeu un sistema de reg de plantes amb les funcions següents:

  1. Mesureu la humitat del sòl
  2. En arribar a una marca d’humitat “baixa” predefinida, enceneu la bomba d’aigua i regueu les plantes fins que s’arribi a una marca d’humitat “alta”
  3. El reg s’ha de fer en diverses tirades, separades per períodes d’inactivitat per permetre la saturació d’aigua pel sòl
  4. El sistema s'hauria de desactivar a la nit entre les hores de "son" i "despert"
  5. L'hora de "despertar" s'ha d'ajustar per als caps de setmana a un valor posterior
  6. El sistema hauria de mantenir el registre de les tirades de bombament
  7. El sistema ha de mostrar la lectura actual de la humitat del sòl
  8. El sistema hauria de mostrar la data / hora de l'última operació de la bomba
  9. Els paràmetres de reg han de ser ajustables sense tornar a programar-se
  10. Atureu el bombament i indiqueu les condicions d’error si el funcionament de la bomba no comporta canvis d’humitat (fora de l’aigua o problemes del sensor) que impedeixin inundar la planta i filtrar aigua.
  11. El sistema hauria d’encendre / apagar la sonda d’humitat per evitar l’erosió del metall
  12. El sistema hauria de drenar l’aigua dels tubs per evitar que es formin floridures al seu interior

Els paràmetres següents s'han de configurar mitjançant botons:

  1. Marca d'humitat "baixa", en%, per iniciar el funcionament de la bomba (per defecte = 60%)
  2. Marca d'humitat "alta", en%, per aturar el funcionament de la bomba (per defecte = 65%)
  3. Durada d'una única regada, en segons (per defecte = 60 segons)
  4. Nombre de reintents per assolir la humitat objectiu (per defecte = 4 tirades)
  5. Hora militar per desactivar la nit, només hores (per defecte = 22 o 22 h)
  6. Hora militar per activar al matí, només hores (per defecte = 07 o 7 am)
  7. Ajust del cap de setmana per a l'activació del matí, hores delta (predeterminat = +2 hores)
  8. Data i hora actuals

APIS escriu la data / hora de 10 darreres regades a la memòria EEPROM. Es podria mostrar el registre, mostrant la data i l'hora de les execucions.

Una de les moltes coses que vam aprendre d’APIS és que en realitat no cal regar plantes cada dia, que era la nostra rutina fins que vam veure les lectures d’humitat del sòl en una pantalla de 7 segments …

Pas 1: PARTS i EINES

PARTS i EINES
PARTS i EINES
PARTS i EINES
PARTS i EINES

Necessitareu les parts següents per construir APIS:

CAIXA DE CONTROL I TUBING:

  1. Tauler Arduino Uno: a Amazon.com
  2. Bomba de líquid peristàltic de 12 v amb tub de silicona: a Adafruit.com
  3. Mòdul JY-MCU de tub digital amb pantalla LED numèrica 4X: a Fasttech.com
  4. DS1307 Kit de taulers de rellotge en temps real: a Adafruit.com (opcional)
  5. Microtivity IM206 6x6x6mm Tact Switch: a Amazon.com
  6. Tauler Vero: a Amazon.com
  7. IC del controlador de motor L293D: a Fasttech.com
  8. 3 x 10kOhm resistències
  9. Arduino projecta funda de plàstic: a Amazon.com
  10. Adaptador de 12 V CA / CC amb un connector de corrent de 2,1 mm: a Amazon.com
  11. Broquetes de bambú
  12. Banda de rodament i una mica de cola de reforç
  13. Tubs de goma de làtex súper suaus 1/8 "ID, 3/16" OD, paret 1/32 ", ambre semitransparent, 10 peus de longitud: a McMaster.com
  14. Ràcord de tubs de pues de niló resistent i dur, màniga per identificació de tub de 1/8 ", blanc, paquets de 10: a McMaster.com
  15. Ràcord de tub dur amb nanses de niló durador, wye per identificació de tub de 1/8 ", blanc, paquets de 10: a McMaster.com
  16. Com és habitual, cables, eines de soldar, etc.

SONDA D'HUMITAT:

  1. Peça petita de fusta (1/4 "x 1/4" x 1 ")
  2. 2 x agulles d’extracció d’acne d’acer inoxidable: a Amazon.com
  3. Mòdul de sensor de detecció d’humitat del sòl: a Fasttech.com

Pas 2: SONDA D'HUMITAT DEL SILL V1

SONDA D'HUMITAT DEL SILL V1
SONDA D'HUMITAT DEL SILL V1
SONDA D'HUMITAT DEL SILL V1
SONDA D'HUMITAT DEL SILL V1
SONDA D'HUMITAT DEL SILL V1
SONDA D'HUMITAT DEL SILL V1

La humitat del sòl es mesura en funció de la resistència entre dues sondes metàl·liques inserides al terra (separades aproximadament 1 polzada). Els esquemes es representen a la imatge.

La primera sonda que vaig provar va ser la que podeu comprar a diversos proveïdors d'Internet (com aquest).

El problema és que el nivell de la làmina és relativament prim i s’erosiona ràpidament (qüestió d’una o dues setmanes), de manera que vaig abandonar ràpidament aquest fabricat per al sensor més resistent, basat en ungles galvanitzades (vegeu el següent pas).

Pas 3: SONDA D'HUMITAT DEL SILL V2

SONDA D'HUMITAT DEL SILL V2
SONDA D'HUMITAT DEL SILL V2
SONDA D'HUMITAT DEL SILL V2
SONDA D'HUMITAT DEL SILL V2

La sonda de "pròxima generació" es feia a casa amb dos claus galvanitzats, un tauler de fusta i un parell de cables.

Com que ja tenia una sonda fabricada desgastada, vaig tornar a utilitzar la peça de connexió i el mòdul electrònic, bàsicament només substituint el component del sòl.

Les ungles galvanitzades, per sorpresa meva, també es van erosionar (encara que més lentes que les làmines fines), però encara més ràpid del que voldria.

Es va dissenyar una altra sonda, basada en agulles d'eliminació de l'acne d'acer inoxidable. (vegeu el següent pas).

Pas 4: SONDA D'HUMITAT DEL SILL V3 "Katana"

SONDA D'HUMITAT DEL SILL V3
SONDA D'HUMITAT DEL SILL V3
SONDA D'HUMITAT DEL SILL V3
SONDA D'HUMITAT DEL SILL V3

La sonda d’acer inoxidable (semblant a l’espasa samurai, d’aquí el seu nom) és la que s’utilitza actualment.

Crec que l'erosió ràpida es podria atribuir al fet que la sonda sempre estava sota tensió elèctrica (24x7) independentment de la freqüència amb què es realitzés la mesura real.

Per mitigar-ho, he canviat els intervals de mesura per ser una vegada en 1 hora (al cap i a la fi, això NO és un sistema de temps real) i he connectat la sonda a un dels pins digitals en lloc de 5v permanents. Actualment, la sonda només s’està alimentant ~ 16 minuts al dia en lloc de 24 hores, cosa que hauria d’augmentar la seva vida útil de forma espectacular.

Pas 5: FUNCIONALITAT BÀSICA

FUNCIONALITAT BÀSICA
FUNCIONALITAT BÀSICA
FUNCIONALITAT BÀSICA
FUNCIONALITAT BÀSICA

APIS es basa en la placa Arduino UNO.

APIS mesura la humitat del sòl un cop per hora i, si cau per sota d’un llindar predefinit, encén la bomba durant un període de temps predefinit el nombre predeterminat de vegades separat per intervals de "saturació".

Un cop assolit el llindar d’humitat objectiu, el procés torna al mode de mesura una vegada per hora.

Si no es pot assolir la humitat objectiu, però es va assolir el límit inferior, també està bé (almenys es va fer un reg). El motiu podria ser la lamentable col·locació de la sonda, on es troba massa lluny del sòl humit.

Tanmateix, si fins i tot no s'ha pogut assolir el límit inferior d'humitat, es declara una condició d'error. (Molt probablement, un problema de sonda o una galleda de subministrament es van quedar sense aigua, etc.). En condicions d’error, la unitat dormirà 24 hores sense fer res i, després, tornarà a intentar-ho.

Pas 6: 7 VISUALITZACIÓ DEL SEGMENT

7 VISUALITZACIÓ DEL SEGMENT
7 VISUALITZACIÓ DEL SEGMENT
7 VISUALITZACIÓ DEL SEGMENT
7 VISUALITZACIÓ DEL SEGMENT

VISUALITZACIÓ DE 7 SEGMENTS BASADA EN TM1650:

Originalment, APIS no tenia cap capacitat de visualització. Era impossible determinar el nivell d’humitat actual del sòl sense connectar-se mitjançant USB.

Per solucionar-ho, he afegit una pantalla de 4 dígits de 7 segments al sistema: a Fasttech.com

No he pogut trobar cap biblioteca per treballar amb aquest mòdul enlloc (ni tampoc cap full de dades), així que després d’unes hores de proves i experimentació del port I²C, decideixo escriure jo mateix una biblioteca de controladors.

Admet pantalles de fins a 16 dígits (amb 4 per defecte), pot mostrar caràcters ASCII bàsics (tingueu en compte que no tots els caràcters es podrien construir amb 7 segments, de manera que no s’implementen lletres com W, M, etc.), admet decimal visualització de punts al mòdul, que executa cadenes de caràcters (per mostrar més de 4 lletres) i admet 16 graus de brillantor.

La biblioteca està disponible al parc infantil arduino.cc aquí. Biblioteca de controladors TM1650

Un exemple de vídeo està disponible aquí

ANIMACIÓ:

Una mica d’animació de 7 segments s’implementa durant un curs d’aigua.

  • Mentre la bomba està activada, els punts digitals de la pantalla funcionen amb un patró d’esquerra a dreta, que simbolitzen un curs d’aigua: vídeo d’animació de reg
  • Durant el període de "saturació", els punts s'executen des del centre de la pantalla cap a l'exterior, simbolitzant la saturació: vídeo d'animació de saturació

Innecessari, però un bon toc.

Pas 7: CONTROL DE BOMBA i BOMBA

CONTROL DE BOMBA i BOMBA
CONTROL DE BOMBA i BOMBA
CONTROL DE BOMBA i BOMBA
CONTROL DE BOMBA i BOMBA

BOMBA

He utilitzat una bomba de líquid peristàltic de 12v (disponible aquí) per regar les plantes. La bomba proporciona uns 100 mL / min (aproximadament la meitat d’un got, és bo recordar quan es configura el temps de funcionament de l’aigua per evitar desbordaments, i va passar 8))

CONTROL DE BOMBA - L293D

La bomba es controla mitjançant el xip del controlador del motor L293D. Com que la direcció de rotació està preestablerta, realment només haureu d’utilitzar el pin d’activació del xip per al control. Els pins de direcció es podrien connectar directament a + 5v i GND permanentment.

Si (com jo) no esteu segur de quina direcció anirà la bomba, encara podeu connectar els tres pins a Arduino i controlar la direcció per programació. Menys tornar a soldar.

Pas 8: CONFIGURACIÓ i BOTONS

CONFIGURACIÓ i BOTONS
CONFIGURACIÓ i BOTONS
CONFIGURACIÓ i BOTONS
CONFIGURACIÓ i BOTONS

BOTONS:

He utilitzat tres botons per configurar i controlar APIS.

Totes les pulsacions de botons es processen en funció de les interrupcions dels pins (biblioteca PinChangeInt).

  • El vermell (més a la dreta) és un botó SELECT. Fa que APIS entri en mode de configuració i també confirma els valors.
  • Els botons negres més a l’esquerra i mig (MÉS i MÉS respectivament) s’utilitzen per augmentar / disminuir els valors configurables (en el mode de configuració), o per mostrar la data / hora actual i la informació de la darrera tirada de reg (en mode normal).

Com que la major part del temps la pantalla està apagada, tots els botons primer "activaran" APIS i només després, en fer una segona pulsació, realitzaran la seva funció.

La pantalla s'apaga després de 30 segons d'inactivitat (tret que estigui en curs un reg).

APIS executa els paràmetres de configuració en iniciar-se per revisar-los: vídeo

CONFIGURACIÓ:

APIS té quatre modes de configuració:

  1. Configureu els paràmetres de reg
  2. Configuració del rellotge en temps real
  3. Cursa de reg "Força"
  4. Reviseu el registre de reg

PARÀMETRES DE REG:

  1. Llindar baix d'humitat del sòl (començar a regar)
  2. Llindar d'alta humitat del sòl (deixar de regar)
  3. Durada d'una única regada (en segons)
  4. Nombre de curses de reg en un lot
  5. Durada del període de saturació del sòl entre tirades dins d'un lot (en minuts)
  6. Temps d'activació del mode nocturn (hora militar, només hores)
  7. Hora de finalització del mode nocturn (hora militar, només hores)
  8. Ajust de cap de setmana per a l'hora de finalització del mode nocturn (en hores)

CONFIGURACIÓ DEL RELLOTGE EN TEMPS REAL:

  1. Century (és a dir, 20 per al 2015)
  2. Any (és a dir, 15 per al 2015)
  3. Mes
  4. Dia
  5. Hores
  6. Minut

El rellotge s’ajusta amb els segons a 00 després de la confirmació dels minuts.

La configuració té un període de temps d'espera de 15 segons, després dels quals es cancel·len tots els canvis.

En desar, els paràmetres es guarden a la memòria EEPROM.

FORÇANT UNA RÀPIDA:

Encara no sé per què l’he implementat, però hi és. Un cop activat, APIS entra al mode de reg. El mode de reg, però, encara està subjecte a llindars. Això vol dir que si força el reg, però la humitat del sòl és superior a la marca HIGH, el curs de reg finalitzarà immediatament. Bàsicament, això només funciona si la humitat del sòl està entre els llindars BAIX i ALT.

REVISIÓ DEL REGISTRE D'AIGUA:

APIS guarda un registre de les darreres 10 proves de reg a la memòria EEPROM, que l'usuari pot revisar. Només s’emmagatzema la data / hora de la regada. Els llindars (en aquell moment) i el nombre de tirades que es van trigar a assolir el llindar HIGH no s’emmagatzemen (tot i que a la següent versió podrien ser-ho).

Pas 9: RTC: RELLOTGE EN TEMPS REAL

RTC: RELLOTGE EN TEMPS REAL
RTC: RELLOTGE EN TEMPS REAL

MODE NIT

Un cop APIS em va despertar a la nit, em va venir al cap una idea d'implementar un "mode nocturn".

Un mode nocturn és quan no es fan mesures, la pantalla està apagada i no hi ha reg.

Un dia hàbil habitual, APIS "es desperta" a les 7 del matí (configurable) i entra en mode nocturn a les 22:00 (configurable). En un cap de setmana, APIS utilitza un paràmetre "ajust de cap de setmana" per retardar el despertar (per exemple, a les 9 hores), si l’ajust del cap de setmana és de 2 hores).

RTC BREAKOUT BOARD vs. "SOFTWARE" RTC:

He utilitzat RTC de maquinari (disponible aquí) per fer un seguiment de la data / hora i entrar / sortir dels modes nocturns.

És opcional d'utilitzar, ja que es podrien compilar esbossos per utilitzar l'anomenat "programari" RTC (usant la funcionalitat millis () d'arduino).

L’inconvenient de l’ús de programari RTC és que heu d’establir l’hora cada vegada que s’encén APIS.

Vaig modificar la biblioteca RTC estàndard perquè coincidís exactament amb l'API i també per solucionar el problema del canvi de millis. (Consulteu el pas d'esbossos per obtenir descàrregues).

Pas 10: UNIR-LO TOT

UNINT-HO TOT
UNINT-HO TOT
UNINT-HO TOT
UNINT-HO TOT
UNINT-HO TOT
UNINT-HO TOT
UNINT-HO TOT
UNINT-HO TOT

Tot el sistema (excepte la sonda), inclosa la bomba, s'adapta a una petita caixa per a Arduino Uno.

  1. La pantalla TM1650 utilitza una interfície TWI, de manera que els cables SDA i SDC van als pins Arduino A4 i A5 respectivament. Els altres dos cables són + 5v i GND.
  2. La placa RTC utilitza una interfície TWI, igual que l'anterior. (TM1650 i RTC utilitzen diferents ports, de manera que conviuen pacíficament). El pin RTC + 5v està connectat al pin arduino 12 (alimentat mitjançant pin digital en lloc de + 5v). No recordeu per què ho vaig fer, no cal.
  3. Els pins L293D es connecten de la següent manera: activeu (pin 1) a D5 i els pins de control de direcció 2 i 7 als pins D6 i D7 d’arduino respectivament.
  4. Els BOTONS estan connectats als pins D2, D8 i D9 per a SELECT, PLUS i MINUS respectivament. (Els botons s’implementen amb resistències de 10K desplegables, en la configuració “activa-alta”).
  5. La potència de + 5 v del mòdul PROBE està connectada al pin arduino 10 (per permetre mesuraments periòdics) i la sonda es connecta al pin analògic A1.

NOTA: S'ha afegit el fitxer d'esquemes de Fritzing al repositori de github.

Pas 11: esbossos i molt més

BOSQUETS i molt més
BOSQUETS i molt més

Actualització de març de 2015:

  1. S'ha afegit una funcionalitat per drenar els tubs després de regar per evitar que es formi floridura (Noi, estic content que no hagués canviat la direcció de rotació de la bomba a la L293D!)
  2. Un registre més extens inclou la data / hora del començament i final de la cursa de reg, la humitat inicial i final i quantes vegades s'ha activat la bomba durant la cursa de reg
  3. S'ha actualitzat la rutina d'errors: el dispositiu es restablirà després de 24 hores d'haver introduït la condició d'error
  4. Recompilat amb TaskScheduler 2.1.0
  5. Diverses altres correccions d'errors

A partir del 18 de novembre de 2015, APIS es va actualitzar amb les funcions addicionals següents:

  1. Ús de la biblioteca DirectIO per fer canvis de pins més ràpids i fàcils
  2. Ús de la biblioteca de la zona horària per canviar correctament entre EST i EDT
  3. S'ha afegit la lògica de rebot de botons només mitjançant TaskScheduler
  4. Funcionalitat de repetició del botó afegida (valors de cicle si es manté premut el botó, amb una velocitat del cicle augmentant després de 5 cicles)
  5. Recompilat amb IDE 1.6.6 AVR 1.6.9 contra TaskScheduler 1.8.4
  6. Traslladat a Github

BIBLIOTECES:

APIS es basa en les biblioteques següents:

  • EEPROM: part d'Arduino IDE
  • Cable: part d'Arduino IDE
  • EnableInterrupt: disponible a Github
  • Fus horari: disponible a Github
  • DirectIO: disponible a Github

Modificat per mi (bifurcat):

  • Temps: disponible a Github
  • RTClib: disponible a Github

Desenvolupat per mi:

  • TM1650: disponible a Github
  • TaskScheduler: disponible a Github
  • AvgFilter: disponible a Github

ESQUEMA:

L’última versió de l’esbós d’APIS, inclòs el fitxer d’esquemes fritzing, està disponible a Github

FITXES DE DADES:

  • L293D: aquí
  • Tauler de ruptura RTC: aquí

Pas 12: *** VAM GUANYAR !!! ***

*** VAM GUANYAR !!! ***
*** VAM GUANYAR !!! ***

Aquest projecte va guanyar el segon premi del concurs de domòtica patrocinat per Dexter Industries.

Comprova-ho! WOO-HOO !!!

Domòtica
Domòtica
Domòtica
Domòtica

Accèssit a la domòtica

Recomanat: