Cuprins:
- Pasul 1: PIESE și INSTRUMENTE
- Pasul 2: SONDA DE UMIDITATE A SOLULUI V1
- Pasul 3: SONDĂ DE UMIDITATE A SOLULUI V2
- Pasul 4: SONDĂ DE UMIDITATE A SOLULUI V3 "Katana"
- Pasul 5: FUNCȚIONALITATE DE BAZĂ
- Pasul 6: 7 AFIȘARE SEGMENT
- Pasul 7: POMPA și CONTROLUL POMPEI
- Pasul 8: CONFIGURARE și BUTOANE
- Pasul 9: RTC: Ceasul în timp real
- Pasul 10: PUNEREA ÎMPREUNĂ
- Pasul 11: schițe și multe altele
- Pasul 12: *** AM CÂȘTIGAT !!! ***
Video: APIS - Sistem automat de irigare a plantelor: 12 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
ISTORIC: (o următoare evoluție a acestui sistem este disponibilă aici)
Există destul de multe instructabile pe tema udării plantelor, așa că abia am inventat ceva original aici. Ceea ce face diferit acest sistem este cantitatea de programare și personalizare care a intrat în acesta, permițând un control și o integrare mai bune în viața de zi cu zi.
Iată un videoclip al unei curse de udare: cursă de udare
Așa a apărut APIS:
Avem două plante roșii de ardei iute, care abia „au supraviețuit” mai multor vacanțe, și aproape considerate membri ai familiei în acest moment. Au trecut prin secetă extremă și supra-udare, dar întotdeauna și-au revenit cumva.
Ideea de a construi udarea plantelor pe bază de Arduino a fost aproape prima idee despre cum Arduino ar putea fi aplicat ca proiect de automatizare a casei. Așadar, a fost construit un sistem simplu de udare a plantelor.
Cu toate acestea, Versiunea 1 nu avea nicio indicație a umidității solului și nu exista nicio modalitate de a spune dacă era să udăm plantele sau dacă udarea era la câteva zile distanță.
Curiozitatea, așa cum știm cu toții, a ucis pisica, iar Versiunea 2 a fost construită cu un modul cu 4 cifre din 7 segmente pentru a afișa umiditatea curentă în orice moment.
Nu a fost suficient. Următoarea întrebare a fost „când a fost ultima dată când a udat plantele”? (Din moment ce rareori eram acasă pentru a asista la asta). Versiunea 3 a folosit modulul cu 7 segmente pentru a afișa, de asemenea, cu cât timp a avut loc ultima rundă de udare (ca un șir de text care rulează).
Într-o noapte, udarea a început la 4 dimineața, trezindu-i pe toți. Frustrant … Găsind prea multă muncă pentru a opri APIS pentru noapte și pentru a activa ziua pentru a preveni udarea în mijlocul nopții, s-a adăugat un ceas în timp real pentru a pune dispozitivul să doarmă noaptea ca parte a versiunii 4.
Deoarece ceasul în timp real necesită ajustări periodice (cum ar fi comutatorul pentru ora de vară, de exemplu), Versiunea 5 include trei butoane care permit setarea unei varietăți de parametri de udare a plantelor.
Nu s-a oprit aici. Am observat că sonda de umiditate tinde să se erodeze destul de repede, probabil datorită faptului că se afla (prin proiectare) sub tensiune constantă și, prin urmare, exista un curent electric constant între sonde (erodarea anodului). Sonda ieftină a solului din China a supraviețuit aproximativ o săptămână. Chiar și un cui galvanizat a fost „mâncat” într-o lună. O sondă din oțel inoxidabil rezista mai bine, dar am observat că chiar și asta renunță. Versiunea 6 pornește sonda doar 1 minut în fiecare oră (și se aprinde tot timpul în timpul udării), reducând astfel dramatic eroziunea (~ 16 minute pe zi vs. 24 de ore pe zi).
Ideea:
Dezvoltați un sistem de udare a plantelor cu următoarele capacități:
- Măsurați umiditatea solului
- La atingerea unui semn predefinit de umiditate „scăzută”, porniți pompa de apă și udați plantele până când se atinge un semn de umiditate „ridicată”
- Udarea trebuie făcută în mai multe etape, separate de perioade de inactivitate pentru a permite saturația apei prin sol
- Sistemul ar trebui să se dezactiveze noaptea între orele „somn” și „trezire”
- Timpul „trezire” trebuie ajustat pentru weekend la o valoare ulterioară
- Sistemul ar trebui să păstreze jurnalul de pompare
- Sistemul trebuie să afișeze citirea curentă a umidității solului
- Sistemul trebuie să afișeze data / ora ultimei funcționări a pompei
- Parametrii de udare trebuie să fie reglabili fără reprogramare
- Opriți pomparea și indicați starea de eroare dacă funcționarea pompei nu duce la modificarea umidității (din apă sau probleme cu senzorul) împiedicând inundarea instalației și scurgerea apei
- Sistemul trebuie să pornească / să oprească sonda de umiditate pentru a evita eroziunea metalelor
- Sistemul trebuie să scurge apa din tuburi pentru a preveni formarea mucegaiului în interiorul lor
Următorii parametri ar trebui să fie configurabili prin butoane:
- Umiditatea "scăzută", în%, pentru a porni pompa (implicit = 60%)
- Umiditatea "ridicată", în%, pentru a opri funcționarea pompei (implicit = 65%)
- Durata unei singure runde de udare, în secunde (implicit = 60 de secunde)
- Numărul de reîncercări pentru a atinge umiditatea țintă (implicit = 4 rulări)
- Timp militar de dezactivat pentru noapte, numai ore (implicit = 22 sau 22)
- Timp militar pentru activare dimineața, doar ore (implicit = 07 sau 7 dimineața)
- Ajustare la sfârșit de săptămână pentru activare dimineața, ore delta (implicit = +2 ore)
- Data și ora curente
APIS scrie data / ora ultimei 10 udări în memoria EEPROM. Jurnalul ar putea fi afișat, arătând data și ora rulărilor.
Unul dintre multele lucruri pe care le-am învățat de la APIS este că nu este nevoie să udăm plante în fiecare zi, ceea ce a fost rutina noastră până când am văzut citirile umidității solului pe un afișaj pe 7 segmente …
Pasul 1: PIESE și INSTRUMENTE
Veți avea nevoie de următoarele părți pentru a construi APIS:
CUTIE DE CONTROL ȘI TUBARE:
- Placa Arduino Uno: pe Amazon.com
- Pompă lichidă peristaltică de 12v cu tub din silicon: pe Adafruit.com
- Modul JY-MCU cu afișaj numeric cu LED digital 4X: pe Fasttech.com
- Kitul DS1307 Real Time Clock Breakout: pe Adafruit.com (opțional)
- Microtivity IM206 6x6x6mm Tact Switch: pe Amazon.com
- Placă Vero: pe Amazon.com
- IC driver driver L293D: pe Fasttech.com
- 3 rezistențe de 10kOhm
- Arduino proiectează carcasa din plastic: pe Amazon.com
- Adaptor 12V AC / DC cu o mufă de alimentare de 2,1 mm: pe Amazon.com
- Frigarui de bambus
- Banda de rulare și un pic de adeziv de îmbunătățire
- Tuburi moi din cauciuc latex 1/8 "ID, 3/16" OD, perete 1/32 ", chihlimbar semi-lung, 10 ft. Lungime: pe McMaster.com
- Racord durabil cu țeavă cu țeavă din nailon durabil, Tee pentru ID tub 1/8 ", alb, pachete de 10: pe McMaster.com
- Racord durabil cu țeavă cu țeavă din nailon, Wye pentru tub ID 1/8 ", alb, pachete de 10: pe McMaster.com
- Ca de obicei, fire, instrumente de lipit etc.
SONDĂ DE UMIDITATE:
- Bucată mică de lemn (1/4 "x 1/4" x 1 ")
- 2 x ace de extracție a acneei din oțel inoxidabil: pe Amazon.com
- Modulul senzorului de detectare a umidității solului: pe Fasttech.com
Pasul 2: SONDA DE UMIDITATE A SOLULUI V1
Umiditatea solului este măsurată pe baza rezistenței dintre două sonde metalice introduse în pământ (la o distanță de aproximativ 1 inch). Schemele sunt reprezentate pe imagine.
Prima sondă pe care am încercat-o a fost cea pe care o puteți cumpăra de la mai mulți furnizori de internet (ca aceasta).
Problema cu acestea este că nivelul foliei este relativ subțire și se erodează rapid (o chestiune de una sau două săptămâni), așa că l-am abandonat rapid pe cel pre-fabricat pentru senzorul mai robust, bazat pe unghie zincată (vezi pasul următor).
Pasul 3: SONDĂ DE UMIDITATE A SOLULUI V2
Sonda „generației următoare” a fost făcută acasă din două cuie galvanizate, o placă de lemn și câteva fire.
Deoarece aveam deja o sondă uzată, am reutilizat piesa de conectare și modulul electronic de pe ea, practic înlocuind doar componenta solului.
Unghiile galvanizate, spre surprinderea mea, s-au erodat și ele (deși mai lent decât folia subțire), dar totuși mai repede decât mi-aș dori.
A fost proiectată o altă sondă, bazată pe ace din oțel inoxidabil pentru îndepărtarea acneei. (vezi pasul următor).
Pasul 4: SONDĂ DE UMIDITATE A SOLULUI V3 "Katana"
Sonda din oțel inoxidabil (asemănătoare sabiei samurailor, de unde și numele) este cea utilizată în prezent.
Cred că eroziunea rapidă ar putea fi atribuită faptului că sonda a fost întotdeauna sub tensiune electrică (24x7), indiferent de cât de des a avut loc măsurarea efectivă.
Pentru a atenua acest lucru, am schimbat intervalele de măsurare pentru a fi o dată în 1 oră (până la urmă, acesta NU este un sistem în timp real) și am conectat sonda la unul dintre pinii digitali în loc de 5v permanenți. În prezent, sonda este alimentată doar ~ 16 minute pe zi în loc de 24 de ore, ceea ce ar trebui să-și mărească durata de viață dramatic.
Pasul 5: FUNCȚIONALITATE DE BAZĂ
APIS se bazează pe placa Arduino UNO.
APIS măsoară umiditatea solului o dată pe oră și, dacă scade sub un prag predefinit, pornește pompa pentru o perioadă de timp predefinită, numărul predefinit de ori separat de intervale de „saturație”.
Odată atins un prag de umiditate țintă, procesul revine la modul de măsurare o dată pe oră.
Dacă umiditatea țintă nu poate fi atinsă, dar a fost atinsă limita inferioară, este și OK (cel puțin a avut loc o udare). Motivul ar putea fi amplasarea nefericită a sondei, unde este prea departe de solul umed.
Cu toate acestea, dacă chiar și limita inferioară de umiditate nu a putut fi atinsă, se declară o condiție de eroare. (Cel mai probabil o problemă de sondă sau o găleată de alimentare au rămas fără apă etc.). În condiții de eroare, unitatea va dormi 24 de ore fără să facă nimic și apoi va încerca din nou.
Pasul 6: 7 AFIȘARE SEGMENT
Afișaj pe 7 segmente bazat pe TM1650:
Inițial, APIS nu avea nicio capacitate de afișare. A fost imposibil să se indice nivelul actual de umiditate a solului fără a se conecta prin USB.
Pentru a remedia problema, am adăugat un sistem cu 4 cifre pe 7 segmente: pe Fasttech.com
Nu am putut găsi nicio bibliotecă pentru a lucra cu acest modul nicăieri (nici o foaie de date pentru acesta), așa că după câteva ore de testare și experimentare a portului I²C, decid să scriu eu însumi o bibliotecă de drivere.
Suportă afișaje de până la 16 cifre (cu 4 fiind implicit), poate afișa caractere ASCII de bază (vă rugăm să rețineți că nu toate caracterele ar putea fi construite cu 7 segmente, deci litere precum W, M etc. nu sunt implementate). afișare punctuală pe modul, care rulează șir de caractere (pentru a afișa mai mult de 4 litere) și acceptă 16 grade de luminozitate.
Biblioteca este disponibilă pe locul de joacă arduino.cc aici. Biblioteca de drivere TM1650
Exemplul video este disponibil aici
ANIMAŢIE:
Un pic de animație pe 7 segmente este implementat în timpul unei curse cu apă.
- În timp ce pompa este cuplată, punctele digitale de pe afișaj rulează într-un model de la stânga la dreapta, simbolizând o cursă de apă: video de animație de udare
- În timpul perioadei de „saturație”, punctele rulează din centrul afișajului spre exterior, simbolizând saturație: animație video de saturație
Inutil, dar o atingere drăguță.
Pasul 7: POMPA și CONTROLUL POMPEI
POMPA
Am folosit o pompă de lichid peristaltic de 12v (disponibilă aici) pentru udarea plantelor. Pompa furnizează aproximativ 100 ml / min (adică aproximativ 1/2 dintr-un pahar - bine de reținut când ați configurat timpul de funcționare a apei pentru a evita revărsările și s-a întâmplat 8-))
CONTROLUL POMPEI - L293D
Pompa este controlată prin cipul driverului motorului L293D. Deoarece direcția de rotație este prestabilită, trebuie doar să utilizați pinul de activare a cipului pentru control. Pinii de direcție ar putea fi conectați direct la + 5v și GND permanent.
Dacă (ca mine) nu ați fost sigur în ce direcție va merge pompa, puteți conecta toti cei trei pini la Arduino și controla direcția programatic. Mai puțin re-lipire.
Pasul 8: CONFIGURARE și BUTOANE
BUTOANE:
Am folosit trei butoane pentru a configura și controla APIS.
Toate apăsările de buton sunt procesate pe baza întreruperilor pinului (biblioteca PinChangeInt).
- Roșu (în dreapta) este un buton SELECT. Face ca APIS să intre în modul de configurare și, de asemenea, confirmă valorile.
- Butoanele negre din stânga și din mijloc (PLUS și respectiv MINUS) sunt utilizate pentru a mări / micșora valorile configurabile (în modul de configurare) sau pentru a afișa data / ora curentă și informațiile despre ultima rundă de udare (în modul normal).
Deoarece de cele mai multe ori afișajul este oprit, toate butoanele vor „trezi” mai întâi APIS și abia apoi, la o a doua apăsare, își vor îndeplini funcția.
Afișajul se oprește după 30 de secunde de inactivitate (cu excepția cazului în care se execută o cursă de udare).
APIS rulează parametrii de configurare la pornire pentru revizuire: video
CONFIGURARE:
APIS are patru moduri de configurare:
- Configurați parametrii de udare
- Configurați ceasul în timp real
- Rundă de udare „forțată”
- Examinați jurnalul de udare
PARAMETRI DE APA:
- Prag de umiditate scăzut al solului (începeți udarea)
- Prag ridicat de umiditate a solului (opriți udarea)
- Durata unei singure curse de udare (în secunde)
- Numărul de cursuri de udare într-un singur lot
- Durata perioadei de saturație a solului între curse într-un singur lot (în minute)
- Timp de activare a modului de noapte (timp militar, numai ore)
- Ora de sfârșit a modului de noapte (ora militară, numai ore)
- Ajustare weekend pentru ora de sfârșit a modului de noapte (în ore)
CONFIGURAREA CESULUI ÎN TIMP REAL:
- Century (adică 20 pentru 2015)
- An (adică 15 pentru 2015)
- Lună
- Zi
- Ora
- Minut
Ceasul este reglat cu secunde setate la 00 după confirmarea minutelor.
Setarea are o perioadă de expirare de 15 secunde, după care toate modificările sunt anulate.
La salvare, parametrii sunt salvați în memoria EEPROM.
FORȚAREA UNEI RUNURI DE APĂ:
Încă nu sunt sigur de ce l-am implementat, dar este acolo. Odată activat, APIS intră în modul de udare. Cu toate acestea, modul de udare este încă supus pragurilor. Aceasta înseamnă că, dacă forțați udarea, dar umiditatea solului este peste semnul HIGH, cursul de udare se va termina imediat. Practic, acest lucru funcționează numai dacă umiditatea solului este între pragurile LOW și HIGH.
REVIZUALIZAREA JURNALULUI DE APĂ:
APIS păstrează un jurnal al ultimelor 10 curse de udare în memoria EEPROM, pe care utilizatorul îl poate examina. Este stocată doar Data / Ora cursei de udare. Pragurile (la momentul respectiv) și numărul de rulări necesare pentru a atinge pragul HIGH nu sunt stocate (deși în versiunea următoare ar putea fi).
Pasul 9: RTC: Ceasul în timp real
MOD DE NOAPTE
Odată ce APIS m-a trezit noaptea, mi-a venit în minte o idee de a implementa un „mod de noapte”.
Un mod nocturn este atunci când nu au loc măsurători, afișajul este oprit și nu există udări.
Într-o zi lucrătoare obișnuită, APIS „se trezește” la 7 dimineața (configurabil) și intră în modul de noapte la 22:00 (configurabil). Într-un weekend APIS folosește o setare „ajustare weekend” pentru a întârzia trezirea (de exemplu la 9 dimineața), dacă ajustarea weekendului este de 2 ore).
RTC BREAKOUT BOARD vs. "SOFTWARE" RTC:
Am folosit hardware RTC (disponibil aici) pentru a urmări data / ora și pentru a intra / ieși din modurile nocturne.
Este opțional de utilizat, deoarece schițele ar putea fi compilate pentru a utiliza așa-numitul "software" RTC (folosind funcționalitatea millis () a arduino).
Dezavantajul utilizării software-ului RTC este că trebuie să setați ora de fiecare dată când APIS pornește.
Am modificat biblioteca RTC standard pentru a se potrivi exact cu API-ul și, de asemenea, pentru a rezolva problema de trecere în milis. (Vă rugăm să consultați pasul schițelor pentru descărcări).
Pasul 10: PUNEREA ÎMPREUNĂ
Întregul sistem (cu excepția sondei), inclusiv pompa, se potrivește într-o cutie mică pentru Arduino Uno.
- Afișajul TM1650 utilizează interfața TWI, astfel încât firele SDA și SDC merg la pinii Arduino A4 și respectiv A5. Celelalte două fire sunt + 5v și GND.
- Placa RTC utilizează interfața TWI, la fel ca mai sus. (TM1650 și RTC utilizează porturi diferite, deci coexistă pașnic). Pinul RTC + 5v este conectat la pinul arduino 12 (alimentat prin pin digital în loc de + 5v). Nu vă amintiți de ce am făcut-o, nu trebuie.
- Pinii L293D sunt conectați după cum urmează: activați (pinul 1) la D5 și pinii de control al direcției 2 și 7 la pinii arduino D6 și respectiv D7.
- BUTONURILE sunt conectate la pinii D2, D8 și D9 pentru SELECT, PLUS și respectiv MINUS. (Butoanele sunt implementate cu rezistențe pull-down de 10K - în configurația „activ-înalt”).
- Puterea + 5v a modulului PROBE este conectată la pinul arduino 10 (pentru a permite măsurători periodice), iar sonda este conectată la pinul analogic A1.
NOTĂ: Fișierul schematic Fritzing a fost adăugat la depozitul github.
Pasul 11: schițe și multe altele
Actualizare martie 2015:
- Funcționalitate adăugată pentru a scurge tuburile după udare, pentru a preveni formarea mucegaiului (Băiat! Sunt fericit că nu am direcția de rotație a pompei cu cablu dur pe L293D!)
- Înregistrarea mai extinsă include data / ora cursei de udare de la începutul și sfârșitul, începutul și sfârșitul umidității și de câte ori a fost cuplată pompa în timpul cursei de udare
- Rutină de eroare actualizată: dispozitivul se va reseta după 24 de ore de la introducerea stării de eroare
- Recompilat cu TaskScheduler 2.1.0
- Diverse alte remedieri de erori
Începând cu 18 noiembrie 2015, APIS a fost actualizat cu următoarele caracteristici suplimentare:
- Utilizarea bibliotecii DirectIO pentru modificări mai rapide și mai ușoare ale pinilor
- Utilizarea bibliotecii Timezone pentru a comuta corect între EST și EDT
- S-a adăugat logica de deconectare a butoanelor folosind numai TaskScheduler
- Funcționalitate de repetare a butonului adăugată (valorile ciclului dacă butonul este apăsat și ținut, cu viteza ciclului crescând după 5 cicluri)
- Recompilat cu IDE 1.6.6 AVR 1.6.9 împotriva TaskScheduler 1.8.4
- Mutat la Github
BIBLIOTECE:
APIS se bazează pe următoarele biblioteci:
- EEPROM - parte a Arduino IDE
- Sârmă - parte a Arduino IDE
- EnableInterrupt - disponibil pe Github
- Fus orar - disponibil pe Github
- DirectIO - disponibil pe Github
Modificat (furcat) de mine:
- Timp - disponibil pe Github
- RTClib - disponibil pe Github
Dezvoltat de mine:
- TM1650 - disponibil pe Github
- TaskScheduler - disponibil pe Github
- AvgFilter - disponibil pe Github
SCHIȚĂ:
Cea mai recentă versiune a schiței APIS, inclusiv fișierul schematic fritzing, este disponibilă pe Github
FOI DE DATE:
- L293D: aici
- RTC breakout board: aici
Pasul 12: *** AM CÂȘTIGAT !!! ***
Acest proiect a câștigat Premiul II în cadrul concursului de automatizare la domiciliu sponsorizat de Dexter Industries.
Verifică! WOO HOO!!!
Premiul II în domeniul automatizării caselor
Recomandat:
Căi ferate model automat automat punct la punct: 10 pași (cu imagini)
Modele de cale ferată automate simple punct la punct: microcontrolerele Arduino sunt excelente pentru automatizarea modelelor de cale ferată. Automatizarea planurilor este utilă în multe scopuri, cum ar fi plasarea aspectului dvs. pe un afișaj în care operația de planificare poate fi programată pentru a circula trenurile într-o succesiune automată. Eu
Sistemul de irigare automat pentru plante: 8 pași
Sistema De Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utiladas por agricultores pois esta atividade independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumo de água (folosind apenas when necessário) e minimiza os
Structură feroviară de model automat automat - Arduino controlat: 11 pași (cu imagini)
Structură feroviară automată simplă | Arduino controlat: microcontrolerele Arduino sunt o completare excelentă pentru modelul de cale ferată, mai ales atunci când se ocupă de automatizare. Iată o modalitate simplă și ușoară de a începe cu automatizarea modelului feroviar cu Arduino. Deci, fără alte îndemnuri, să începem
DIY - Irigare automată pentru grădină - (Arduino / IOT): 9 pași (cu imagini)
DIY - Irigare automată pentru grădină - (Arduino / IOT): Acest proiect vă va arăta cum să construiți un controler de irigare pentru o grădină de acasă. Capabil să măsoare citirile umidității solului și să activeze irigarea de la robinetul de grădină dacă solul devine prea uscat. Controlerul include, de asemenea, o temperatură și h
Alimentatorul automat automat de pește DIY: Nivelul 2: 10 pași (cu imagini)
Ultimul alimentator automat de pește DIY: Nivelul 2: Alimentatorul de nivel 2 este un pas mare față de nivelul 1. Această versiune folosește un modul wifi ESP8266 pentru a sincroniza ceasul arduino pentru a controla programul de alimentare și iluminarea rezervorului