Capitolul 1: Introducere în tematica lucrării [310599]
Capitolul 1: Introducere în tematica lucrării
O seră este o structură care oferă protecție și un mediu controlat pentru cultivarea plantelor. [anonimizat]. Controlul luminii și al temperaturii permite ca serele să devină locul perfect pentru plantele în creștere. [anonimizat].
Este necesar să se asigure un mediu adecvat pentru cultivarea plantelor în toate anotimpurile anului. [anonimizat]: efortul ridicat și costurile mari în cultura convenționala pe teren deschis. [anonimizat].
Problema primară a horticulturii bazate pe efectul de seră este de a gestiona în mod optim mediul din seră pentru a se conforma cerințelor economice și de mediu. Un sistem de climatizare este conceput pentru a [anonimizat], intensității luminoase și umidității din sol prin senzori specifici și controlul elementelor de execuție: [anonimizat], umiditate, [anonimizat].
[anonimizat] (Arduino) [anonimizat]-un mediu în timp real.
1.1 [anonimizat], [anonimizat], reducerea consumului de energie și cultivarea intensivă pentru a asigura necesarul de hrană al populației în creștere.
Este bine cunoscut faptul că sera este o clădire sau complex în care plantele sunt cultivate. [anonimizat] o [anonimizat], castraveții, pepenii etc. Principalii factori de bază care afectează creșterea plantelor sunt: lumina, [anonimizat], temperatura. Acești factori fizici sunt greu de controlat manual în interiorul unei sere și este necesar un sistem automatizat care să regleze acești factori.
1.2 Efectele principalilor factori în culturile din seră
1.2.1 [anonimizat], creștere sau fructificare.
Deoarece suntem de obicei interesați de creșterea și dezvoltarea rapidă a culturilor, trebuie să asigurăm aceste temperaturi optime pe parcursul întregului ciclu de recoltare. Dacă o seră este construită din materiale bine izolate controlul acestui factor se face mult mai ușor.
1.2.2 Efectele umidității
Vaporii de apă din interiorul serii reprezintă una dintre cele mai semnificative variabile care afectează creșterea plantelor. Umiditatea este importantă pentru plante deoarece controlează parțial pierderea de umiditate din corpul plantei. [anonimizat]2 pătrunde în plante prin acești pori, oxigenul și apa se elimină prin ele. Nivelul de transpirație al plantei scade proporțional cu cantitatea de umiditate din aer. Acest lucru se datorează faptului că, prin difuziune apă circulă de la zone cu concentrație mai mare la zone cu concentrație mai scăzută. Datorită acestui fenomen, plantele care se dezvoltă într-o încăpere uscată își pierd foarte mult din necesarul de umiditate.
Controlul umidității este complex, deoarece dacă se schimbă temperatura, atunci umiditatea relativă se modifică invers. Temperatura și umiditatea sunt controlate de aceleași elemente de execuție. Principala prioritate este controlul temperaturii, deoarece este principalul factor în creșterea culturilor. Bazat pe valoarea de umiditate relativă interioară, valoarea setată a temperaturii poate fi ajustată pentru a controla umiditatea într-un interval determinat. Prin urmare, controlul umidității din interiorul serei este o sarcină foarte complexă. Pentru controlul adecvat al umidității, aerul din interior poate fi schimbat cu aerul exterior prin ventilarea serei.
1.2.3 Efectul luminii
Plantele obțin energie din lumina soarelui printr-un proces numit fotosinteză. Acesta este modul în care lumina afectează creșterea unei plante. Fără lumină, o plantă nu ar fi capabilă să producă energia de care are nevoie pentru a crește. În afară de efectul său prin fotosinteză, lumina influențează creșterea organelor individuale sau a întregii plante în moduri mai puțin directe.
1.2.4 Efectul nivelului de umiditate din sol
Umiditatea solului afectează, de asemenea, creșterea plantelor. Prin urmare, monitorizarea și controlul stării solului are un rol important, deoarece starea bună a solului produce randamentul așteptat. Irigațiile și fertilizările adecvate ale culturilor variază în funcție de tipul, vârsta, faza de dezvoltare a plantei. Temperatura și umiditatea sunt controlate prin sistemul de irigare și ventilare din seră. Temperatura solului și temperatura interioară a serii sunt parametri interdependenți, care sunt controlați prin setarea corectă a valorilor optime prin ventilare.
Se va folosi un sistem automat bazat pe micro controler (Arduino). Pentru monitorizarea automată și controlul parametrilor din seră, se va dezvolta un sistem independent care va înregistra temperatura, umiditatea, luminozitatea și umiditatea solului în funcție de care se vor controla condițiile de mediu din seră. Mai mult, pentru controlul eficient, se utilizează o aplicație de interfață grafică împreună cu sistemul încorporat care ne permite sa vizualizăm în timp real variația parametrilor monitorizați și controlați.
Capitolul 2: Tehnologii de automatizare și informatizare folosite în lucrare
2.1 Senzori și elemente de execuție
2.1.1 Senzor de umiditate și temperatură.
Fig1. – Senzor de Umiditate și Temperatură DTH22
Specificații: DTH22
Tensiune de alimentare 3.3-6V
Curent 1-1.5mA
Curent standby 40-50 uA
Umiditate 0-100% RH
Temperatura -40 – 80 C
Acuratețe umiditate +-1% RH
Tensiunea de ieșire din senzor este convertită în temperatură printr-o formulă.
Ecuația generală de conversie a tensiunii de ieșire din senzor în temperatură este
Temperatura (°C) = (Vout * 100) /5 în °C
Tabel valori temperatură
Conversia tensiunii de ieșire în factor de umiditate relativă se face cu formula:
RH = ((Vout/Vcc) – 0.16) /0.0062, la 25°C
Tabel valori umiditate relativă
2.1.2 Senzor umiditatea solului FC-28D
Fig1. – Senzor de Umiditate Sol FC-28D
Specificații: FC-28D
Senzor umiditate sol
Tensiune de alimentare: 3.3V-5V
DO: ieșire digitală (0 sau 1)
AO: ieșire analogică
Dimensiune PCB modul: 3 x 1.5 cm
Dimensiune PCB senzor: 6 x 2 cm
Lungime fire: 21 cm
Acest senzor este foarte ușor de utilizat. Cele două plăcute expuse funcționează ca probe pentru senzor, acționând ca un rezistor variabil. Cu cât este mai multă apă în sol cu atât conductivitatea dintre plăcute va fi mai mare și rezistența mai mică. El este format din două parți componente: circuitul PCB ce conține comparatorul LM393 și partea care se înfige în pământ iar cele două se interconectează în continuare cu micro controlerul. Se pot culege date analogice sau digitale in funcție de preferințe.
Tot ce trebuie făcut pentru a face senzorul sa funcționeze este se conecteze pinii VCC semnal și GND la placa Arduino sau orice alta placa de dezvoltare compatibila. De obicei senzorii de umiditate pentru sol au o durata de viața scurta, datorita faptului ca sunt expuși la un mediu umed. Pentru a combate acest lucru, placa PCB a fost acoperita cu un strat subțire de aur (ENIG). Acest senzor analog returnează o valoare intre 0 – 1023 valoarea trebuie sa fie transformată în procente pentru a fi mai ușor de înțeles și folosit. Calculul se face cu următoarea formulă:
100 – (100.00/1024.00) * valoarea curenta citita de senzor
Citirea valorilor senzor umiditate sol
2.1.3 Senzor lumină fotorezistor LDR
Simbol LDR
Rezistenta electrica a fotorezistenței poate varia de la 10k in întuneric până la 100 ohm in plina lumina.
Se utilizează următorul circuit a cărui tensiune de ieșire analogica este direct proporționala cu gradul de iluminare.
5k
LDR
Schema circuitului de conectare a fotorezistenței
Formula de calcul a dependentei rezistenta luminozitate este
RL = 500/Lux kΩ
Daca este conectata la 5v prin intermediul unei rezistente de 5k tensiunea de ieșire este:
Vo = 5*RL/ (RL+5)
Diagrama variației rezistentei elementului fotorezistiv cu luminozitatea
Valori citite ieșire senzor lumina
2.2 Elemente de execuție
2.2.1 Modul cu relee
Specificații: Modul cu 4 relee
Tensiune: 250VAC sau 30VDC;
Curent: 10A (MAX);
Fiecare releu este comandat separat de câte un optocuplor;
Tensiunea de alimentare necesară funcționării optocuploarelor este de 5V;
Curent necesar pentru control: 5mA.
Dimensiuni: 7.5cm x 5.5cm x 1.85cm.
Schema circuitului releului pentru un canal
2.2.2 Lampa iluminare 12V
Specificații: Lampă iluminare 12V
Banda de LED-uri
Tensiune alimentare=12v
Lumină = alb rece
Putere = 3w
Cantitatea de lumină necesară plantelor depinde de specia de planta, faza de dezvoltare iar prin iluminare artificiala se poate produce o creștere forțata prin prelungirea perioadei de zi.
2.2.3 Pompa apa
Consum 300ma
Mod de operare: electric
Curent: I=0.5A
Număr poli: 2
Alimentare 12v cc
Sistemul de irigare prin picătura este foarte important deoarece duce la o mare economie de apă, și in plus in bazinul de apa se pot introduce elementele nutriționale azotați, fosfați microelemente de magneziu și calciu care ajung astfel direct la rădăcina plantelor
2.2.4 Ventilator 12V x 3
Specificații: Ventilator 12V
U=12V DE
I=0.37A
Ventilația in sera are un efect foarte important in reglarea mai multor parametri care afectează creșterea și sănătatea plantelor:
– Nivelul de umiditate
– Nivelul de condensare pe suprafața interioara a serei
– Uniformizarea temperaturii in sera
– Calitatea aerului in jurul plantelor
– Cantitatea de Con necesara dezvoltării
– Eliminarea aerului viciat generat de instalația de încălzire
2.2.5 Afișaj LED + Ic
Modulul este ideal pentru proiecte inovative de electronică ce trebuie sa afișeze informații către exterior. LCD-ul este foarte bun și pe întuneric, având iluminare de fundal verde și negru. De asemenea lumina de fundal trebuie protejata printr-o rezistenta sau un potențiometru de 2k. Pentru reducerea pinilor folosiți la legarea LCD-ului la controler se poate folosi un modul I2C.
Specificații: LCD+I2C
Tensiune de alimentare: 5V;
Curent: 1.1mA;
Tensiune de alimentare backlight: 4.2V;
Curent lumina de fundal: 100mA.
Modul I2C pentru LCD 1602, 2004
Modulul reprezintă un adaptor ce se montează direct pe ecranul LCD. Display-ul trebuie să fie de tip 1602 sau 2004 și bazat pe controllerul HD44780.
Comunicația I2C reprezintă un avantaj deoarece avem nevoie de doar două fire pentru a comunica cu plăcuța de dezvoltare Arduino sau cu un alt micro controler. Cele doua fire sunt necesare pentru clock și pentru date.
Modulul conține potențiometru pentru a regla contrastul și este compatibil și cu ecranele ce au iluminare de fundal.
2.3 Placa de achiziție și control:
Placa dezvoltare Arduino UNO
Placa Arduino UNO se conectează la portul USB al calculatorului folosind un cablu de tip USB A-B, disponibil in varianta de 1.5 metri sau de 3 metri. Poate fi alimentata extern (din priza) folosind un alimentator extern. Alimentarea externa este necesară în situația în care consumatorii conectați la placă necesită un curent mai mare de câteva sute de miliamperi. În caz contrar, placa se poate alimenta direct din PC, prin cablul USB. Pachetul conține doar placa Arduino, dar nu și cablul USB sau alimentatorul extern.
Specificații:
Micro controler: ATmega328
Tensiune de lucru: 5V
Tensiune de intrare (recomandat): 7-12V
Tensiune de intrare (limita): 6-20V
Pini digitali: 14 (6 PWM output)
Pini analogici: 6
Curent per pin I/O: 40 mA
Curent 3.3V: 50 mA
Memorie Flash: 32 KB (ATmega328) 0.5 KB pentru bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Clock Speed: 16 MHz
Diagrama pinilor plăcii de dezvoltare Arduino UNO
Aceste plăci pun la dispoziția utilizatorului pini I/O, digitali și analogici, care pot fi interfațați cu o gamă largă de plăcuțe numite scuturi (shield-uri) și/sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru a încărca programe din calculatoarele personale. Pentru programarea micro controlerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, care include suport pentru limbaje de programare ca C și C++. Primul Arduino a fost lansat în 2005, având ca țintă asigurarea unei soluții ieftine și simple pentru începători și profesioniști spre a crea dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare. Cele mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboți simpli, termostatele și/sau detectoarele de mișcare.
O plăcuță Arduino este compusă dintr-un micro controler Atmel AVR de 8-, 16- sau 32-biți (deșii începând cu 2015 s-au folosit micro controlere de la alți producători) cu componente complementare care facilitează programarea și încorporarea în alte circuite. Un aspect important la Arduino este că acesta dispune de conectori standard, care permit utilizatorului să conecteze plăcuța cu procesorul la diferite module interschimbabile numite shield-uri. Unele shield-uri comunică cu Arduino direct prin pinii digitali sau analogici, dar altele sunt adresabile individual prin magistrala serială I2C permițând utilizarea mai multor module în paralel. Până în anul 2015 plăcuțele Arduino oficiale au folosit cipuri Atmel din seria megaAVR, în special ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560, iar în 2015 au fost adăugate cipuri de la alți producători. O multitudine de alte procesoare au fost folosite de dispozitive compatibile Arduino. Multe plăcuțe includ un regulator liniar de 5 V și un oscilator cu cuarț de 16 MHz (sau un rezonator ceramic în unele variante), deșii anumite plăcuțe, cum ar fi LilyPad, funcționează la 8 MHz și nu necesită regulator, datorită restricțiilor de formă. Un micro controler instalat pe Arduino vine pre programat cu un bootloader care simplifică încărcarea programelor pe memoria flash a cipului, în comparație cu alte dispozitive care necesită programatoare externe. Acest aspect face Arduino o soluție simplă, permițând programarea de pe orice computer ordinar. În prezent, bootloader-ul optiboot este bootloader-ul implicit instalat pe Arduino UNO. Plăcuțele Arduino din prezent sunt programate prin USB, având integrate cipuri de conversie USB-serial, cum ar fi FTDI FT232. Unele modele UNO, mai noi, folosesc un cip AVR separat programat să funcționeze ca un convertor USB-serial, care poate fi reprogramat printr-un port ICSP dedicat. Alte variante, cum ar fi Arduino Mini și versiunea neoficială Boarduino, folosesc adaptoare detașabile USB-serial, cabluri, Bluetooth sau alte metode.
O plăcuță Arduino cu descrierile pinilor I/O
Plăcuța Arduino are expuși mulți dintre pinii de intrare/ieșire ai micro controlerului, pentru ca aceștia să fie folosiți de alte circuite. Diecimila, Duemilanove și UNO oferă 14 pini digitali de intrare/ieșire, dintre care 6 pot produce semnale PWM și 6 intrări analogice care, de asemenea, pot fi folosite ca intrări/ieșiri digitale. Acești pini sunt accesibili prin partea superioară a plăcuței, prin intermediul unor barete mamă cu pasul între pini de 2,54 mm. Programele Arduino pot fi scrise în orice limbaj de programare cu un compilator capabil să producă un cod mașină binar. Atmel oferă un mediu de dezvoltare pentru micro controlerele sale, AVR Studio și mai nou, Atmel Studio. Proiectul Arduino oferă un mediu integrat de dezvoltare (IDE), care este o aplicație cross-platform, scrisă în Java. Acesta își are originile în mediul de dezvoltare pentru limbajul de programare Processing și în proiectul Wiring. Este proiectat pentru a introduce programarea în lumea începătorilor și a celor nefamiliarizați cu dezvoltarea software. Include un editor de cod cu funcții ca evidențierea sintaxelor, potrivirea acoladelor și spațierea automată și oferă mecanisme simple cu un singur click, pentru a compila și a încărca programele în plăcuța Arduino. Un program scris în IDE pentru Arduino se numește sketch. Arduino IDE suportă limbajele de programare C și C++ folosind reguli speciale de organizare a codului. Arduino IDE oferă o librărie software numită Wiring, din proiectul Wiring, care oferă multe proceduri comune de intrare și ieșire. Un sketch tipic Arduino scris în C/C++ este compus din două funcții care sunt compilate și legate cu un ciot de program main (), într-un program executabil cu o execuție ciclică:
Setup (): o funcție care este rulată o singură dată la începutul programului, când se inițializează setările.
Loop (): o funcție apelată în mod repetat până la oprirea alimentării cu energie a plăcuței.
După compilarea și legarea cu GNU toolchain inclus, de asemenea, în IDE, mediul de dezvoltare Arduino trimite comandă către programul avrdude pentru a converti codul executabil într-un fișier text codat hexa zecimal, care poate fi încărcat în placa Arduino de un program de încărcare.
2. Conexiune USB
Vom începe cu ceea ce pare a fi cea mai evidenta componenta de pe placa: portul USB.
Port USB tip B
Portul USB are doua roluri: de alimentare și de a furniza date sistemului.
Portul este Type B și este necesar un cablu de tip A-B pentru a conecta placa la computer.
Prin adăugarea micro controlerului secundar ATmega 16U2, Arduino UNO poate comunica direct cu computerul prin conexiune USB. Cu alte cuvinte, ATmega 16U2 este un micro controler intermediar care livrează date seriale intre procesorul principal și un computer.
Cablu standard USB de tip A-B
Prin același port USB, computerul gazda furnizează pentru Arduino un curent de 100mA la 5V care permite controlul unui număr limitat de componente. De exemplu, un astfel de curent poate fi folosit la alimentarea unor proiecte mici precum citirea valorilor returnate de un senzor. Insa nu este suficient de mare pentru a controla, de exemplu, motoare de curent continuu.
1. Mufa de alimentare
Alimentarea cu energie prin intermediul mufei de alimentare este unul dintre modurile in care se poate face sa funcționeze independent Arduino UNO. Mufa este rotunda și are un diametru de 2.1mm. Centrul mufei este pozitiv iar partea exterioara este negativa. Înainte de a folosi un alimentator AC-DC, asigurați-vă ca acesta are o ieșire in intervalul 6-20V (7-12V este tensiunea recomandata). In plus fata de alimentarea părților hardware ale plăcii UNO, alimentatorul furnizează energie și pentru componente sau shield-uri conectate la pinii de alimentare de pe placa. Shield-urile sunt placi adiționale care de obicei respectă dimensiunile plăcii Arduino și pot fi atașate deasupra acesteia pentru a furniza diferite funcționalități. Un exemplu ar fi shield-ul care permite conectarea plăcii UNO la Internet.
3. LED (RX : Recepție)
Luminează când Arduino recepționează date in timpul programării.
4. LED (TX : Transmisie)
Luminează când Arduino transmite date in tipul rulării unui program.
5. LED (Pin 13: Depanare)
Acest LED luminează atunci când programul rulează corect.
7. LED
Indica faptul ca Arduino este alimentat.
8. Buton de resetare
Este o cale de a reseta manual micro controlerul care restartează rularea codului.
11. ATmega 16U2
Micro controlerul ATmega 16U2 este responsabil pentru convertirea semnalului provenit de la USB într-un semnal serial care este trimis către micro controlerul principal ATmega 328P. In alte cuvinte, ATmega 16U2 face legătura dintre computerul dumneavoastră si placa Arduino. Acesta are propriul set de periferice care ajuta la îndeplinirea task -urilor importante.
12. ATmega 328P
Acesta este creierul plăcii Arduino UNO. Orice altceva de pe placa există pentru a ne permite sa experimentam cu ATmega328P.
Datele principale despre el sunt:
Este un micro controler pe 8 biți
Are o memorie flash de 32 kB
Are 2kB de SRAM
Are o interfața de tip USB
Are 20 de pini pentru intrări/ieșiri
Este echipat cu un port serial SPI
9. Contactele ICSP
Exista doua contacte cu pini ICSP pe placa Arduino UNO. Fiecare contact are legătura cu un micro controler. ICSP este un acronim de la In-Circuit-Serial-Programming. Fiecare micro controler are un firmware care rulează pe ele. Pentru ATmega 16U2, aceste program permanent permite ca micro controlerul sa facă translația USB-Serial. ATmega 328 are de asemenea un program permanent care citește datele seriale de la 16U2 și aloca memorie pentru a păstra datele. Aceste firmware-uri sunt încărcate pe micro controlere după ce circuitele integrate sunt montate pe placa. Pentru a încărca programele se folosesc pinii ICSP. Acești pini pot fi folosiți și pentru a încărca programele Arduino denumite sketch, direct in micro controlerul ATmega 328.
13. Oscilatorul 16MHz
Oscilatorul de cristal de 16MHz este conectat la micro controlerul ATmega16U2 și este o componenta esențiala pentru o sincronizare perfectă in comunicarea seriala. Micro controlerul ATmega328 are propriul oscilator așa cum se poate vedea in schema. Insa placa folosește un rezonator ceramic in loc de un oscilator de cristal. Vom arunca o privire la funcțiile ambelor componente in articolele ulterioare.
Rezonator ceramic
Funcția oscilatorului și rezonatorului este aceeași. Acestea sunt folosite pentru a seta timpul circuitului electronic. Ce înseamnă asta? Sa presupunem că avem nevoie de o pa de 2 secunde intre fiecare aprindere și stingere a unui LED. Cele doua secunde de pauza sunt calculate de către oscilator sau rezonator.
Pinii digitali de intrare/ieșire
6. Pini digitali (PWM)
Toți pinii de pe placa Arduino (și cei digitali și cei analogici) pot fi folosiți ca pini digitali. Aceștia sunt pini folosiți pentru a comunica cu dispozitivele atașate de placa Arduino. Pinii digitali de intrare citesc intrări iar pinii de ieșire digitali scriu ieșiri digitale.
10. Pini analogici (Analog IN)
Placa Arduino UNO este prevăzuta cu; șase pini analogici (opt pini daca folosiți versiunea SMD) care sunt clasificați ca si intrări analogice. O data analogica este, in principiu, o valoare dintr-un anumit interval. Un pin analogic de intrare poate măsura un curent sau semnal cu un voltaj cuprins intre 0-5V (putem folosi pinul AREF pentru a schimba acest interval). Datele digitale vin cu valori de LOW sau HIGH, insa datele analogice cuprinde toate valorile cuprinse intre cele doua praguri de tensiune. De obicei senzorii au ieșiri analogice, insa micro controlerul ATmega 328 nu poate procesa direct datele analogice. Acesta este echipat cu o componenta periferica denumita ADC (un convertor de la analog la digital – Analog to Digital Converter). Acest convertor este proiectat sa citească valorile de intrare analogice și sa le convertească in intrări digitale pentru micro controler. Exista o ușoara confuzie in convenția de numire, deoarece din punct de vedere funcțional, unii pini digitali pot furniza ieșiri analogice sub forma de PWM (puls modulat). In mod similar toți pinii de intrări analogice (A0-A5) pot fi folosiți ca pini digitali.
10. Pinii de alimentare (POWER)
Exista șapte pini de energie pe placa Arduino UNO. Fiecare pin are propria semnificație și sunt parte din circuitul de alimentare cu curent. Vom face o listă cu pinii principali și funcționalitatea fiecăruia mai jos.
Vin Pinul Vin poate fi folosit pentru a alimenta placa Arduino sau ca sursa de curent pentru alte componente atașate la placa. În cazul în care folosiți pinul pentru a alimenta placa Arduino, acesta are nevoie de o alimentare cu curent intre 6V-12V. Aceasta tensiune va fi ulterior reglata la 5V de către regulatorul de curent de pe placa. In cele din urma acest curent va alimenta placa Arduino.
GND Exista trei pini de împământare disponibili pe placa Arduino UNO. Doi dintre aceștia sunt atașați direct de sursa de alimentare. In general in electronica, doua circuite care interacționează unul cu celalalt au un punct comun de voltaj ca referința iar acesta se numește împământare (GND).
2.4Limbaj de programare utilizat
Arduino Software (IDE)
Mediul de dezvoltare integrat Arduino – sau Arduino Software (IDE) – conține un editor de text pentru scrierea de coduri, o zonă de mesaje, o consolă de text, o bară de instrumente cu butoane pentru funcții uzuale și o serie de meniuri. Acest program se conectează la hardware-ul Arduino și Genuino pentru a încărca programe și a comunica cu ele.
Scrierea schițelor
Programele scrise folosind software-ul Arduino (IDE) se numesc schițe. Aceste schițe sunt scrise în editorul de text și sunt salvate cu extensia. Ino. Editorul are caracteristici pentru tăiere/lipire și pentru căutarea/înlocuirea textului. Zona in care se afișează mesajele oferă informații în timp ce salvează, exportă și, de asemenea, afișează erori. Consola afișează textul transmis spre utilizator de către Software-ul Arduino (IDE), inclusiv mesaje de eroare complete și alte informații. Colțul din dreapta jos al ferestrei afișează placa și portul serial configurat. Butoanele barei de instrumente vă permit să verificați și să încărcați programe, să creați, să deschideți, să salvați schițe și să porniți monitorul serial.
Comenzi adiționale sunt găsite in cele cinci meniuri: File, Edit, Sketch, Tools, Help. Aceste meniuri sunt sensibile din punct de vedere al contextului, ceea ce înseamnă ca sunt relevante doar in privința activităților care se efectuează in momentul in care sunt accesate.
File
New
Creează o noua instanța pentru editor, cu o structura minima a unei schițe deja funcționala.
Open
Funcția facilitează deschiderea unei schițe din partițiile și folderele calculatorului.
Open Recent
Oferă o scurta lista cu cele mai recente schițe, pregătite pentru a fi deschise.
Sketchbook
Arata schițele recente din interiorul folderului cu schițe; făcând click pe oricare nume, se deschide într-un nou editor schița care ii corespunde
Examples
Reprezintă toate exemple oferite de Arduino Software (IDE) sau librarii care apar in acest meniu. Toate exemplele sunt structurate în așa fel încât să faciliteze accesul in funcție de subiect sau librărie.
Close
Închide instanța de Arduino Software din care este acționata.
Save
Salvează schița cu numele curent. Daca aceasta nu a fost denumita înainte, un nume va fi oferit într-o fereastra de tip "Save as".
Save as…
Oferă posibilitatea de a salva schița curenta cu un nume diferit.
Page Setup
Arată pagina Page Setup pentru printare.
Trimite schița curenta imprimantei in concordanta cu setările definite in Page Setup
Preferences
Deschide fereastra Preferences unde unele setări pentru IDE pot fi customizate, cum ar fi interfața pentru limbajul IDE.
Quit
Închide toate ferestrele IDE. Aceleași schițe care erau deschise atunci când butonul de Quit a fost folosit vor fi deschise atunci când programul va fi repornit.
Undo/Redo
Se întoarce cu unul sau mai mulți pași făcuți in timpul editării; atunci când mergi înapoi, poți merge înainte cu butonul Redo.
Cut
Elimina textul selectat din editor și îl pune in clipboard.
Copy
Dublează textul selectat din editor și îl plasează in clipboard.
Copy for Forum
Copiază codul din schița in clipboard într-o forma adecvata pentru postarea pe forumuri, cu toate culorile sintaxelor.
Copy as HTML
Copiază codul din schița in clipboard ca HTML, adecvat pentru folosirea in pagini web.
Paste
Pune conținutul clipboard-ului la poziția cursorului, in editor.
Select All
Selectează și pune in evidenta tot conținutul editorului.
Comment/Uncomment
Pune sau scoate "//" markerele de comentariu de la începutul fiecărei lini selectate
Increase/Decrease Indent
Adaugă sau scoate un spațiu de la începutul fiecărei linii, mișcând textul un spațiu in dreapta sau eliminând un spațiu de la început.
Find
Deschide fereastra Find and Replace unde poți specifica textul care poate fi căutat in textul curent oferind câteva opțiuni
Find Next
Evidențiază textul in următoarea apariție relativa la poziționare cursorului in cazul in care exista mai multe elemente cu același nume in aceeași căutare.
Find Previous
Evidențiază ultima apariție daca a mai existat un element cu același nume înainte de cel căutat.
Sketch
Verify/Compile
Verifica schița pentru erori prin compilare; va reporta nivelul de folosire al memoriei pentru cod și variabile in zona de consola.
Upload
Compilează și încarcă fișierul binar în placa configurata prin portul deja configurat
Compiles and loads the binary file onto the configured board through the configured Port.
Upload Using Programmer
Aceasta funcție va rescrie bootloader-ul de pe placa; va trebui sa fie folosita funcția Tools > Burn Bootloader pentru ca aceasta sa fie restaurata și sa se poată încărca prin portul USB din nou. Oricum, oferă posibilitatea sa fie folosita toata capacitatea memoriei Flash pentru schița.
Export Compiled Binary
Salvează un fișiere de tip *. Hex care poate fi păstrat ca arhiva sau trimis plăcii folosind alte instrumente
Show Sketch Folder
Deschide fișierul curent de scheme.
Include Library
Adaugă o librărie schiței prin inserarea sintagmei #include la începutul codului. In plus din acest meniu se poate accesa Library Manager si se pot importa noi librarii din fișiere *.zip.
Add File…
Adaugă un fișier sursa schiței (se va copia din locația sa curentă). Noile fișiere apar într-o filă nouă în fereastra cu schițe. Fișierele pot fi scoase din schița folosind meniul accesibil prin darea unui click pe triunghiul mic de sub serial monitor din dreapta toolbar-ului.
Tools
Auto Format
Funcția formatează codul: spre exemplu deschide și închide parantezele de la început și de la sfârșit în așa fel încât codul din interiorul lor sa fie mai mult depărtat de margine.
Archive Sketch
Arhivează o copie a schiței curente in format *.zip. Arhiva este plasata in același fișier ca și schița.
Fix Encoding & Reload
Rezolvă posibilele discrepanțe între editorul de încărcare a caracterelor și alte sisteme de caractere.
Serial Monitor
Deschide fereastra serial monitor și inițiază schimbul de date între placa conectată de pe portul selectat. Această acțiune resetează placa, dacă placa are posibilitatea de Reset prin port.
Board
Selectează placa pe care o folosești.
Port
Meniul conține toate dispozitivele conectate la calculator. Se reîmprospătează automat de fiecare dată când se deschide meniul Tools
Programmer
Pentru a se selecta un programator atunci când se programează o placa sau cip si nu se folosește conexiunea usb. In mod normal nu este nevoie de aceasta opțiune dar daca se folosește un bootloader pentru micro controler aceasta opțiune va fi necesara
Burn Bootloader
Opțiunile din acest meniu facilitează modul de a încărca un bootloader in micro controlerul Arduino. Aceasta funcție nu este necesara daca se folosește un Arduino sau Genuino dar este folositoare daca se achiziționează un nou micro controler ATmega (care in mod normal vine fără un bootloader). Trebuie sa se asigure faptul că s-a selectat placa corectă din meniul Boards înainte de a încărca bootloader-ul.
Sketchbook
Arduino Software (IDE) folosește conceptul de Sketchbook: un loc standard unde să se depoziteze programele (sau schițele). Schițele din Sketchbook pot fi deschise din meniul File > Sketchbook sau din butonul Open de pe bara cu funcții. Prima dată când se folosește software-ul Arduino, va fi creat automat dosarul Sketchbook. Se poate vedea sau schimba locația Sketchbook din Preferences.
Tabs, Multiple Files, and Compilation Permite administrarea schițelor cu mai mult de un fișier (care fiecare apare într-o fila separată) Acestea pot fi coduri normale Arduino (fără extensie vizibilă), fișiere C (. C extension), fișiere C++ (.cpp) sau fișiere antet (. H).
Uploading
Înainte de a încărca schița, trebuie selectate elementele corecte din meniurile Tools > Board and Tools > Port. Bordurile sunt descrise mai jos. Pe Mac, portul serial este probabil ceva de genul/dev/tty. Usbmodem241 (pentru un Uno sau Mega2560 sau Leonardo) sau/dev/tty. Usb-serial-1B1 (pentru o placă USB Duemilanove sau anterioară) sau/dev/tty. USA19QW1b1P1.1 (pentru o placă serială conectată cu un adaptor Keyspan USB-to-Serial). Pe Windows, este probabil COM1 sau COM2 (pentru o placă serială) sau COM4, COM5, COM7 sau mai mare (pentru o placă USB) – pentru a afla că sunteți în căutarea unui dispozitiv USB serial în secțiunea porturi a Device Manager-ului Windows. Pe Linux, ar trebui să fie/dev/ttyACMx, /dev/ttyUSBx sau similar. Odată ce a fost selectat portul serial și placa corectă, se apasă butonul de încărcare din bara de instrumente sau se selectează elementul Upload din meniul Schiță. Plăcile Arduino se vor reseta automat și vor începe încărcarea. Cu panouri mai vechi (pre-Diecimila) care nu au automat resetare, va trebui fie apăsat pe butonul de resetare de pe tablă chiar înainte de a începe încărcarea. Pe majoritatea panourilor, se va vedea LED-urile RX și TX clipind când schița este încărcată. Software-ul Arduino (IDE) se va afișa un mesaj când încărcarea este completă sau se va afișa o eroare. Când se încărca o schiță, se folosește bootloaderul Arduino, un mic program care a fost încărcat pe micro controlerul de pe placa. Acesta permite să se încarce codul fără a utiliza orice hardware suplimentar. Bootloader-ul este activ pentru câteva secunde când placa este resetată; Apoi începe oricare schiță a fost încărcată cel mai recent în micro controler. Bootloader-ul va face sa clipească LED-ul de pe placă (pinul 13) atunci când pornește (adică când placa se resetează).
Libraries
Bibliotecile oferă funcționalități suplimentare pentru a fi utilizate în schițe, de ex. Lucrul cu hardware sau manipularea datelor. Pentru a utiliza o bibliotecă într-o schiță, selectați-o din meniul Sketch> Import Library. Aceasta va introduce una sau mai multe instrucțiuni #include în partea superioară a schiței și va compila biblioteca cu schița. Deoarece bibliotecile sunt încărcate în bord cu schița, acestea ocupa mai mult loc. Dacă o schiță nu mai are nevoie de o bibliotecă, pur și simplu ștergeți #includestatements acesteia din partea de sus a codului. Există o listă de biblioteci în referință. Unele biblioteci sunt incluse în software-ul Arduino. Altele pot fi descărcate dintr-o varietate de surse sau prin Library Manager. Începând cu versiunea 1.0.5 a IDE, se poate importa o bibliotecă dintr-un fișier zip și se poate folosi într-o schiță deschisă. Consultați aceste instrucțiuni pentru instalarea unei biblioteci terță parte.
Third-Party Hardware
Suportul pentru hardware-ul terților poate fi adăugat în directorul hardware al directorului de schițe. Platformele instalate pot include definiții de bord (care apar în meniul de bord), biblioteci de bază, bootloaders și definiții de programatori. Pentru a instala, creați directorul hardware, apoi desfaceți platforma terță parte în propriul subdirector. (Nu folosiți "arduino" ca nume de subdirector sau veți înlocui platforma Arduino încorporată.) Pentru a dezinstala, pur și simplu ștergeți directorul.
Serial Monitor
Afișează date seriale trimise de pe placa Arduino sau Genuino (USB sau placă serială). Pentru a trimite date la bord, introduceți textul și se va face clic pe butonul "trimite" sau apăsați pe Enter. Alegeți rata baud din meniul derulant care se potrivește cu rata transferată la Serial. Begin din schița. De reținut că în cazul sistemelor Windows, Mac sau Linux, placa Arduino sau Genuino va reseta (reluarea executării schiței la început) atunci când se va conecta cu monitorul serial.
Boards
Selecția tabelului are două efecte: stabilește parametrii (de exemplu viteza CPU și rata baud) folosiți la compilarea și încărcarea schițelor; Și seturile și fișiere de siguranța utilizate de comanda de încărcare pentru bootloader. Unele dintre definițiile de bord diferă numai în cele din urmă, deci chiar dacă ați încărcat cu succes o anumită selecție, veți dori să o verificați înainte de a încărca bootloader-ul. Puteți găsi un tabel de comparație între diferitele placi.
Capitolul 3: Studiu de caz – Controlul unor parametrii specifici pentru funcționarea eficienta a unei sere
Roșiile sunt legumele cele mai mult cultivate în sere, urmate de castraveți. Ambele se pot cultiva in afara sezonului (toamna, iarna si primăvara). Alte legume sunt vânăta, ardeii, ceapa verde, salata, spanac, ridichi, și ierburi precum pătrunjelul, mărarul, cimbrul, busuiocul…
România are, o concurenta dura cu Turcia, Spania, Grecia sau Algeria care obțin legume în sere neîncălzite. Pentru aceasta este necesar a se lua masuri similare cu cele pe care le iau producătorii olandezi, englezi sau francezi, respectiv de retehnologizare a producerii legumelor de sera.
3.1. Construcția mini serei pentru testarea practica a aplicației
Pentru a putea testa funcționarea sistemului de automatizare, am construit o structura tip sera cu senzorii și elementele de execuție aferente. Dimensiunile incintei sunt L=600mm, l=300mm, h=300mm cu un volum de 0.054 m3.
Structura serei fără senzori
Am ales soluția unui acoperiș plat pentru o mai buna observare a modului de lucru al elementelor de execuție. Este construită având la baza o placa de polietilena prinsa in șuruburi de o placa de parchet laminat pentru consolidare, cu pereții laterali din policarbonat alveolar de 8mm, iar acoperișul este dintr-o placa de policarbonat semitransparent. Partea din fata culisează pe doua canale paralele pentru a putea permite accesul in interior. Acestea sunt asamblate prin intermediul unor corniere de plastic 20x20mm, lipite cu batoane de silicon la cald. Orificiile necesare au fost date cu freze circulare, de diametrul interior al ventilatoarelor sau găuri cu burghie de diametru corespunzător.
In interior a fost fixata prin intermediul unei casete izolante din polistiren extrudat de 20mm, o tava de plastic încărcata cu pământ special pentru plante in care au fost plantate doua flori.
Poziționarea senzorilor este făcuta astfel:
Senzorul de umiditate sol – in tava cu flori
Senzorul de lumina – in coltul din dreapta sus al mini serei
Senzorul de umiditate și temperatura aer – pe peretele din stânga la semiînălțime în afara zonei curenților de aer direct creați de ventilatoare.
Sistemul de iluminat este pe baza de lămpi cu leduri prinse cu adeziv de capacul superior
Sistemul de încălzire este format dintr-o rezistența de nichelina, bobinata pe un miez ceramic cu diametrul de 20mm rezistenta nichelinei este de 12 ohm, iar puterea de 12w. Am ales aceasta soluție pentru o creșterea graduală a temperaturii, protejând astfel de șoc termic plantele din seră. Aerul este recirculat forțat prin intermediul unui ventilator încorporat pe traseul de aer cald, acest lucru permițând temperatura din interior în sezonul rece sa fie menținuta mai ușor in parametrii. Rezistența bobinata este susținuta in interiorul tubului de traseu al aerului cald prin intermediul șurubului ce străbate miezul ceramic și a doua bride de tablă. În cazul în care nu este nevoie de încălzire, în locul ventilatorului pentru pentru extracția aerului din seră se poate monta un ventilator care poate scădea mai rapid temperatura și umiditatea din seră.
Sistemul de udare este format dintr-o pompa de 12v, cu debit de 1l/min, conectată prin furtun de polietilenă cu diametrul interior de 4mm la o țeava din fibra de sticla găurită la distanțe egale de 30mm, ce asigură udarea uniformă a substratului de cultură. Rezervorul de apa cu nutrienți are o capacitate de 0,9 l.
Sistemul de ventilare este format din doua ventilatoare de 12v, la 1500rot/min care asigura un debit de aer suficient pentru o răcire lentă a aerului din incinta serei, iar in timpul verii se poate monta ventilatorul atașat în poziția de introducere forțată de aer, mărind astfel cantitatea de aer recirculat in seră și se accelerează răcirea și se micșorează umiditatea produsă prin evaporarea apei din sol.
Pentru a evita orice accident, deșii modulul cu relee permitea alimentarea elementelor la 220v, pentru siguranța am ales soluția alimentarii la 12v cc cu un alimentator de laptop (12V; 3,5 A) care depășește cu 30% consumul maxim al sistemului de automatizare. Elementele de execuție sunt alimentate direct cu 12V, iar plusul este conectat prin punte între punctele de fir comun ale celor patru relee. La primirea comenzii de la Arduino prin contactul de lucru al releului acționat se alimentează elementul de execuție corespunzător releului respectiv.
Pentru a asigura autonomia mini serei în sistemul experimental am folosit o baterie de 9V pentru alimentarea micro controlerului Arduino.
In zona din spatele mini serei se afla montat rezervorul de apa combinata cu microelemente nutritive, modulul Arduino și regletele electrice de interconectare.
Plusul și minusul alimentării senzorilor, modulul cu relee și modulul LCD+I2C sunt aduse într-o regletă unde sunt conectate corespunzător cu plusul și minusul de la Arduino, iar ieșirile prin care senzorii trimit datele măsurate sunt conectate la pinii corespunzători conform codului de programare scris.
Comenzile releelor sunt conectate la pinii de la 2 la 5 pe modulul lor, iar alimentarea la pini 1 respectiv 6.
Toate firele de conectare din zona serei sunt aduse prin canale de cablu din plastic, iar pentru o mai buna observare a variației parametrilor am fixat modulul LCD pe parte superioara a mini serei.
Pentru a ușura monitorizarea aplicației a fost legata partea de măsurare – execuție cu programul Excel prin intermediul macroului PLX-DAQ, rezultatele citirii datelor de la senzori și răspunsul aplicației la modificarea parametrilor putând fi urmărite grafic foarte ușor.
3.2 Schema bloc a sistemului de execuție și de comanda al serei
Fig Schema bloc a instalației de control a parametrilor
3.3 Schema electrica a sistemului de execuție și de comanda al serei
Schema electrica detaliata a sistemului de monitorizare și control a serei
3.4 Descrierea detaliata a modulelor aplicației de control a parametrilor specifici serei.
Pentru o mai buna înțelegere a concepției șI a modului de funcționare mai jos este explicată funcționarea fiecărui modul și interacțiunea dintre ele.
3.2.1 Modulul pentru controlul temperaturii și umidității aerului
Cerințele plantelor legumicole fata de temperatura
Sursele principale de cultură necesare pentru creșterea și dezvoltarea plantelor sunt: radiația solara, radiația geotermica, sursele artificiale bazate in principal pe energia fosila, energia hidrotehnica, energia nucleara. Radiația solară este principala sursa de energie care asigura atât căldura cat si lumina necesara creșterii și dezvoltarea plantelor verzi. O puternică variație a intensității radiației se constata in cursul anului datorita modificării unghiului de incidenta a razelor solare cu suprafața solului, a duratei de strălucire a soarelui și a nebulozității, în funcție de intensitatea radiației condiționate de poziția geografica potențialul termic este diferit de la o zona la alta.
Fenomenul de sera la scara mai redusa sta la baza încălzirii naturale a serelor, solariilor și adăposturilor temporare acoperite cu materiale transparente care au o transmisivitate buna pentru radiația luminoasa și mai mult redusa pentru radiația calorica ce emana de la sol acumulând astfel o cantitate de căldura in spațiul acoperit. Toate procesele vitale ce se petrec in plante: fotosinteza, respirația, transpirația, absorbția minerala, metabolizarea substanțelor, morfogeneza, in general creșterea și dezvoltarea sunt condiționate de căldura. Pentru fiecare din aceste procese, in funcție de specie, exista un nivel optim la care procesul se desfășoară cu intensitate maxima, nivel minim și maxim de temperatura la care procesul încetează din cauza temperaturi prea scăzute sau prea ridicate. La temperaturi ridicate se intensifica mult respirația astfel ca randamentul fotosintetic al plantelor poate sa scadă reducând nivelul favorabil de temperatura la 26-30C. Nivelul de temperatura la care toate procesele biochimice și fiziologice se desfășoară la intensitatea corespunzătoare unei creșteri și dezvoltarea echilibrate se numește optimum armonic. Acesta variază în funcție de specie, soi, faza de vegetație și ceilalți factori de mediu.
Atât scăderea cat și creșterea temperaturi fața de nivelul optim încetinesc procesul până la limitele nivelului minim sau maxim de temperaturi la care acesta încetează. Speciile cu cerințe fata de căldura se împart in 2 grupe: specii pretențioase la căldura (termofile) și specii mai puțin pretențioase față de căldură. Cerințele față de căldură sunt mai ridicate la germinația semințelor și mai reduse după apariția cotiledoanelor ca urmare a necesității de micșorare a pierderilor prin respirație și pentru a evita alungirea plantelor. La speciile bienale și perene în faza de repaus cerințele fața de căldură sunt minime iar vernalizarea are loc la temperaturi de 4-10C. Se mai semnalează o creștere a cerințelor față de căldură la repicat sau plantat pentru asigurarea regenerării sistem radicular și la maturizarea fructelor și semințelor când temperatura poate fi cu 7gr C mai ridicata decât în cursul perioadei de vegetație.
Pentru cultivarea diferitelor specii de legume într-o anumită zonă se ține seama de temperatura medie lunară sau decada optima, precum și de mediile minime și maxime ale temperaturii în funcție de pretențiile acestora față de căldură dar și de rezistența lor la temperaturi scăzute sau foarte ridicate. În general la plantele legumicole sunt adaptate pentru un nivel și o variație mai redusă a temperaturii solului decât a aerului, rădăcinile se dezvoltă bine la temperaturi cu 3-5°C mai scăzute decât temperatura optimă de creștere a aparatului aerian. Nivelul temperaturii optime e influențat și de ceilalți factori: lumină, conținutul de CO2 din atmosferă, umiditatea atmosferică și umiditatea solului. În prezența luminii complete și a unui procent mai ridicat de CO2 crește nivelul temperaturii optime, intensificând asimilația clorofiliana ceea ce determină o bună dezvoltare a plantei și o producție mai ridicată.
Insuficiența sau lipsa luminii atrage cu sine necesitatea reducerii temperaturii, astfel datorită respirației intense plantele pierd cantități mari de substanța și randamentul fotosintezei scade. Un alt indicator al cerințelor față de temperatura este suma gradelor temperaturilor active necesară până la începerea fructificării sau până la recoltare.
Toate procesele vitale ce se petrec în plante: fotosinteza, respirația, transpirația, absorbția minerala, metabolizarea substanțelor, morfogeneza, în general creșterea si dezvoltarea sunt condiționate de căldura. Pentru fiecare din aceste procese, în funcție de specie, exista un nivel optim la care procesul se desfășoară cu intensitate maxima, nivel minim si maxim de temperatura la care procesul încetează din cauza temperaturi prea scăzute sau prea ridicate. Intensitatea maxima a fotosintezei se desfășoară la temperaturi de 35°C la tomate si 37°C la castraveți. Nivelul de temperatura la care toate procesele biochimice si fiziologice se desfășoară la intensitatea corespunzătoare unei creșteri si dezvoltări echilibrate se numește optimum armonic. 2 grupe:
A) specii pretențioase la căldura (termofile): 25gr. C – castravete, dovlecel, pepene, vinete; 22gr. C – tomate, ardei, fasole, porumb, bame. au origine tropicala si subtropicala. Temperatura minima de germinație a semințelor este de 8-12 °C si plantele nu suporta înghețul.
B) specii mai puțin pretențioase la căldura: 19gr. C – ceapa, usturoi, sparanghel, țelina si sfecla; 16gr. C – morcov, pătrunjel, salata, mazăre, spanac; 13gr. C – varza, conopida, gulie, ridiche si hrean. Provin din climatul subtropical, mediteranean sau temperat. Semințele lor pot sa încolțească la temperatura minima de 1-6°C si plantele rezista la înghețuri de -2, -8°C. Cerințele fata de căldura sunt mai ridicate la germinația semințelor si mai reduse după apariția cotiledoanelor, ca urmare a necesitații de micșorare a pierderilor prin respirație si pentru a evita alungirea plantelor. La speciile bienale (varza, morcov, ceapa) si perene, în faza de repaus cerințele fata de căldura sunt minime (0, +1°C) iar vernalizarea, care se desfășoară în aceasta faza, are loc la temperaturi de 4-10°C.
Se semnalează o creștere a cerințelor fata de căldura la repicat sau plantat, pentru asigurarea regenerării sistemului radicular si la maturizarea fructelor si semințelor, când temperatura poate fi cu 7°C mai ridicata decât în cursul perioadei de vegetație. Nivelul temperaturii optime este influențat si de ceilalți factori: lumina, conținutul de C02 din atmosfera, umiditatea atmosferica si umiditatea solului. Temperatura acționează în sinergie cu intensitatea luminii si concentrația de Con din atmosfera. În prezenta luminii complete si a unui procent mai ridicat de Con creste nivelul temperaturii optime, intensificând asimilația clorofiliana. Insuficienta sau lipsa luminii (în cursul nopții) atrage cu sine necesitatea reducerii temperaturii. Acest fenomen numit termoperiodism este o adaptare a plantelor la variația naturala diurna a temperaturii și luminii. Temperatura relativ mai scăzuta din timpul nopții, cu 4-6°C, împiedica alungirea tulpinilor, favorizează metabolizarea asimilatelor si uneori, ca de exemplu la fasole, condiționează o mai buna fecundare a florilor.
Umiditatea atmosferica prea ridicata determina închiderea stomatelor transpirația frunzelor se reduce si temperatura creste mult în țesuturile frunzei, micșorând capacitatea de asimilație si determinând dereglări grave de metabolism. Un alt indicator al cerințelor fata de căldura este suma gradelor temperaturilor active, necesara până la începerea fructificării sau până la recoltare. Se însumează temperaturile care trec peste pragul biologic minim de vegetație de 15°C pentru pepene, vinete, ardei, tomate, castravete, de 10°C pentru fasole, porumb si dovlecel si de 5°C pentru bulbifere, rădăcinoase, varza, mazăre, salata si spanac. Suma temperaturilor active este, de exemplu de 713-1000°C la diferitele soiuri de mazăre verde, de 800-1200°C la fasolea verde si 1240-1470°C la fasolea de sămânță.
Cerințele plantelor legumicole fata de umiditatea atmosferica
Plantele legumicole reacționează diferit. Nivelul umidității relative a aerului favorabil diferitelor culturi variază astfel: 80-85% la castravete, spanac, țelina; 75-80% la varza, sfecla, morcov, mazăre; 60-75% la tomate, fasole, ardei, vinete; 55-60% la pepene verde, ceapa, usturoi. Umiditatea atmosferica excesiva, în prezenta temperaturilor ridicate, poate cauza dereglări grave ale metabolismului, deoarece împiedica transpirația prin închiderea stomatelor si produce o supraîncălzire a frunzelor.
Seceta solului si seceta atmosferica micșorează producția si depreciază calitatea produselor legumicole; acestea își pierd frăgezimea, prospețimea si gustul datorita dezvoltării exagerate a țesuturilor mecanice, a acumulării de glicoizi si uleiuri eterice, devenind improprii pentru consum. Plantele pierd apa prin transpirație stomatica si cuticulara, au pierderea cea mai mare (85-90%) ceea ce înseamnă ca transpirația are loc mai ales când stomatele sunt deschise. În cursul nopții stomatele sunt închise si se deschid dimineața sub influenta luminii (reacția fotoactiva) cu o creștere treptata a pierderii de apa în cursul zilei, când acționează si ceilalți factori (lumina, căldura, scăderea umidității relative a aerului). Excesul de apa dăunează plantelor legumicole, prin scăderea conținutului de substanța uscata, scăderea rezistentei la păstrare si prin asfixierea rădăcinilor sau atacul unor boli. Alternanta unor perioade secetoase cu perioade de umiditate abundenta, determina crăparea guliilor, ridichilor, morcovilor si a fructelor de tomate, datorita presiunii exercitate de țesuturile interne suprasaturate cu apa asupra scoarței acestora.
Secvențele de cod implementate în Arduino Software (IDE) pentru controlul temperaturii si umidității sunt:
[cod]
#include <dht. H>//Libraria pentru senzorul DTH22
Dht DHT;
#define DHT22_PIN 2//DHT22 (AM2302) – Pinul la care este conectat senzorul
Hum = DHT.Humidity;
Temp = DHT.Temperature;
Int chk = DHT.Read22(DHT22_PIN); //funcția de citire a senzorului
//Funcția de afișare pe LCD si Serial Monitor a umidității aerului
Lcd. SetCursor (1, 0);
Serial. Print ("Umiditate aer: ");
Lcd. Print ("Umiditate aer: ");
Lcd. SetCursor (4, 1);
Lcd. Print (hum);
Lcd. Print ("%");
Serial. Print (hum + (String) "%");
Delay (2000);
Lcd. Clear ();
//Funcția de control si afișare pe LCD si Serial Monitor a temperaturii si umidității aerului
Serial. Print (" Temp: ");
Lcd. SetCursor (2, 0);
Lcd. Print ("Temperatura: ");
Serial. Print (temp);
Lcd. SetCursor (4, 1);
Lcd. Print (temp);
Lcd. Print (" C");
Serial. Println (" Celsius");
If (temp <= 24.0)
DigitalWrite (RELAY2, LOW);
If (temp >= 26.0)
DigitalWrite (RELAY2, HIGH);
If (hum > 75 || temp >= 28)
DigitalWrite (RELAY4, LOW);
Else
DigitalWrite (RELAY4, HIGH);
Delay (1000);
Lcd. Clear ();
}
[cod]
Schema logica de funcționare pentru controlul acestor parametrii este:
Schema logica de functionare a controlului temperaturii si umidității aerului
Explicația modului de funcționare:
După citirea temperaturii si umidității aerului din interiorul serei de către senzor acestea se compara cu valorile prestabilite de către administratorul serei. Valorile fiind stabilite în raport cu necesitățile plantelor cultivate. Daca valorile citite de senzor nu se încadrează în limitele impuse de administrator se comanda întocmai unitățile de execuție (ventilatoare sau elementul de încălzire) pentru a modifica factorii în așa fel încât aceștia sa revină între valorile limita impuse.
3.4.2 Modulul pentru controlul umidității solului
Cerințele plantelor legumicole fata de apa si umiditatea atmosferica:
Apa are un rol deosebit în viața plantelor: element de constituție, element si mediu de reacție biochimica si fiziologica, vehiculant al substanțelor minerale si al celor rezultate din sinteza, regulator termic al țesuturilor prin transpirație si evaporare.. Legumele au un consum de apa, în general mai ridicat, comparativ cu alte plante cultivate si o reacție puternic negativa. Legumele sunt produse suculente, cu un conținut ridicat de apa (75% – usturoi, 80% – mazăre verde, 96% – castraveți) si la multe din ele conținutul ridicat de apa reprezintă condiția unei calități superioare (conopida, broccoli, gulie, spanac, salata), asigurând suculenta, prospețimea si frăgezimea produsului. Atât coeficientul de transpirație, cat si consumul de apa al plantelor depind de particularitățile morfofiziologice si anatomice ale plantelor, mai ales de capacitatea de absorbție (forța de sucțiune) si de pierdere a apei (determinată de gradul de dezvoltare al sistemului radicular si de mărimea, structura morfologica si anatomica a frunzelor).
Consumul de apa variază în funcție de faza de vegetație, fiind în creștere treptată de la germinare si până la recoltare. Sursa principala de aprovizionare cu apa a plantelor legumicole este umiditatea solului, asigurata din precipitații, aport subteran si irigare. După consumul de apa si capacitatea de absorbție a apei speciile se pot împărți în patru grupe:
A) consum redus si absorbție buna: tomate, pepene verde, morcov, pătrunjel; b) consum mare si absorbție redusa: varza, conopida, gulie, castravete, ardei, vinete, țelina, fasole, salata, spanac, praz;
C) consum mare si absorbție buna: sfecla, dovleac, cartof;
D) consum mic si absorbție slaba: ceapa, usturoi.
Cerințele fata de umiditatea solului se schimba în cursul fazelor de dezvoltare, fiind mai ridicate ia încolțirea semințelor, în faza acumulării substanțelor de rezerva, care coincide cu formarea organelor comestibile, ca si la fructificare. Cerințe mai scăzute manifesta plantele legumicole după răsărire si prinderea răsadului. De asemenea, cerințele sunt scăzute în faza de repaus, la înflorire si la maturizarea bulbilor sau fructelor si semințelor.
Bilanțul apei în planta, exprimat de raportul dintre apa pierduta si apa absorbita, trebuie sa fie echilibrat. În lunile de vara, în solul insuficient aprovizionat cu apa se produce adeseori ofilirea plantelor în orele de amiaza, dar turgescenta frunzelor se restabilește din nou în cursul nopții. Ofilirea temporara se poate produce si în timpul perioadelor reci, din cauza fenomenului cunoscut sub denumirea de „seceta fiziologică.
Secvențele de cod implementate în Arduino Software (IDE) pentru controlul umidității solului sunt:
[cod]
Int procentumiditate;
Procentumiditate = map (citiredate, 1023, 0, 0, 100); //transformare date primare in procente
//Funcția de control si afișare pe LCD si Serial Monitor a umidității solului
Serial. Print ("Umiditate Sol:");
Lcd. Print ("Umiditate Sol:");
If (procentumiditate < 100)
Serial. Print (" ");
Lcd. Print (" ");
If (procentumiditate < 10)
Lcd. SetCursor (6, 15);
Serial. Print (procentumiditate);
Lcd. SetCursor (6, 15);
Lcd. Print (procentumiditate);
Serial. Print ("%");
Lcd. Print ("%");
If (procentumiditate <= 50)
DigitalWrite (RELAY3, LOW);
Else
DigitalWrite (RELAY3, HIGH);
Serial. Println ();
Delay (2000);
Lcd. Clear ();
Schema logica de funcționare pentru controlul acestui parametru este:
Schema logica de functionare a controlului umiditatii solului
Explicația modului de funcționare:
Prin amplasarea senzorului de umiditate a solului la aceeași distanta ca si plantele fata de elementul de udarea a solului am asigurat faptul ca umiditatea citita este aceeași ca si cea a plantelor si datele transmise plăcii Arduino sunt relevante. Valorile umidității solului sunt comparate cu valorile prestabilite necesare dezvoltarii în condiții optime a plantelor si daca valorile nu se încadrează între limite se acționează pompa de irigare până când acestea ajung în parametrii stabiliți.
3.2.3 Modulul pentru controlul luminozității
Cerințele plantelor legumicole fata de intensitatea luminii:
Lumina condiționează fotosinteza, morfogeneza, germinația semințelor la unele specii, anteza, scoaterea din repaus, calitatea pigmenților clorofilieni, structura, regimul de apa si alte procese. Intensitatea luminii: optima pentru asimilație este de 20.000-30.000 lucși, s-au observat ca la o intensitate mai mare de 50000 lucși asimilația rămâne la un nivel constant, cerințele diferă însa de la o specie la alta si pot fi apreciate după nivelul minim la care plantele pot sa își desfășoare activitățile fiziologice inclusiv fructificarea.
Cele mai mari cerințe fata de lumina le au plantele în faza creșterilor active, a acumulării substanțelor de rezerva, în fazele de inducție florala, înflorire si fructificare, dar unele specii necesita lumina si în faza de germinare. Cerințele fata de lumina sunt nule în perioada repausului de vegetație la plantele bienale si perene si uneori lumina poate fi dăunătoare stimulând procese biochimice ale ieșirii din repaus si încolțirea prematura a unor legume.
La speciile heliofile insuficienta luminii împiedica formarea inflorescențelor si legarea fructelor. Insuficienta luminii produce etiolarea plantelor tinere si a răsadurilor. În legumicultura se practică ’’înălbiri’’ unor organe ale plantelor ce consta în etiolarea dirijata a acestora ceea ce înseamnă ca planta în întregul ei are nevoie de mai putina lumina. Lumina puternica poate produce pagube prin efectele calorice si pierderea excesiva de apa din țesuturile plantelor.
Cerințele plantelor legumicole fata de fotoperiodism. Lungimea perioadei zilnice de lumin (fotoperioadă) influențează creșterea si dezvoltarea plantelor. Plantele legumicole de zi scurta 8-12h sunt cele provenite din climatul tropical si subecuatorial în special vinetele si unele specii de fasole, iar de zi lunga 14-16h sunt speciile provenite din climatul temperat sau mediteranean (varza, salata, morcov). În practica cunoașterea reacției fotoperiodice este utila la stabilirea perioadei de cultura si duratei de iluminare în eventualitatea folosirii luminii artificiale suplimentare.
Secvențele de cod implementate în Arduino Software (IDE) pentru controlul luminozității sunt:
[cod]
#define pinsenzor A0
Int citiredate;
Int sensorPin = A1; //selecteaza pinul de intrare pentru LDR
Int sensorValue = 0; //variabila in care se memorează valoarea primita de la senzor
//Funcția de control si afișare pe LCD si Serial Monitor a luminozității
If (sensorValue > 620) {
Lcd. SetCursor (5, 0);
Lcd. Print ("Noapte");
Lcd. SetCursor (2, 1);
Lcd. Print ("Aprind lumina");
}
Else
{lcd. SetCursor (7, 0);
Lcd. Print ("Zi");
Lcd. SetCursor (2, 1);
Lcd. Print ("Sting lumina");
}
If (sensorValue > 620) {
DigitalWrite (RELAY1, LOW);
}
Else {
DigitalWrite (RELAY1, HIGH);
}
Delay (2000);
Lcd. Clear ();
[cod]
Schema logica de funcționare pentru controlul parametrului luminozitate este:
Schema logica de functionare a controlului iluminarii
Explicatia modului de functionare:
Pentru început am efectuat câteva teste cu funcția de Serial Monitor a Arduino Software (IDE) pentru a afla valorile fotorezistentei la diferite intensități ale luminii. După aflarea valorilor care corespund întunericului am setat parametri superiori si inferiori între care sa se acționeze LED-urile. Fotorezistența transmite valorile către Arduino iar acesta acționează LED-urile prin intermediul modului de rele în concordanta cu necesitățile plantelor din sera.
3.2.4 Schema logica de funcționare a întregului sistem:
…
[code]
#include <dht. H>//Libraria pentru senzorul DTH22
#include <LiquidCrystal_I2C.H>
#include <Wire. H>
LiquidCrystal_I2C lcd (0x27, 16, 2); //Seteaza adresa LCD
#define pinsenzor A0
#define RELAY1 8
#define RELAY2 9
#define RELAY3 10
#define RELAY4 11
Int citiredate;
Int procentumiditate;
Dht DHT;
#define DHT22_PIN 2//DHT22 (AM2302) – Pinul la care este conectat senzorul
Float hum; //Memorează valoarea umidității
Float temp; //Memorează valoarea temperaturii
Int sensorPin = A1; //selectează pinul de intrare pentru LDR
Int sensorValue = 0; //Variabila în care se memorează valoarea primita de la senzor
Int i = 1;
Void setup () {
//Initializarea releelor
PinMode (RELAY1, OUTPUT);
PinMode (RELAY2, OUTPUT);
PinMode (RELAY3, OUTPUT);
PinMode (RELAY4, OUTPUT);
Serial. Begin (9600); //steteazza portul serial pentru comunicare
Lcd. Init (); //intitializeaza LCD-ul
Lcd. Backlight (); //deschide lumina de fundal a LCD-ului
//Funcții ale programului PLX-DAQ pentru crearea tabelului in timp real
Serial. Println ("CLEARDATA");
Serial. Println ("LABEL, Date, Time, Cicluri, ValFoto, Umiditate Sol, Umiditate Aer, Temperatura");
}
Void loop () {
SensorValue = analogRead (sensorPin); //citește valoarea de la senzor
Citiredate = analogRead (pinsenzor); //citire valoare pe intrarea analogica
Procentumiditate = map (citiredate, 1023, 0, 0, 100); //transformare date primare in procente
Int chk = DHT.Read22(DHT22_PIN);
//Read data and store it to variables hum and temp
Hum = DHT.Humidity;
Temp = DHT.Temperature;
Serial. Print ("Valoarea fotorezistentei este: ");
Serial. Println (sensorValue); //afiseaza pe ecran valoare citita de la senzor
//Funcție a programului PLX-DAQ pentru crearea tabelului in timp real
Serial. Println ((String) "DATA, DATE, TIME, " + i + ", " + (int) sensorValue/10 + ", " + procentumiditate + ", " + hum + ", " + temp);
I++; //variabila care se incrementează la fiecare parcurgere a buclei
Delay (1000);
//Funcția de control si afișare pe LCD si Serial Monitor a luminozității
If (sensorValue > 620) {
Lcd. SetCursor (5, 0);
Lcd. Print ("Noapte");
Lcd. SetCursor (2, 1);
Lcd. Print ("Aprind lumina");
}
Else
{lcd. SetCursor (7, 0);
Lcd. Print ("Zi");
Lcd. SetCursor (2, 1);
Lcd. Print ("Sting lumina");
}
If (sensorValue > 620) {
DigitalWrite (RELAY1, LOW);
}
Else {
DigitalWrite (RELAY1, HIGH);
}
Delay (2000);
Lcd. Clear ();
//Functia de control si afișare pe LCD si Serial Monitor a umiditatii soluilui
Serial. Print ("Umiditate Sol:");
Lcd. Print ("Umiditate Sol:");
If (procentumiditate < 100)
Serial. Print (" ");
Lcd. Print (" ");
If (procentumiditate < 10)
Lcd. SetCursor (6, 15);
Serial. Print (procentumiditate);
Lcd. SetCursor (6, 15);
Lcd. Print (procentumiditate);
Serial. Print ("%");
Lcd. Print ("%");
If (procentumiditate <= 50)
DigitalWrite (RELAY3, LOW);
Else
DigitalWrite (RELAY3, HIGH);
Serial. Println ();
Delay (2000);
Lcd. Clear ();
//Functia de afisare pe LCD si Serial Monitor a umiditatii aerului
Lcd. SetCursor (1, 0);
Serial. Print ("Umiditate aer: ");
Lcd. Print ("Umiditate aer: ");
Lcd. SetCursor (4, 1);
Lcd. Print (hum);
Lcd. Print ("%");
Serial. Print (hum + (String) "%");
Delay (2000);
Lcd. Clear ();
//Functia de control si afisare pe LCD si Serial Monitor a temperaturii si umiditatii aerului
Serial. Print (" Temp: ");
Lcd. SetCursor (2, 0);
Lcd. Print ("Temperatura: ");
Serial. Print (temp);
Lcd. SetCursor (4, 1);
Lcd. Print (temp);
Lcd. Print (" C");
Serial. Println (" Celsius");
If (temp <= 24.0)
DigitalWrite (RELAY2, LOW);
If (temp >= 26.0)
DigitalWrite (RELAY2, HIGH);
If (hum > 75 || temp >= 28)
DigitalWrite (RELAY4, LOW);
Else
DigitalWrite (RELAY4, HIGH);
Delay (1000);
Lcd. Clear ();
}
[cod]
3.2.5 Modulul de interfata grafica.
LCD-ul utilizează pinii digitali de la 2 la 7, astfel: pinul digital 7 – RS; pinul digital 6 – EN; pinul digital 5 – DB4; pinul digital 4 – DB5; pinul digital 3 – DB6; pinul digital 2 – DB7 (explicația semnalelor pe pagina următoare).
Shield-ul este bazat pe controllerul clasic care se folosește la LCD-uri, Hitachi HD44780. LCD-urile care folosesc cel mult 80 de caractere distincte si cel mult 4 linii de afișare au nevoie de un singur controller. LCD-urile care au mai mult de 80 de caractere au nevoie de două controlere. Imaginea cu pinout-ul LCD-ului și semnificația pinilor o găsiți în figura și tabelul de pe pagina următoare.
Pinii LCD-ului
Controllerul HD44780 conține două registre pe 8 biți: registrul de date și registrul de instrucțiuni. Registrul de instrucțiuni e un registru prin care LCD primește comenzi (shift, clear etc.). Registrul de date este folosit pentru a acumula datele care vor fi afișate pe display. Când semnalul Enable al LCD-ului este activat, datele de pe pinii de date sunt puse în registrul de date, apoi mutate în DDRAM (memoria de afișaj, Display Data RAM) și afișate pe LCD. Registrul de date nu este folosit doar pentru trimiterea datelor către DDRAM ci și către CGRAM, memoria care stochează caracterele create de către utilizator (Character Generator RAM).
Display Data Ram (DDRAM) stochează datele de afișare, reprezentate ca și caractere de 8 biți. Capacitatea extinsă a memoriei este de 80 X 8 biŃi, sau 80 de caractere. Memoria rămasă liberă poate fi folosita ca un RAM generic. Pe LCD-ul nostru se afișează doar 2×16 caractere, deoarece aceasta este dimensiunea afișorului, dar controllerul poate stoca 80. Forma grafică efectivă a unui caracter afișat pe LCD este dată de conținutul memoriei CGROM (Character Generator Read Only Memory). Această memorie conține matricele de puncte pentru fiecare caracter (5×8 puncte sau 5×10 puncte – depinde de dispozitiv).
Aspectul caracterelor de la 0x00 la 0x07 poate fi definit de utilizator. Se va specifica pentru fiecare caracter o matrice de 8 octeți, cate unul pentru fiecare rând. Cei mai putini semnificativi 5 biți din fiecare rând vor specifica care pixeli vor fi aprinși și care nu (vezi exemplul de mai jos).
Afișoarele LCD pot comunica cu microcontrolerul în două moduri: pe 8 biți și pe 4 biți. De obicei se preferă conectarea pe 4 biți, pentru că sunt mai putini biți de interfațat, și în consecință rămân mai mulți pini pentru alte aplicații. Shield-ul LCD pe care îl veți utiliza este gata configurat pentru a folosi comunicarea pe 4 biți. Acest mod folosește doar 7 pini de pe placa Arduino;
Prin intermediul adaptorului I2C se folosesc doar 2 pini pentru comunicarea cu arduino.
3.2.6 Modulul de conectare între Arduino si Excel.
Despre program si folosirea lui
PLX DAQ v2 este un program folosit pentru a stabili o comunicare ușoară între Microsoft Excel pe un computer Windows și orice dispozitiv care acceptă protocolul portului serial. A fost scris special pentru a permite comunicarea dintre Arduino și Excel.
Puteți, de exemplu, să măsurați datele despre temperatură cu Arduino, să trimiteți rezultatele la Excel la fiecare 10 secunde, să tipăriți datele pe o foaie și să desenați un grafic cu toate informațiile. Toată comunicarea se va face prin comenzile Serial. Println la fel ca comenzile pe care le folosiți pentru a trimite de la Arduino pentru a monitoriza în seria dvs. Arduino IDE Serial Monitor.
The output of
Void loop () {
Serial. Println ((String) "DATA, DATE, TIME, " + millis ());
Delay (100);
}
Captura din Excel:
Mod de folosire
Programul folosește două părți pentru a lucra: foaia de calcul specială Microsoft Excel cu interfața UI PLQ DAQ v2 și comenzi plus orice dispozitiv Arduino care trimite comenzi speciale pentru comunicare.
Interfata grafica pentru excel
After opening the Excel Spreadsheet please allow running the macro (yellow warning message at the top). Afterwards you can see the PLX DAQ v2 UI. In case not please click the button “Open PLX DAQ UI” on the “Simple Data” sheet.
The UI offers the following options:
Port: Setat la portul Arduino (la fel ca în Arduino IDE => Tools => Port, de exemplu, 4 pentru COM4
Baud: Setați la rata baud pe care o porniți (de exemplu, 9600 dacă utilizați Serial. Begin (9600) în codul dvs. Arduino)
Connect: Se conectează la Arduino și începe logarea
Pause logging/resume logging: Atunci când conectați va întrerupe logarea datelor
Reset Timer: Va seta Timerul la 0. Timerul poate fi folosit pentru a măsura cât timp Excel este deja logat
Clear Columns: Va șterge toate datele înregistrate din foaie. Nu va șterge etichetele coloanelor
Display/Hide direct debug: Fereastra Direct Debug poate fi utilizată pentru a monitoriza manual comenzile primite de PLX DAQ v2 în Excel va afișa sau ascunde câmpul de text din dreapta.
Sheet name to post to: Aceasta va lista toate foile din registrul de lucru Excel. Indiferent ce fișă selectați în meniul derulant, datele înregistrate vor fi trimise la acesta. Această fișă va fi denumită în continuare "ActiveSheet" în acest document.
Notă: după adăugarea/ștergerea foilor, apăsați micul buton "Încărcare" din partea stângă a căsuței drop-down pentru a fi actualizată lista de coli
Controller Messages: În câmpul de mai jos cele mai recente comenzi și informații de stare vor fi afișate. Cel mai probabil, informația se schimbă prea repede pentru a putea citi, deci utilizați fereastra Direct Debug.
Reset on Connect: Căsuța de bifare trebuie să fie bifată în orice moment. Dacă bifat va fi prima comandă de la Excel la Arduino va fi repornit, astfel codul dvs. începe de la început, de asemenea. În acest fel puteți avea o sesiune proaspătă. Dacă doriți să vă conectați la Arduino fără să o reporniți, deconectați caseta
Custom Checkbox 1/2/3: Acestea pot fi folosite pentru a controla Arduino-ul dvs. în timpul rulării în orice fel doriți. Există comenzi pentru a eticheta casetele de verificare de către Arduino și pentru a interoga starea casetelor. De exemplu, puteți eticheta o cutie "Măsurați și umiditatea?" Și verificați cererea din Excel dacă doriți ca Arduino să măsoare umiditatea cu un al doilea senzor de lângă măsurarea doar a temperaturii. Există comenzi speciale pe care Arduino le poate folosi pentru a interoga starea casetelor de selectare.
Despre PLX DAQ si ARDUINO
Pentru ca PLX DAQ v2 să funcționeze corect, Arduino trebuie să trimită comenzi special formate. Toate comenzile trebuie trimise de la Arduino la PC folosind comenzile Serial. Println. Aceste comenzi pot include parametrii, variabilele și funcțiile pe care să le trimiteți. Acești parametri trebuie separați prin virgule. Acest lucru se poate face astfel:
Serial. Println ((String) "DATA, DATE, TIME, " + millis ());
Capitolul 4: Concluzii si contributii personale.
Sinteza capitolelor lucrarii
…
Utilitatea aplicației
Sistemul de automatizare construit si testat reprezintă o investiție mica în raport cu beneficiile aduse din care se evidențiază;
Creșterea productivității culturii folosite datorita mediului controlat în care cresc plantele.
Economiile de timp și energie pentru activitățile de aerisire, încălzire, iluminare si irigare
Control permanent asupra parametrilor ce influențează calitatea culturilor
Practicarea unei agriculturi intensive moderne în condițiile unei concurente acerbe
Scăderea costurilor cu angajații, aceștia fiind necesari doar pentru activitățile de plantare și recoltare.
Irigarea plantelor prin sistemul picătura reduce cantitatea de apa consumata cu aproximativ 60%.
Acest sistem de automatizare se poate adapta ușor si pentru cultura florilor, ciupercilor, păstrarea unui climat constant în fermele de creștere a pasărilor, în culturile aquaponice și în serele înmulțitor din pomicultura.
Permite și adaptarea cultivării unor noi plante care altfel nu pot fi cultivate în România.
Ținând cont de faptul ca: modulul cu relee permite conectarea unor consumatori de 10A la 220V iar senzorii permit conectarea prin cabluri până la o distanta de max. 20m chiar și acest model experimental poate deveni funcțional pentru o sera cu dimensiunile de aproximativ 100m2..
Acest lucru se face astfel;
Înlocuind pompa cu una de de 300W/220V care pompează apa depozitata într-un rezevor de 2-3 m3, apa care este îmbogațită cu îngrășemintele și mineralele necesare in funcție de tipul de planta și faza de dezvoltare.
Se monteze ventilatoare la 220Vși cu diametrul de 600mm care sa asigure o ventilare corespunzatoare.
Inlocul LED-urilor de iluminat se monteza tuburi cu neon care au capacitatea de a emite lumina cu raze ultraviolete ce asigură condiții diurne plantelor și în timpul nopții.
Pentru partea de încalzire se pot monta tunuri electrice de caldura de 220V/1000W conectate în paralel.
Legaturile electrice se fac cu conductori de dimensiunea adecvata, trase prin tub copex și legate în doze cu izolare corespunzatoare.
În perspectiva imbunatatirilor ce se pot aduce acestui sistem sunt:
Prin intermediul unui shield Ethernet și a softului corespunzător utilizatorul sa poată supraveghea evoluția parametrilor și sa intervină direct în modificarea lor prin intermediul Internetului.
Adăugarea unui sistem de alarma care sa indice depășirea in plus sau în minus cu 30% ceea ce ar însemna defectarea unui element de execuție.
Adăugarea unui senzor care sa măsoare PH-ul solului permițând astfel și corectarea acestui parametru destul de important.
Adăugarea unui shield GSM și modificarea programului astfel încât acesta sa transmită SMS cu datele ce sunt afișate pe afișorul LCD.
Contribuțiile personale
Am ales acesta tema de proiect văzând cat de greu este de întreținut solarul de acasă. În urma cursului de la facultate despre Arduino, am ajuns la concluzia ca o aplicație care sa monitorizeze și regleze cei mai importanți parametrii privind cultura plantelor în spațiu închis ar fi foarte necesara și posibila.
M-am documentat din sursele menționate, am achiziționat microcontrolerul Arduino, senzorii și modulele necesare și alte componente care am considerat ca îmi vor folosii în proiect.
Am schițat modul cum am dorit sa lucreze m-am documentat despre condițiile necesare plantelor în culturile dîn sere, și folosind placa de test am creat circuitele electrice ale modulului. Am descărcat librăriile necesare programului și senzorilor și am creat programul pentru automatizarea serei, luând fiecare modul în parte și testând funcționarea lui, iar la sfârșit am creat un cod final care sa îndeplinească funcțiile de afișare în timp real ale parametrilor monitorizați, și autoreglarea lor în funcție de valorile impuse. Am procurat sau construit și testat funcționarea elementelor de execuție; sistem de încălzire, ventilatoare, și pompa de apa cu ajutorul unui alimentator de 12V cc, folosind aceasta soluție pentru a elimina pericolul accidentării prin electrocutare.
. Am gândit și executat structura miniserei ca sa pot testa funcționarea întregului sistem. Pentru aceasta am folosit din materialele din gospodărie: policarbonat alveolar, placa policarbonat, corniere plastic, placa PVC., batoane de silicon.
Pentru a putea monitoriza mai ușor evoluția valorilor în timp și timpul de răspuns la comenzi am căutat o soluție acceptabila. Cea mai bună a fost un macro al programului Excel numit PLX-DAQ, care citește datele primite de la senzori pe portul serial și le transformă în grafice.
În urma testării funcționarii în diferite perioade de timp și la condiții exterioare diferite am făcut corecțiile necesare astfel încât funcțiile sistemului sa fie cele pe care mi le-am propus sa le ating, după cum se poate observa în graficele atașate în lucrare.
Bibliografie
ARDUINO pentru începători, ***, robofun.ro
Elemente practice de baza in dezvoltarea sistemelor cu microprocesoare integrate utilizând
ARDUINO Uno, Pietraru,. Radu, Velicu, Alexandru, Techno Media, 2013.
Ernst van Heurn, Kees van der Post, Agricultura sub adăpost Editura Tei
Referinte Internet
https://www.arduino.cc/en/Main/Software
http://www.eva.ro/casa-și-familie/plante/crizantema-podoaba-de-toamna-a-teraselor-articol-5764.html
http://henrysbench.capnfatz.com/henrys-bench/arduino-output-devices/5-volt-4-channel-arduino-relay-module-user-manual/
http://kennarar.vma.is/thor/v2011/vgr402/ldr.pdf
http://www.purlance.com/product/product156.html
https://store.arduino.cc/arduino-uno-rev3.
http://www.rasfoiesc.com/business/agricultura/Relatiile-plantelor-legumicole59.php
http://www.renovat.ro/euphorbia-milii-ingrijire-și-inmultire-floarea-coroana-lui-isus-p-1160/
https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf
http://users.utcluj.ro/~rdanescu/pmp-lab03.pdf
Capitolul 1: Introducere în tematica lucrării
O seră este o structură care oferă protecție și un mediu controlat pentru cultivarea plantelor. Serele protejează culturile de prea multă căldură sau frig, protejează plantele împotriva precipitațiilor diverse și ajută la protejarea împotriva dăunătorilor. Controlul luminii și al temperaturii permite ca serele să devină locul perfect pentru plantele în creștere. Ele sunt folosite pentru cultivarea florilor, legumelor și fructelor.
Este necesar să se asigure un mediu adecvat pentru cultivarea plantelor în toate anotimpurile anului. Există multe dezavantaje ale sistemelor convenționale, cum ar fi: efortul ridicat și costurile mari în cultura convenționala pe teren deschis. În plus, productivitatea plantelor nu este optimă.
Problema primară a horticulturii bazate pe efectul de seră este de a gestiona în mod optim mediul din seră pentru a se conforma cerințelor economice și de mediu. Un sistem de climatizare este conceput pentru a oferi un mediu adecvat creșterii plantei prin citirea temperaturii, umidității, intensitații luminoase și umidității din sol prin senzori specifici și controlul elementelor de execuție: ventilatoarele pentru răcire, încălzire, umiditate, gradul de iluminare și irigare printr-un circuit electric controlat automat de un program specializat.
Obiectivele acestei cercetări sunt implementarea, proiectarea și realizarea unui sistem bazat pe un microcontroler (Arduino) cu cost redus pentru monitorizarea și controlul climatului de seră și implementarea hardware-ului prototip într-un mediu în timp real.
1.1 Metodologia
Astăzi, agricultura se schimbă ca răspuns la cerințele societății moderne, unde asigurarea aprovizionării cu alimente prin practici precum conservarea apei, reducerea tratamentelor chimice, reducerea consumului de energie și cultivarea intensiva pentru a asigura necesarul de hrana al populației în creștere.
Este bine cunoscut faptul că sera este o clădire sau complex în care plantele sunt cultivate. Aceste structuri variază în funcție de mărime, de la structuri mici până la clădirile industrializate Ele sunt foarte utile pentru că oferă o perioadă optimă de vegetație, permițând semănarea plantelor mai devreme și recoltarea plantelor mai târziu și rentabilizează culturile economice cum ar fi roșiile, castraveții, pepenii etc. Principalii factori de bază care afectează creșterea plantelor sunt: lumina, apa din sol, umiditatea aerului, temperatura. Acești factori fizici sunt greu de controlat manual în interiorul unei sere și este necesar un sistem automatizat care sa regleze acești factori.
1.2 Efectele principalilor factori în culturile din sera
1.2.1 Efectele temperaturii
Diferitele specii de cultură au variate temperaturi optime de creștere, iar aceste temperaturi optime pot fi diferite pentru răsărire, creștere sau fructificare.
Deoarece suntem de obicei interesați de creșterea și dezvoltarea rapidă a culturilor, trebuie să asigurăm aceste temperaturi optime pe parcursul întregului ciclu de recoltare. Daca o sera este construita din materiale bine izolate controlul acestui factor se face mult mai ușor.
1.2.2 Efectele umidității
Vaporii de apă din interiorul serii reprezintă una dintre cele mai semnificative variabile care afectează creșterea plantelor. Umiditatea este importantă pentru plante deoarece controlează parțial pierderea de umiditate din corpul plantei. Frunzele de plante au pori mici, CO2 pătrunde în plante prin acești pori, oxigenul și apa se elimina prin ele. Nivelul de transpirație al plantei scade proporțional cu cantitatea de umiditate din aer. Acest lucru se datorează faptului ca, prin difuziune apa circula de la zone cu concentrație mai mare la zone cu concentrație mai scăzută. Datorită acestui fenomen, plantele care se dezvoltă într-o încăpere uscată își pierd foarte mult din necesarul de umiditate.
Controlul umidității este complex, deoarece dacă se schimbă temperatura, atunci umiditatea relativă se modifică invers. Temperatura și umiditatea sunt controlate de acelaș elemente de execuție. Principala prioritate este controlul temperaturii, deoarece este principalul factor în creșterea culturilor. Bazat pe valoarea de umiditate relativă interioară, valoarea setată a temperaturii poate fi ajustată pentru a controla umiditatea într-un interval determinat. Prin urmare, controlul umidității din interiorul serei este o sarcină foarte complexă. Pentru controlul adecvat al umidității, aerul din interior poate fi schimbat cu aerul exterior prin ventilarea serei.
1.2.3 Efectul luminii
Plantele obțin energie din lumina soarelui printr-un proces numit fotosinteză. Acesta este modul în care lumina afectează creșterea unei plante. Fără lumină, o plantă nu ar fi capabilă să producă energia de care are nevoie pentru a crește. În afară de efectul său prin fotosinteză, lumina influențează creșterea organelor individuale sau a întregii plante în moduri mai puțin directe.
1.2.4 Efectul nivelului de umiditate din sol
Umiditatea solului afectează, de asemenea, creșterea plantelor. Prin urmare, monitorizarea și controlul stării solului are un rol important, deoarece starea bună a solului produce randamentul așteptat. Irigațiile și fertilizările adecvate ale culturilor variază în funcție de tipul, vârsta, faza de dezvoltare a plantei. Temperatura și umiditatea sunt controlate prin sistemul de irigare și ventilare din seră. Temperatura solului și temperatura interioară a serii sunt parametri interdependenți, care sunt controlați prin setarea corectă a valorilor optime prin ventilare.
Se va folosi un sistem automat bazat pe microcontroler (Arduino). Pentru monitorizarea automată și controlul parametrilor din seră, se va dezvolta un sistem independent care va înregistra temperatura, umiditatea, luminozitatea și umiditatea solului în funcție de care se vor controla condițiile de mediu din din sera. Mai mult, pentru controlul eficient, se utilizează o aplicație de interfață grafica împreună cu sistemul încorporat care ne permite sa vizualizam in timp real variația parametrilor monitorizați și controlați.
Capitolul 2: Tehnologii de automatizare și informatizare foosite in lucrare
2.1 Senzori și elemente de executie
2.1.1 Senzor de umitate și temperatura.
Fig1. – Senzor de Umiditate și Temperatura DTH22
Specificații: DTH22
Tensiune de alimentare 3.3-6V
Curent 1-1.5mA
Curent standby 40-50 uA
Umiditate 0-100% RH
Temperatura -40 – 80 C
Acuratețe umiditate +-1% RH
Tensiunea de ieșire din senzor este convertita in temperatura printr-o formula.
Ecuația generala de conversie a tensiunii de ieșire din senzor in temperatura este
Temperatura (oC) = (Vout * 100) /5 in oC
Tabel valori temperatură
Conversia tensiunii de ieșire in factor de umiditate relativa se face cu formula:
RH = ((Vout/Vcc) – 0.16) /0.0062, la 25°C
Tabel valori umiditate relativa
2.1.2 Senzor umiditatea solului FC-28D
Fig1. – Senzor de Umiditate Sol FC-28D
Specificatii: FC-28D
Senzor umiditate sol
Tensiune de alimentare: 3.3V-5V
DO: ieșire digitală (0 and 1)
AO: iesire analogică
Dimensiune PCB modul: 3 x 1.5 cm
Dimensiune PCB senzor: 6 x 2 cm
Lungime fire: 21 cm
Acest senzor este foarte ușor de utilizat. Cele doua plăcute expuse funcționează ca probe pentru senzor, acționând ca un rezistor variabil. Cu cat este mai multa apa in sol cu atât conductivitatea dintre plăcute va fi mai mare și rezistenta mai mica. El este format din doua parți componente: circuitul PCB ce conține comparatorul LM393 și partea care se înfige in pământ iar cele două sa interconectează în continuare cu microcontrolerul. Se pot culege date analogice sau digitale in funcție de preferințe
Tot ce trebuie făcut pentru a face senzorul sa funcționeze este se conecteze pinii VCC și GND la placa Arduino sau orice alta placa de dezvoltare compatibila. De obicei senzorii de umiditate pentru sol au o durata de viata scurta, datorita faptului ca sunt expuși la un mediu umed. Pentru a combate acest lucru, placa PCB a fost acoperita cu un strat subțire de aur (ENIG). Acest senzor analog returneaza o valoare intre 0 – 1023 valoarea trebuie sa fie transformată în procente pentru a fi mai ușor de înțeles și folosit. Calculul se face cu următoarea formulă:
100 – (100.00/1024.00) * valoarea curenta citita de senzor
Citirea valorilor senzor umiditate sol
2.1.3 Senzor lumină-fotorezistor LDR
Simbol LDR
Rezistenta electrica a fotorezistenței poate varia de la 10k in întuneric până la 100 ohm in plina lumina.
Se utilizează următorul circuit a cărui tensiune de ieșire analogica este direct proporționala cu gradul de iluminare.
5k
LDR
Schema circuitului de conectare a fotorezistenței
Formula de calcul a dependentei rezistenta luminozitate este
RL = 500/Lux kΩ
Daca este conectata la 5v prin intermediul unei rezistente de 5k tensiunea de ieșire este:
Vo = 5*RL/ (RL+5)
Diagrama variației rezistentei elementului fotorezistiv cu luminozitatea
Valori citite ieșire senzor lumina
2.2 Elemente de executie
2.2.1 Modul cu relee
Specificații: Modul cu 4 relee
Tensiune: 250VAC sau 30VDC;
Curent: 10A (MAX);
Fiecare releu este comandat separat de câte un optocuplor;
Tensiunea de alimentare necesară funcționării optocuploarelor este de 5V;
Curent necesar pentru control: 5mA.
Dimensiuni: 7.5cm x 5.5cm x 1.85cm.
Schema circuitului releului pentru un canal
2.2.2 Lampa iluminare 12V
Specificații: Lampă iluminare 12V
Banda de LED-uri
Tensiune alimentare=12v
Lumină = alb rece
Putere = 3w
Cantitatea de lumină necesară plantelor depinde de specia de planta, faza de dezvoltare iar prin iluminare artificiala se poate produce o creștere forțata prin prelungirea perioadei de zi.
2.2.3 Pompa apa
Consum 300ma
Mod de operare: electric
Curent: I=0.5A
Număr poli: 2
Alimentare 12v cc
Sistemul de irigare prin picătura este foarte important deoarece duce la o mare economie de apă, și in plus in bazinul de apa se pot introduce elementele nutriționale azotați, fosfați microelemente de magneziu și calciu care ajung astfel direct la rădăcina plantelor
2.2.4 Ventilator 12V x3
Specificatii: Ventilator 12V
U=12V DC
I=0.37A
Ventilația in sera are un efect foarte important in reglarea mai multor parametri care afectează creșterea și sănătatea plantelor:
– Nivelul de umiditate
– Nivelul de condensare pe suprafața interioara a serei
– Uniformizarea temperaturii in sera
– Calitatea aerului in jurul plantelor
– Cantitatea de CO2 necesara dezvoltării
– Eliminarea aerului viciat generat de instalația de încălzire
2.2.5 Afișaj LCD + I2C
Modulul este ideal pentru proiecte inovative de electronică ce trebuie sa afișeze informații către exterior. LCD-ul este foarte bun și pe întuneric, având iluminare de fundal verde și negru. De asemenea lumina de fundal trebuie protejata printr-o rezistenta sau un potențiometru de 2k. Pentru reducerea pinilor folosiți la legarea LCD-ului la controler se poate folosi un modul I2C.
Specificații: LCD+I2C
Tensiune de alimentare: 5V;
Curent: 1.1mA;
Tensiune de alimentare backlight: 4.2V;
Curent lumina de fundal: 100mA.
Modul I2C pentru LCD 1602, 2004
Modulul reprezintă un adaptor ce se montează direct pe ecranul LCD. Display-ul trebuie să fie de tip 1602 sau 2004 și bazat pe controller-ul HD44780.
Comunicația I2C reprezintă un avantaj deoarece avem nevoie de doar două fire pentru a comunica cu plăcuța de dezvoltare Arduino sau cu un alt microcontroler. Cele doua fire sunt necesare pentru clock și pentru date.
Modulul conține potențiometru pentru a regla contrastul și este compatibil și cu ecranele ce au iluminare de fundal.
2.3 Placa de achiziție și control:
Placa dezvoltare Arduino UNO
Placa Arduino UNO se conectează la portul USB al calculatorului folosind un cablu de tip USB A-B, disponibil in varianta de 1.5 metri sau de 3 metri. Poate fi alimentata extern (din priza) folosind un alimentator extern. Alimentarea externa este necesară în situația în care consumatorii conectați la placă necesită un curent mai mare de câteva sute de miliamperi. În caz contrar, placa se poate alimenta direct din PC, prin cablul USB. Pachetul conține doar placa Arduino, dar nu și cablul USB sau alimentatorul extern.
Specificații:
Microcontroler: ATmega328
Tensiune de lucru: 5V
Tensiune de intrare (recomandat): 7-12V
Tensiune de intrare (limita): 6-20V
Pini digitali: 14 (6 PWM output)
Pini analogici: 6
Curent per pin I/O: 40 mA
Curent 3.3V: 50 mA
Memorie Flash: 32 KB (ATmega328) 0.5 KB pentru bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Clock Speed: 16 MHz
Diagrama pinilor plăcii de dezvoltare Arduino UNO
Aceste plăci pun la dispoziția utilizatorului pini I/O, digitali și analogici, care pot fi interfațați cu o gamă largă de plăcuțe numite scuturi (shield-uri) și/sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru a încărca programe din calculatoarele personale. Pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, care include suport pentru limbaje de programare ca C și C++. Primul Arduino a fost lansat în 2005, având ca țintă asigurarea unei soluții ieftine și simple pentru începători și profesioniști spre a crea dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare. Cele mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboți simpli, termostatele și/sau detectoarele de mișcare.
O plăcuță Arduino este compusă dintr-un microcontroler Atmel AVR de 8-, 16- sau 32-biți (deșii începând cu 2015 s-au folosit microcontrolere de la alți producători) cu componente complementare care facilitează programarea și încorporarea în alte circuite. Un aspect important la Arduino este că acesta dispune de conectori standard, care permit utilizatorului să conecteze plăcuța cu procesorul la diferite module interschimbabile numite shield-uri. Unele shield-uri comunică cu Arduino direct prin pinii digitali sau analogici, dar altele sunt adresabile individual prin magistrala serială I2C permițând utilizarea mai multor module în paralel. Până în anul 2015 plăcuțele Arduino oficiale au folosit cipuri Atmel din seria megaAVR, în special ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560, iar în 2015 au fost adăugate cipuri de la alți producători. O multitudine de alte procesoare au fost folosite de dispozitive compatibile Arduino. Multe plăcuțe includ un regulator liniar de 5 V și un oscilator cu cuarț de 16 MHz (sau un rezonator ceramic în unele variante), deșii anumite plăcuțe, cum ar fi LilyPad, funcționează la 8 MHz și nu necesită regulator, datorită restricțiilor de formă. Un microcontroler instalat pe Arduino vine preprogramat cu un bootloader care simplifică încărcarea programelor pe memoria flash a cipului, în comparație cu alte dispozitive care necesită programatoare externe. Acest aspect face Arduino o soluție simplă, permițând programarea de pe orice computer ordinar. În prezent, bootloader-ul optiboot este bootloader-ul implicit instalat pe Arduino UNO. Plăcuțele Arduino din prezent sunt programate prin USB, având integrate cipuri de conversie USB-serial, cum ar fi FTDI FT232. Unele modele UNO, mai noi, folosesc un cip AVR separat programat să funcționeze ca un convertor USB-serial, care poate fi reprogramat printr-un port ICSP dedicat. Alte variante, cum ar fi Arduino Mini și versiunea neoficială Boarduino, folosesc adaptoare detașabile USB-serial, cabluri, Bluetooth sau alte metode.
O plăcuță Arduino cu descrierile pinilor I/O
Plăcuța Arduino are expuși mulți dintre pinii de intrare/ieșire ai microcontrolerului, pentru ca aceștia să fie folosiți de alte circuite. Diecimila, Duemilanove și UNO oferă 14 pini digitali de intrare/ieșire, dintre care 6 pot produce semnale PWM și 6 intrări analogice care, de asemenea, pot fi folosite ca intrări/ieșiri digitale. Acești pini sunt accesibili prin partea superioară a plăcuței, prin intermediul unor barete mamă cu pasul între pini de 2,54 mm. Programele Arduino pot fi scrise în orice limbaj de programare cu un compilator capabil să producă un cod mașină binar. Atmel oferă un mediu de dezvoltare pentru microcontrolerele sale, AVR Studio și mai nou, Atmel Studio. Proiectul Arduino oferă un mediu integrat de dezvoltare (IDE), care este o aplicație cross-platform, scrisă în Java. Acesta își are originile în mediul de dezvoltare pentru limbajul de programare Processing și în proiectul Wiring. Este proiectat pentru a introduce programarea în lumea începătorilor și a celor nefamiliarizați cu dezvoltarea software. Include un editor de cod cu funcții ca evidențierea sintaxelor, potrivirea acoladelor și spațierea automată și oferă mecanisme simple cu un singur click, pentru a compila și a încărca programele în plăcuța Arduino. Un program scris în IDE pentru Arduino se numește sketch. Arduino IDE suportă limbajele de programare C și C++ folosind reguli speciale de organizare a codului. Arduino IDE oferă o librărie software numită Wiring, din proiectul Wiring, care oferă multe proceduri comune de intrare și ieșire. Un sketch tipic Arduino scris în C/C++ este compus din două funcții care sunt compilate și legate cu un ciot de program main (), într-un program executabil cu o execuție ciclică:
Setup (): o funcție care este rulată o singură dată la începutul programului, când se inițializează setările.
Loop (): o funcție apelată în mod repetat până la oprirea alimentării cu energie a plăcuței.
După compilarea și legarea cu GNU toolchain inclus, de asemenea, în IDE, mediul de dezvoltare Arduino trimite comandă către programul avrdude pentru a converti codul executabil într-un fișier text codat hexazecimal, care poate fi încărcat în placa Arduino de un program de încărcare.
2. Conexiune USB
Vom începe cu ceea ce pare a fi cea mai evidenta componenta de pe placa: portul USB.
Port USB tip B
Portul USB are doua roluri: de alimentare și de a furniza date sistemului.
Portul este Type B și este necesar un cablu de tip A-B pentru a conecta placa la computer.
Prin adăugarea microcontrolerului secundar ATmega 16U2, Arduino UNO poate comunica direct cu computerul prin conexiune USB. Cu alte cuvinte, ATmega 16U2 este un microcontroler intermediar care livrează date seriale intre procesorul principal și un computer.
Cablu standard USB de tip A-B
Prin același port USB, computerul gazda furnizează pentru Arduino un curent de 100mA la 5V care permite controlul unui număr limitat de componente. De exemplu, un astfel de curent poate fi folosit la alimentarea unor proiecte mici precum citirea valorilor returnate de un senzor. Insa nu este suficient de mare pentru a controla, de exemplu, motoare de curent continuu.
1. Mufa de alimentare
Alimentarea cu energie prin intermediul mufei de alimentare este unul dintre modurile in care se poate face sa funcționeze independent Arduino UNO. Mufa este rotunda și are un diametru de 2.1mm. Centrul mufei este pozitiv iar partea exterioara este negativa. Înainte de a folosi un alimentator AC-DC, asigurați-vă ca acesta are o ieșire in intervalul 6-20V (7-12V este tensiunea recomandata). In plus fata de alimentarea părților hardware ale plăcii UNO, alimentatorul furnizează energie și pentru componente sau shield-uri conectate la pinii de alimentare de pe placa. Shield-urile sunt placi adiționale care de obicei respectă dimensiunile plăcii Arduino și pot fi atașate deasupra acesteia pentru a furniza diferite funcționalități. Un exemplu ar fi shield-ul care permite conectarea plăcii UNO la Internet.
3. LED (RX: Recepție)
Luminează când Arduino recepționează date in timpul programării.
4. LED (TX: Transmisie)
Luminează când Arduino transmite date in tipul rulării unui program.
5. LED (Pin 13: Depânăre)
Acest LED luminează atunci când programul rulează corect.
7. LED
Indica faptul ca Arduino este alimentat.
8. Buton de resetare
Este o cale de a reseta manual microcontrolerul care restartează rularea codului.
11. ATmega 16U2
Microcontrolerul ATmega 16U2 este responsabil pentru convertirea semnalului provenit de la USB intr-un semnal serial care este trimis către microcontrolerul principal ATmega 328P. In alte cuvinte, ATmega 16U2 face legătura dintre computerul dumneavoastră si placa Arduino. Acesta are propriul set de periferice care ajuta la îndeplinirea task-urilor importante.
12. ATmega 328P
Acesta este creierul plăcii Arduino UNO. Orice altceva de pe placa există pentru a ne permite sa experimentam cu ATmega328P.
Datele principale despre el sunt:
Este un microcontroler pe 8 biți
Are o memorie flash de 32 kB
Are 2kB de SRAM
Are o interfața de tip USB
Are 20 de pini pentru intrări/ieșiri
Este echipat cu un port serial SPI
9. Contactele ICSP
Exista doua contacte cu pini ICSP pe placa Arduino UNO. Fiecare contact are legătura cu un microcontroler. ICSP este un acronim de la In-Circuit-Serial-Programming. Fiecare microcontroler are un firmware care rulează pe ele. Pentru ATmega 16U2, aceste program permanent permite ca microcontrolerul sa facă translația USB-Serial. ATmega 328 are de asemenea un program permanent care citește datele seriale de la 16U2 și aloca memorie pentru a păstra datele. Aceste firmware-uri sunt încărcate pe microcontrolere după ce circuitele integrate sunt montate pe placa. Pentru a încărca programele se folosesc pinii ICSP. Acești pini pot fi folosiți și pentru a încărca programele Arduino denumite sketch, direct in microcontrolerul ATmega 328.
13. Oscilatorul 16MHz
Oscilatorul de cristal de 16MHz este conectat la microcontrolerul ATmega16U2 și este o componenta esențiala pentru o sincronizare perfectă in comunicarea seriala. Microcontrolerul ATmega328 are propriul oscilator așa cum se poate vedea in schema. Insa placa folosește un rezonator ceramic in loc de un oscilator de cristal. Vom arunca o privire la funcțiile ambelor componente in articolele ulterioare.
Rezonator ceramic
Funcția oscilatorului și rezonatorului este aceeași. Acestea sunt folosite pentru a seta timpul circuitului electronic. Ce înseamnă asta? Sa presupunem că avem nevoie de o pa de 2 secunde intre fiecare aprindere și stingere a unui LED. Cele doua secunde de pauza sunt calculate de către oscilator sau rezonator.
Pinii digitali de intrare/ieșire
6. Pini digitali (PWM)
Toți pinii de pe placa Arduino (și cei digitali și cei analogici) pot fi folosiți ca pini digitali. Aceștia sunt pini folosiți pentru a comunica cu dispozitivele atașate de placa Arduino. Pinii digitali de intrare citesc intrări iar pinii de ieșire digitali scriu ieșiri digitale.
10. Pini analogici (Analog IN)
Placa Arduino UNO este prevăzuta cu sase pini analogici (opt pini daca folosiți versiunea SMD) care sunt clasificați ca si intrări analogice. O data analogica este, in principiu, o valoare dintr-un anumit interval. Un pin analogic de intrare poate măsura un curent sau semnal cu un voltaj cuprins intre 0-5V (putem folosi pin-ul AREF pentru a schimba acest interval). Datele digitale vin cu valori de LOW sau HIGH, insa datele analogice cuprinde toate valorile cuprinse intre cele doua praguri de tensiune. De obicei senzorii au ieșiri analogice, insa microcontrolerul ATmega 328 nu poate procesa direct datele analogice. Acesta este echipat cu o componenta periferica denumita ADC (un convertor de la analog la digital – Analog to Digital Converter). Acest convertor este proiectat sa citească valorile de intrare analogice și sa le convertească in intrări digitale pentru microcontroler. Exista o ușoara confuzie in convenția de numire, deoarece din punct de vedere funcțional, unii pini digitali pot furniza ieșiri analogice sub forma de PWM (puls modulat). In mod similar toți pinii de intrări analogice (A0-A5) pot fi folosiți ca pini digitali.
10. Pinii de alimentare (POWER)
Exista șapte pini de energie pe placa Arduino UNO. Fiecare pin are propria semnificație și sunt parte din circuitul de alimentare cu curent. Vom face o listă cu pinii principali și funcționalitatea fiecăruia mai jos.
Vin Pin-ul Vin poate fi folosit pentru a alimenta placa Arduino sau ca sursa de curent pentru alte componente atașate la placa. În cazul în care folosiți pin-ul pentru a alimenta placa Arduino, acesta are nevoie de o alimentare cu curent intre 6V-12V. Aceasta tensiune va fi ulterior reglata la 5V de către regulatorul de curent de pe placa. In cele din urma acest curent va alimenta placa Arduino.
GND Exista trei pini de împământare disponibili pe placa Arduino UNO. Doi dintre aceștia sunt atașați direct de sursa de alimentare. In general in electronica, doua circuite care interacționează unul cu celalalt au un punct comun de voltaj ca referința iar acesta se numește impamantare (GND).
2.4Limbaj de programare utilizat
Arduino Software (IDE)
Mediul de dezvoltare integrat Arduino – sau Arduino Software (IDE) – conține un editor de text pentru scrierea de coduri, o zonă de mesaje, o consolă de text, o bară de instrumente cu butoane pentru funcții uzuale și o serie de meniuri. Acest program se conectează la hardware-ul Arduino și Genuino pentru a încărca programe și a comunica cu ele.
Scrierea schițelor
Programele scrise folosind software-ul Arduino (IDE) se numesc schițe. Aceste schițe sunt scrise în editorul de text și sunt salvate cu extensia. Ino. Editorul are caracteristici pentru tăiere/lipire și pentru căutarea/înlocuirea textului. Zona in care se afișează mesajele oferă informații în timp ce salvează, exportă și, de asemenea, afișează erori. Consola afișează textul transmis spre utilizator de către Software-ul Arduino (IDE), inclusiv mesaje de eroare complete și alte informații. Colțul din dreapta jos al ferestrei afișează placa și portul serial configurat. Butoanele barei de instrumente vă permit să verificați și să încărcați programe, să creați, să deschideți, să salvați schițe și să porniți monitorul serial.
Comenzi adiționale sunt găsite in cele cinci meniuri: File, Edit, Sketch, Tools, Help. Aceste meniuri sunt sensibile din punct de vedere al contextului, ceea ce înseamnă ca sunt relevante doar in privința activităților care se efectuează in momentul in care sunt accesate.
File
New
Creează o noua instanța pentru editor, cu o structura minima a unei schițe deja funcționala.
Open
Funcția facilitează deschiderea unei schițe din partițiile și folderele calculatorului.
Open Recent
Oferă o scurta lista cu cele mai recente schițe, pregătite pentru a fi deschise.
Sketchbook
Arata schițele recente din interiorul folderului cu schițe; făcând click pe oricare nume, se deschide intr-un nou editor schița care ii corespunde
Examples
Reprezintă toate exemple oferite de Arduino Software (IDE) sau librarii care apar in acest meniu. Toate exemplele sunt structurate în așa fel încât să faciliteze accesul in funcție de subiect sau librărie.
Close
Închide instanța de Arduino Software din care este acționata.
Save
Salvează schița cu numele curent. Daca aceasta nu a fost denumita înainte, un nume va fi oferit intr-o fereastra de tip "Save as".
Save as…
Oferă posibilitatea de a salva schița curenta cu un nume diferit.
Page Setup
Arată pagina Page Setup pentru printare.
Trimite schița curenta imprimantei in concordanta cu setările definite in Page Setup
Preferences
Deschide fereastra Preferences unde unele setări pentru IDE pot fi customizate, cum ar fi interfața pentru limbajul IDE.
Quit
Închide toate ferestrele IDE. Aceleași schițe care erau deschise atunci când butonul de Quit a fost folosit vor fi deschise atunci când programul va fi repornit.
Undo/Redo
Se întoarce cu unul sau mai mulți pași făcuți in timpul editării; atunci când mergi înapoi, poți merge înainte cu butonul Redo.
Cut
Elimina textul selectat din editor și îl pune in clipboard.
Copy
Dublează textul selectat din editor și îl plasează in clipboard.
Copy for Forum
Copiază codul din schița in clipboard intr-o forma adecvata pentru postarea pe forumuri, cu toate culorile sintaxelor.
Copy as HTML
Copiază codul din schița in clipboard ca HTML, adecvat pentru folosirea in pagini web.
Paste
Pune conținutul clipboard-ului la poziția cursorului, in editor.
Select All
Selectează și pune in evidenta tot conținutul editorului.
Comment/Uncomment
Pune sau scoate "//" marker-ele de comentariu de la începutul fiecărei lini selectate
Increase/Decrease Indent
Adaugă sau scoate un spațiu de la începutul fiecărei linii, mișcând textul un spațiu in dreapta sau eliminând un spațiu de la început.
Find
Deschide fereastra Fiind and Replace unde poți specifica textul care poate fi căutat in textul curent oferind câteva opțiuni
Find Next
Evidențiază textul in următoarea apariție relativa la poziționare cursorului in cazul in care exista mai multe elemente cu același nume in aceeași căutare.
Find Previous
Evidențiază ultima apariție daca a mai existat un element cu același nume înainte de cel căutat.
Sketch
Verify/Compile
Verifica schița pentru erori prin compilare; va reporta nivelul de folosire al memoriei pentru cod și variabile in zona de consola.
Upload
Compilează și încarcă fișierul binar în placa configurata prin portul deja configurat
Compiles and loads the binary file onto the configured board through the configured Port.
Upload Using Programmer
Aceasta funcție va rescrie bootloader-ul de pe placa; va trebui sa fie folosita funcția Tools > Burn Bootloader pentru ca aceasta sa fie restaurata și sa se poată încărca prin portul USB din nou. Oricum, oferă posibilitatea sa fie folosita toata capacitatea memoriei Flash pentru schița.
Export Compiled Binary
Salvează un fișiere de tip. Hex care poate fi păstrat ca arhiva sau trimis plăcii folosind alte instrumente
Show Sketch Folder
Deschide fisieru curent de scheme.
Include Library
Adaugă o librărie schiței prin inserarea sintagmei #include la începutul codului. In plus din acest meniu se poate accesa Library Manager si se pot importa noi librarii din fișiere.zip.
Add File…
Adaugă un fișier sursa schiței (se va copia din locația sa curentă). Noile fișiere apar într-o filă nouă în fereastra cu schițe. Fișierele pot fi scoase din schița folosind meniul accesibil prin darea unui click pe triunghiul mic de sub serial monitor din dreapta toolbar-ului.
Tools
Auto Format
Funcția formatează codul: spre exemplu deschide și închide parantezele de la început și de la sfârșit în așa fel incât codul din interiorul lor sa fie mai mult depărtat de margine.
Archive Sketch
Arhivează o copie a schiței curente in format.zip. Arhiva este plasata in același fișier ca și schița.
Fix Encoding & Reload
Rezolvă poșibilele discrepanțe între editorul de încărcare a caracterelor și alte sisteme de caractere.
Serial Monitor
Deschide fereastra serial monitor și inițiază schimbul de date între placa conectată de pe portul selectat. Această acțiune resetează placa, dacă placa are posibilitatea de Reset prin port.
Board
Selectează placa pe care o folosești.
Port
Meniul conține toate dispozitivele conectate la calculator. Se reîmprospătează automat de fiecare dată când se deschide meniul Tools
Programmer
Pentru a se selecta un programator atunci când se programează o placa sau cip si nu se folosește conexiunea usb. In mod normal nu este nevoie de aceasta opțiune dar daca se folosește un bootloader pentru microcontroler aceasta opțiune va fi necesara
Burn Bootloader
Opțiunile din acest meniu facilitează modul de a încărca un bootloader in microcontrolerul Arduino. Aceasta funcție nu este necesara daca se folosește un Arduino sau Genuino dar este folositoare daca se achiziționează un nou microcontroler ATmega (care in mod normal vine fără un bootloader). Trebuie sa se asigure faptul că s-a selectat placa corectă din meniul Boards înainte de a încărca bootloader-ul.
Sketchbook
Arduino Software (IDE) folosește conceptul de Sketchbook: un loc standard unde să se depoziteze programele (sau schițele). Schițele din Sketchbook pot fi deschise din meniul File > Sketchbook sau din butonul Open de pe bara cu funcții. Prima dată când se folosește software-ul Arduino, va fi creat automat dosarul Sketchbook. Se poate vedea sau schimba locația Sketchbook din Preferences.
Tabs, Multiple Files, and Compilation Permite administrarea schițelor cu mai mult de un fișier (care fiecare apare intr-o fila separată) Acestea pot fi coduri normale Arduino (fără extensie vizibilă), fișiere C (. C extension), fișiere C++ (.cpp) sau fișiere antet (. H).
Uploading
Înainte de a încărca schița, trebuie selectate elementele corecte din meniurile Tools > Board and Tools > Port. Bordurile sunt descrise mai jos. Pe Mac, portul serial este probabil ceva de genul/dev/tty. Usbmodem241 (pentru un Uno sau Mega2560 sau Leonardo) sau/dev/tty. Usbserial-1B1 (pentru o placă USB Duemilanove sau anterioară) sau/dev/tty. USA19QW1b1P1.1 (pentru o placă serială conectată cu un adaptor Keyspan USB-to-Serial). Pe Windows, este probabil COM1 sau COM2 (pentru o placă serială) sau COM4, COM5, COM7 sau mai mare (pentru o placă USB) – pentru a afla că sunteți în căutarea unui dispozitiv USB serial în secțiunea porturi a Device Manager-ului Windows. Pe Linux, ar trebui să fie/dev/ttyACMx, /dev/ttyUSBx sau similar. Odată ce a fost selectat portul serial și placa corectă, se apasă butonul de încărcare din bara de instrumente sau se selectează elementul Upload din meniul Schiță. Plăcile Arduino se vor reseta automat și vor începe încărcarea. Cu panouri mai vechi (pre-Diecimila) care nu au automat resetare, va trebui fie apăsat pe butonul de resetare de pe tablă chiar înainte de a începe încărcarea. Pe majoritatea panourilor, se va vedea LED-urile RX și TX clipind când schița este încărcată. Software-ul Arduino (IDE) se va afișa un mesaj când încărcarea este completă sau se va afișa o eroare. Când se încărca o schiță, se folosește bootloaderul Arduino, un mic program care a fost încărcat pe microcontrolerul de pe placa. Acesta permite să se încarce codul fără a utiliza orice hardware suplimentar. Bootloader-ul este activ pentru câteva secunde când placa este resetată; Apoi începe oricare schiță a fost încărcată cel mai recent în microcontroler. Bootloader-ul va face sa clipească LED-ul de pe placă (pinul 13) atunci când pornește (adică când placa se resetează).
Libraries
Bibliotecile oferă funcționalități suplimentare pentru a fi utilizate în schițe, de ex. Lucrul cu hardware sau manipularea datelor. Pentru a utiliza o bibliotecă într-o schiță, selectați-o din meniul Sketch> Import Library. Aceasta va introduce una sau mai multe instrucțiuni #include în partea superioară a schiței și va compila biblioteca cu schița. Deoarece bibliotecile sunt încărcate în bord cu schița, acestea ocupa mai mult loc. Dacă o schiță nu mai are nevoie de o bibliotecă, pur și simplu ștergeți #includestatements acesteia din partea de sus a codului. Există o listă de biblioteci în referință. Unele biblioteci sunt incluse în software-ul Arduino. Altele pot fi descărcate dintr-o varietate de surse sau prin Library Manager. Începând cu versiunea 1.0.5 a IDE, se poate importa o bibliotecă dintr-un fișier zip și se poate folosi într-o schiță deschisă. Consultați aceste instrucțiuni pentru instalarea unei biblioteci terță parte.
Third-Party Hardware
Suportul pentru hardware-ul terților poate fi adăugat în directorul hardware al directorului de schițe. Platformele instalate pot include definiții de bord (care apar în meniul de bord), biblioteci de bază, bootloaders și definiții de programatori. Pentru a instala, creați directorul hardware, apoi desfaceți platforma terță parte în propriul sub-director. (Nu folosiți "arduino" ca nume de sub-director sau veți înlocui platforma Arduino încorporată.) Pentru a dezinstala, pur și simplu ștergeți directorul.
Serial Monitor
Afișează date seriale trimise de pe placa Arduino sau Genuino (USB sau placă serială). Pentru a trimite date la bord, introduceți textul și se va face clic pe butonul "trimite" sau apăsați pe Enter. Alegeți rata baud din meniul derulant care se potrivește cu rata transferată la Serial. Begin din schița. De reținut că în cazul sistemelor Windows, Mac sau Linux, placa Arduino sau Genuino va reseta (reluarea executării schiței la început) atunci când se va conecta cu monitorul serial.
Boards
Selecția tabelului are două efecte: stabilește parametrii (de exemplu viteza CPU și rata baud) folosiți la compilarea și încărcarea schițelor; Și seturile și fișiere de siguranța utilizate de comanda de încărcare pentru bootloader. Unele dintre definițiile de bord diferă numai în cele din urmă, deci chiar dacă ați încărcat cu succes o anumită selecție, veți dori să o verificați înainte de a încărca bootloader-ul. Puteți găsi un tabel de comparație între diferitele placi.
Capitolul 3: Studiu de caz – Controlul unor parametrii specifici pentru funtionarea eficienta a unei sere
Roșiile sunt legumele cele mai mult cultivate în sere, urmate de castraveți. Ambele se pot cultiva in afara sezonului (toamna, iarna si primăvara). Alte legume sunt vânăta, ardeii, ceapa verde, salata, spânăc, ridichi, și ierburi precum pătrunjelul, mararul, cimbrul, busuiocul…
România are, o concurenta dura cu Turcia, Spania, Grecia sau Algeria care obțin legume în sere neîncălzite. Pentru aceasta este necesar a se lua masuri similare cu cele pe care le iau producătorii olandezi, englezi sau francezi, respectiv de retehnologizare a producerii legumelor de sera.
3.1. Construcția miniserei pentru testarea practica a aplicației
Pentru a putea testa funcționarea sistemului de automatizare, am construit o structura tip sera cu senzorii și elementele de execuție aferente. Dimensiunile incintei sunt L=600mm, l=300mm, h=300mm cu un volum de 0.054 m3.
Structura serei fără senzori
Am ales soluția unui acoperiș plat pentru o mai buna observare a modului de lucru al elementelor de execuție. Este construită având la baza o placa de polietilena prinsa in șuruburi de o placa de parchet laminat pentru consolidare, cu pereții laterali din policarbonat alveolar de 8mm, iar acoperișul este dintr-o placa de policarbonat semitransparent. Partea din fata culisează pe doua canale paralele pentru a putea permite accesul in interior. Acestea sunt asamblate prin intermediul unor corniere de plastic 20x20mm, lipite cu batoane de silicon la cald. Orificiile necesare au fost date cu freze circulare, de diametrul interior al ventilatoarelor sau găuri cu burghie de diametru corespunzător.
In interior a fost fixata prin intermediul unei casete izolante din polistiren extrudat de 20mm, o tava de plastic încărcata cu pământ special pentru plante in care au fost plantate doua flori.
Poziționarea senzorilor este făcuta astfel:
Senzorul de umiditate sol – in tava cu flori
Senzorul de lumina – in coltul din dreapta sus al miniserei
Senzorul de umiditate și temperatura aer – pe peretele din stânga la semi-înalțime în afara zonei curenților de aer direct creați de ventilatoare.
Sistemul de iluminat este pe baza de lămpi cu led-uri prinse cu adeziv de capacul superior
Sistemul de încălzire este format dintr-o rezistența de nichelina, bobinata pe un miez ceramic cu diametrul de 20mm rezistenta nichelinei este de 12 ohm, iar puterea de 12w. Am ales aceasta soluție pentru o creșterea graduală a temperaturii, protejând astfel de șoc termic plantele din seră. Aerul este recirculat forțat prin intermediul unui ventilator încorporat pe traseul de aer cald, acest lucru permițând temperatura din interior în sezonul rece sa fie menținuta mai ușor in parametrii. Rezistența bobinata este susținuta in interiorul tubului de traseu al aerului cald prin intermediul șurubului ce străbate miezul ceramic și a doua bride de tablă. În cazul în care nu este nevoie de încălzire, în locul ventilatorului pentru pentru extracția aerului din seră se poate monta un ventilator care poate scădea mai rapid temperatura și umiditatea din seră.
Sistemul de udare este format dintr-o pompa de 12v, cu debit de 1l/min, conectată prin furtun de polietilenă cu diametrul interior de 4mm la o țeava din fibra de sticla găurită la distanțe egale de 30mm, ce asigură udarea uniformă a substratului de cultură. Rezervorul de apa cu nutrienți are o capacitate de 0,9 l.
Sistemul de ventilare este format din doua ventilatoare de 12v, la 1500rot/min care asigura un debit de aer suficient pentru o răcire lentă a aerului din incinta serei, iar in timpul verii se poate monta ventilatorul atașat în poziția de introducere forțată de aer, mărind astfel cantitatea de aer recirculat in seră și se accelerează răcirea și se micșorează umiditatea produsă prin evaporarea apei din sol.
Pentru a evita orice accident, deșii modulul cu relee permitea alimentarea elementelor la 220v, pentru siguranța am ales soluția alimentarii la 12v cc cu un alimentator de laptop (12V; 3,5 A) care depășește cu 30% consumul maxim al sistemului de automatizare. Elementele de execuție sunt alimentate direct cu 12V, iar plusul este conectat prin punte între punctele de fir comun ale celor patru relee. La primirea comenzii de la Arduino prin contactul de lucru al releului acționat se alimentează elementul de execuție corespunzător releului respectiv.
Pentru a asigura autonomia miniserei în sistemul experimental am folosit o baterie de 9V pentru alimentarea microcontrolerului Arduino.
In zona din spatele miniserei se afla montat rezervorul de apa combinata cu microelemente nutritive, modulul Arduino și regletele electrice de interconectare.
Plusul și minusul alimentării senzorilor, modulul cu relee și modulul LCD+I2C sunt aduse într-o regletă unde sunt conectate corespunzător cu plusul și minusul de la Arduino, iar ieșirile prin care senzorii trimit datele măsurate sunt conectate la pinii corespunzători conform codului de programare scris.
Comenzile releelor sunt conectate la pinii de la 2 la 5 pe modulul lor, iar alimentarea la pini 1 respectiv 6.
Toate firele de conectare din zona serei sunt aduse prin canale de cablu din plastic, iar pentru o mai buna observare a variației parametrilor am fixat modulul LCD pe parte superioara a miniserei.
Pentru a ușura monitorizarea aplicației a fost legata partea de măsurare – execuție cu programul Excel prin intermediul macroului PLX-DAQ, rezultatele citirii datelor de la senzori și răspunsul aplicației la modificarea parametrilor putând fi urmărite grafic foarte ușor.
3.2 Schema bloc a sistemului de executie și de comanda al serei
Fig Schema bloc a instalatiei de control a parametrilor
3.3 Schema electrica a șistemului de executie și de comanda al serei
Schema electrica detaliata a sistemului de monitorizare și control a serei
3.4 Descrierea detaliata a modulelor aplicatiei de control a parametrilor specifici serei.
Pentru o mai buna întelegere a concepției șI a modului de funcționare mai jos este explicată funtionarea fiecărui modul și interacțiunea dintre ele.
3.2.1 Modulul pentru controlul temperaturii și umiditatii aerului
Cerințele plantelor legumicole fata de temperatura
Sursele principale de cultură necesare pentru creșterea și dezvoltarea plantelor sunt: radiația solara, radiația geotermica, sursele artificiale bazate in principal pe energia fosila, energia hidrotehnica, energia nucleara. Radiația solară este principala sursa de energie care asigura atât căldura cat si lumina necesara creșterii și dezvoltarea plantelor verzi. O puternică variație a intensității radiației se constata in cursul anului datorita modificării unghiului de incidenta a razelor solare cu suprafața solului, a duratei de strălucire a soarelui și a nebulozității, în funcție de intensitatea radiației condiționate de poziția geografica potențialul termic este diferit de la o zona la alta.
Fenomenul de sera la scara mai redusa sta la baza încălzirii naturale a serelor, solariilor și adăposturilor temporare acoperite cu materiale transparente care au o transmisivitate buna pentru radiația luminoasa și mai mult redusa pentru radiația calorica ce emana de la sol acumulând astfel o cantitate de căldura in spațiul acoperit. Toate procesele vitale ce se petrec in plante: fotosinteza, respirația, transpiratia, absorbția minerala, metabolizarea substanțelor, morfogeneza, in general creșterea și dezvoltarea sunt condiționate de căldura. Pentru fiecare din aceste procese, in funcție de specie, exista un nivel optim la care procesul se desfășoară cu intensitate maxima, nivel minim și maxim de temperatura la care procesul încetează din cauza temperaturi prea scăzute sau prea ridicate. La temperaturi ridicate se intensifica mult respirația astfel ca randamentul fotosintetic al plantelor poate sa scadă reducând nivelul favorabil de temperatura la 26-30C. Nivelul de temperatura la care toate procesele biochimice și fiziologice se desfășoară la intensitatea corespunzătoare unei creșteri și dezvoltarea echilibrate se numește optimum armonic. Acesta variază în funcție de specie, soi, faza de vegetație și ceilalți factori de mediu.
Atât scăderea cat și creșterea temperaturi fața de nivelul optim încetinesc procesul până la limitele nivelului minim sau maxim de temperaturi la care acesta încetează. Speciile cu cerințe fata de căldura se împart in 2 grupe: specii pretențioase la căldura (termofile) și specii mai puțin pretențioase față de căldură. Cerințele față de căldură sunt mai ridicate la germinația semințelor și mai reduse după apariția cotiledoanelor ca urmare a necesității de micșorare a pierderilor prin respirație și pentru a evita alungirea plantelor. La speciile bienale și perene în faza de repaus cerințele fața de căldură sunt minime iar vernalizarea are loc la temperaturi de 4-10C. Se mai semnalează o creștere a cerințelor față de căldură la repicat sau plantat pentru asigurarea regenerării sistem radicular și la maturizarea fructelor și semințelor când temperatura poate fi cu 7gr C mai ridicata decât în cursul perioadei de vegetație.
Pentru cultivarea diferitelor specii de legume într-o anumită zonă se ține seama de temperatura medie lunară sau decada optima, precum și de mediile minime și maxime ale temperaturii în funcție de pretențiile acestora față de căldură dar și de rezistența lor la temperaturi scăzute sau foarte ridicate. În general la plantele legumicole sunt adaptate pentru un nivel și o variație mai redusă a temperaturii solului decât a aerului, rădăcinile se dezvoltă bine la temperaturi cu 3-5°C mai scăzute decât temperatura optimă de creștere a aparatului aerian. Nivelul temperaturii optime e influențat și de ceilalți factori: lumină, conținutul de CO2 din atmosferă, umiditatea atmosferică și umiditatea solului. În prezența luminii complete și a unui procent mai ridicat de CO2 crește nivelul temperaturii optime, intensificând asimilația clorofiliana ceea ce determină o bună dezvoltare a plantei și o producție mai ridicată.
Insuficiența sau lipsa luminii atrage cu sine necesitatea reducerii temperaturii, astfel datorită respirației intense plantele pierd cantități mari de substanța și randamentul fotosintezei scade. Un alt indicator al cerințelor față de temperatura este suma gradelor temperaturilor active necesară până la începerea fructificării sau până la recoltare.
Toate procesele vitale ce se petrec în plante: fotosinteza, respirația, transpirația, absorbția minerala, metabolizarea substanțelor, morfogeneza, în general creșterea si dezvoltarea sunt condiționate de căldura. Pentru fiecare din aceste procese, în funcție de specie, exista un nivel optim la care procesul se desfășoară cu intensitate maxima, nivel minim si maxim de temperatura la care procesul încetează din cauza temperaturi prea scăzute sau prea ridicate. Intensitatea maxima a fotosintezei se desfășoară la temperaturi de 35°C la tomate si 37°C la castraveți. Nivelul de temperatura la care toate procesele biochimice si fiziologice se desfășoară la intensitatea corespunzătoare unei creșteri si dezvoltări echilibrate se numește optimum armonic. 2 grupe:
A) specii pretențioase la căldura (termofile): 25gr. C – castravete, dovlecel, pepene, vinete; 22gr. C – tomate, ardei, fasole, porumb, bame. au origine tropicala si subtropicala. Temperatura minima de germinație a semințelor este de 8-12 °C si plantele nu suporta înghețul.
B) specii mai puțin pretențioase la căldura: 19gr. C – ceapa, usturoi, sparanghel, țelina si sfecla; 16gr. C – morcov, pătrunjel, salata, mazăre, spânăc; 13gr. C – varza, conopida, gulie, ridiche si hrean. Provin din climatul subtropical, mediteranean sau temperat. Semințele lor pot sa încolțească la temperatura minima de 1-6°C si plantele rezista la înghețuri de -2, -8°C. Cerințele fata de căldura sunt mai ridicate la germinația semințelor si mai reduse după apariția cotiledoanelor, ca urmare a necesitații de micșorare a pierderilor prin respirație si pentru a evita alungirea plantelor. La speciile bienale (varza, morcov, ceapa) si perene, în faza de repaus cerințele fata de căldura sunt minime (0, +1°C) iar vernalizarea, care se desfășoară în aceasta faza, are loc la temperaturi de 4-10°C.
Se semnalează o creștere a cerințelor fata de căldura la repicat sau plantat, pentru asigurarea regenerării sistemului radicular si la maturizarea fructelor si semințelor, când temperatura poate fi cu 7°C mai ridicata decât în cursul perioadei de vegetație. Nivelul temperaturii optime este influențat si de ceilalți factori: lumina, conținutul de C02 din atmosfera, umiditatea atmosferica si umiditatea solului. Temperatura acționează în sinergie cu intensitatea luminii si concentrația de C02 din atmosfera. În prezenta luminii complete si a unui procent mai ridicat de C02 creste nivelul temperaturii optime, intensificând asimilația clorofiliana. Insuficienta sau lipsa luminii (în cursul nopții) atrage cu sine necesitatea reducerii temperaturii. Acest fenomen numit termoperiodism este o adaptare a plantelor la variația naturala diurna a temperaturii și luminii. Temperatura relativ mai scăzuta din timpul nopții, cu 4-6°C, împiedica alungirea tulpinilor, favorizează metabolizarea asimilatelor si uneori, ca de exemplu la fasole, condiționează o mai buna fecundare a florilor.
Umiditatea atmosferica prea ridicata determina închiderea stomatelor transpirația frunzelor se reduce si temperatura creste mult în țesuturile frunzei, micșorând capacitatea de asimilație si determinând dereglări grave de metabolism. Un alt indicator al cerințelor fata de căldura este suma gradelor temperaturilor active, necesara până la începerea fructificării sau până la recoltare. Se însumează temperaturile care trec peste pragul biologic minim de vegetație de 15°C pentru pepene, vinete, ardei, tomate, castravete, de 10°C pentru fasole, porumb si dovlecel si de 5°C pentru bulbifere, rădăcinoase, varza, mazăre, salata si spânăc. Suma temperaturilor active este, de exemplu de 713-1000°C la diferitele soiuri de mazăre verde, de 800-1200°C la fasolea verde si 1240-1470°C la fasolea de samânță.
Cerințele plantelor legumicole fata de umiditatea atmosferica
Plantele legumicole reacționează diferit. Nivelul umidității relative a aerului favorabil diferitelor culturi variază astfel: 80-85% la castravete, spânăc, țelina; 75-80% la varza, sfecla, morcov, mazăre; 60-75% la tomate, fasole, ardei, vinete; 55-60% la pepene verde, ceapa, usturoi. Umiditatea atmosferica excesiva, în prezenta temperaturilor ridicate, poate cauza dereglări grave ale metabolismului, deoarece împiedica transpirația prin închiderea stomatelor si produce o supraîncălzire a frunzelor.
Seceta solului si seceta atmosferica micșorează producția si depreciază calitatea produselor legumicole; acestea își pierd frăgezimea, prospețimea si gustul datorita dezvoltării exagerate a țesuturilor mecanice, a acumulării de glicoizi si uleiuri eterice, devenind improprii pentru consum. Plantele pierd apa prin transpirație stomatica si cuticulara, pnma având pierderea cea mai mare (85-90%) ceea ce înseamnă ca transpirația are loc mai ales când stomatele sunt deschise. În cursul nopții stomatele sunt închise si se deschid dimineața sub influenta luminii (reacția fotoactiva) cu o creștere treptata a pierderii de apa în cursul zilei, când acționează si ceilalți factori (lumina, căldura, scăderea umidității relative a aerului). Excesul de apa dăunează plantelor legumicole, prin scăderea conținutului de substanța uscata, scăderea rezistentei la păstrare si prin asfixierea rădăcinilor sau atacul unor boli. Alternanta unor perioade secetoase cu perioade de umiditate abundenta, determina crăparea guliilor, ridichilor, morcovilor si a fructelor de tomate, datorita presiunii exercitate de țesuturile interne suprasaturate cu apa asupra scoarței acestora.
Secvențele de cod implementate în Arduino Software (IDE) pentru controlul temperaturii si umidității sunt:
[cod]
#include <dht. H>//Libraria pentru senzorul DTH22
Dht DHT;
#define DHT22_PIN 2//DHT22 (AM2302) – Pinul la care este conectat senzorul
Hum = DHT.Humidity;
Temp = DHT.Temperature;
Int chk = DHT.Read22(DHT22_PIN); //funcția de citire a senzorului
//Funcția de afișare pe LCD si Serial Monitor a umidității aerului
Lcd. SetCursor (1, 0);
Serial. Print ("Umiditate aer: ");
Lcd. Print ("Umiditate aer: ");
Lcd. SetCursor (4, 1);
Lcd. Print (hum);
Lcd. Print ("%");
Serial. Print (hum + (String) "%");
Delay (2000);
Lcd. Clear ();
//Funcția de control si afișare pe LCD si Serial Monitor a temperaturii si umidității aerului
Serial. Print (" Temp: ");
Lcd. SetCursor (2, 0);
Lcd. Print ("Temperatura: ");
Serial. Print (temp);
Lcd. SetCursor (4, 1);
Lcd. Print (temp);
Lcd. Print (" C");
Serial. Println (" Celsius");
If (temp <= 24.0)
DigitalWrite (RELAY2, LOW);
If (temp >= 26.0)
DigitalWrite (RELAY2, HIGH);
If (hum > 75 || temp >= 28)
DigitalWrite (RELAY4, LOW);
Else
DigitalWrite (RELAY4, HIGH);
Delay (1000);
Lcd. Clear ();
}
[cod]
Schema logica de funcționare pentru controlul acestor parametrii este:
Schema logica de functionare a controlului temperaturii si umiditatii aerului
Explicatia modului de functionare:
Dupa citirea temperaturii si umiditatii aerului din interiorul serei de catre senzor acestea se compara cu valoarile prestabilite de catre administratorul serei. Valorile fiind stabilite în raport cu necesitatile plantelor cultivate. Daca valorile citite de senzor nu se încadeaza în limitele impuse de administrator se comanda intocmai unitatile de executie (venitlatoare sau elementul de încalzire) pentru a modifica factorii în asa fel încat acestia sa revina între valorile limita impuse.
3.4.2 Modulul pentru controlul umiditatii solului
Cerințele plantelor legumicole fata de apa si umiditatea atmosferica:
Apa are un rol deosebit în viata plantelor: element de constituție, element si mediu de reacție biochimica si fiziologica, vehiculant al substanțelor minerale si al celor rezultate din sinteza, regulator termic al țesuturilor prin transpirație si evaporare.. Legumele au un consum de apa, în general mai ridicat, comparativ cu alte plante cultivate si o reacție puternic negativa. Legumele sunt produse suculente, cu un conținut ridicat de apa (75% – usturoi, 80% – mazăre verde, 96% – castraveți) si la multe din ele conținutul ridicat de apa reprezintă condiția unei calități superioare (conopida, brocoli, gulie, spânăc, salata), asigurând suculenta, prospețimea si frăgezimea produsului. Atât coeficientul de transpirație, cat si consumul de apa al plantelor depind de particularitățile morfofiziologice si anatomice ale plantelor, mai ales de capacitatea de absorbție (forța de sucțiune) si de pierdere a apei (determinată de gradul de dezvoltare al sistemului radicular si de mărimea, structura morfologica si anatomica a frunzelor).
Consumul de apa variază în funcție de faza de vegetație, fiind în creștere treptată de la germinare si până la recoltare. Sursa principala de aprovizionare cu apa a plantelor legumicole este umiditatea solului, asigurata din precipitații, aport subteran si irigare. După consumul de apa si capacitatea de absorbție a apei speciile se pot împărți în patru grupe:
A) consum redus si absorbție buna: tomate, pepene verde, morcov, patrunjel; b) consum mare si absorbție redusa: varza, conopida, gulie, castravete, ardei, vinete, țelina, fasole, salata, spânăc, praz;
C) consum mare si absorbție buna: sfecla, dovleac, cartof;
D) consum mic si absorbție slaba: ceapa, usturoi.
Cerințele fata de umiditatea solului se schimba în cursul fazelor de dezvoltare, fiind mai ridicate ia încolțirea semințelor, în faza acumulării substanțelor de rezerva, care coincide cu formarea organelor comestibile, ca si la fructificare. Cerințe mai scăzute manifesta plantele legumicole după răsărire si prinderea răsadului. De asemenea, cerințele sunt scăzute în faza de repaus, la înflorire si la maturizarea bulbilor sau fructelor si semințelor.
Bilanțul apei în planta, exprimat de raportul dintre apa pierduta si apa absorbita, trebuie sa fie echilibrat. În lunile de vara, în solul insuficient aprovizionat cu apa se produce adeseori ofilirea plantelor în orele de amiaza, dar turgescenta frunzelor se restabilește din nou în cursul nopții. Ofilirea temporara se poate produce si în timpul perioadelor reci, din cauza fenomenului cunoscut sub denumirea de „seceta fiziologica'.
Secvențele de cod implementate în Arduino Software (IDE) pentru controlul umidității solului sunt:
[cod]
Int procentumiditate;
Procentumiditate = map (citiredate, 1023, 0, 0, 100); //transformare date primare in procente
//Funcția de control si afișare pe LCD si Serial Monitor a umidității solului
Serial. Print ("Umiditate Sol:");
Lcd. Print ("Umiditate Sol:");
If (procentumiditate < 100)
Serial. Print (" ");
Lcd. Print (" ");
If (procentumiditate < 10)
Lcd. SetCursor (6, 15);
Serial. Print (procentumiditate);
Lcd. SetCursor (6, 15);
Lcd. Print (procentumiditate);
Serial. Print ("%");
Lcd. Print ("%");
If (procentumiditate <= 50)
DigitalWrite (RELAY3, LOW);
Else
DigitalWrite (RELAY3, HIGH);
Serial. Println ();
Delay (2000);
Lcd. Clear ();
Schema logica de funcționare pentru controlul acestui parametru este:
Schema logica de functionare a controlului umiditatii solului
Explicatia modului de functionare:
Prin amplasarea senzorului de umiditate a solului la aceasi distanta ca si plantele fata de elementul de udarea a solului am asigurat faptul ca umiditatea citita este aceeasi ca si cea a plantelor si datele transmise placii Arduino sunt relevante. Valorile umiditatii solului sunt comparate cu valorile prestabilite necesare dezvoltareaoltarii în conditii optime a plantelor si daca valorile nu se încadreaza între limite se actioneaza pompa de irigare până cand acestea ajung în parametrii stabiliti.
3.2.3 Modulul pentru controlul luminozitatii
Cerințele plantelor legumicole fata de intensitatea luminii:
Lumina condiționează fotosinteza, morfogeneza, germinația semințelor la unele specii, anteza, scoaterea din repaus, calitatea pigmenților clorofilieni, structura, regimul de apa si alte procese. Intensitatea luminii: optima pentru asimilație este de 20.000-30.000 lucși, s-au observat ca la o intensitate mai mare de 50000 lucși asimilația rămâne la un nivel constant, cerințele diferă însa de la o specie la alta si pot fi apreciate după nivelul minim la care plantele pot sa își desfășoare activitățile fiziologice inclusiv fructificarea.
Cele mai mari cerințe fata de lumina le au plantele în faza creșterilor active, a acumulării substanțelor de rezerva, în fazele de inducție florala, înflorire si fructificare, dar unele specii necesita lumina si în faza de germinare. Cerințele fata de lumina sunt nule în perioada repausului de vegetație la plantele bienale si perene si uneori lumina poate fi dăunătoare stimulând procese biochimice ale ieșirii din repaus si încolțirea prematura a unor legume.
La speciile heliofile insuficienta luminii împiedica formarea inflorescențelor si legarea fructelor. Insuficienta luminii produce etiolarea plantelor tinere si a răsadurilor. În legumicultura se practică ’’înălbiri’’ unor organe ale plantelor ce consta în etiolarea dirijata a acestora ceea ce înseamnă ca planta în întregul ei are nevoie de mai putina lumina. Lumina puternica poate produce pagube prin efectele calorice si pierderea excesiva de apa din țesuturile plantelor.
Cerințele plantelor legumicole fata de fotoperiodism. Lungimea perioadei zilnice de lumina (fotoperioadă) influențează creșterea si dezvoltarea plantelor. Plantele legumicole de zi scurta 8-12h sunt cele provenite din climatul tropical si subecuatorial în special vinetele si unele specii de fasole, iar de zi lunga 14-16h sunt speciile provenite din climatul temperat sau mediteranean (varza, salata, morcov). În practica cunoașterea reacției fotoperiodice este utila la stabilirea perioadei de cultura si duratei de iluminare în eventualitatea folosirii luminii artificiale suplimentare.
Secvențele de cod implementate în Arduino Software (IDE) pentru controlul luminozității sunt:
[cod]
#define pinsenzor A0
Int citiredate;
Int sensorPin = A1; //selecteaza pinul de intrare pentru LDR
Int sensorValue = 0; //variabila in care se memoreaza valoarea primita de la senzor
//Functia de control si afisare pe LCD si Serial Monitor a luminozitatii
If (sensorValue > 620) {
Lcd. SetCursor (5, 0);
Lcd. Print ("Noapte");
Lcd. SetCursor (2, 1);
Lcd. Print ("Aprind lumina");
}
Else
{lcd. SetCursor (7, 0);
Lcd. Print ("Zi");
Lcd. SetCursor (2, 1);
Lcd. Print ("Sting lumina");
}
If (sensorValue > 620) {
DigitalWrite (RELAY1, LOW);
}
Else {
DigitalWrite (RELAY1, HIGH);
}
Delay (2000);
Lcd. Clear ();
[cod]
Schema logica de funcționare pentru controlul parametrului luminozitate este:
Schema logica de functionare a controlului iluminarii
Explicatia modului de functionare:
Pentru început am efectuat cateva teste cu functia de Serial Monitor a Arduino Software (IDE) pentru a afla valorile fotorezistentei la diferite intensitati ale luminii. Dupa aflarea valorilor care corespund întunericului am setat parametri superiori si inferioari între care sa se actioneze LED-urile. Fotorezistena transmite valorile catre Arduino iar acesta actioneaza LED-urile prin intermediul modului de rele în concordanta cu necesitatile plantelor din sera.
3.2.4 Schema logica de functionare a întregului sistem:
…
[code]
#include <dht. H>//Libraria pentru senzorul DTH22
#include <LiquidCrystal_I2C.H>
#include <Wire. H>
LiquidCrystal_I2C lcd (0x27, 16, 2); //Seteaza adresa LCD
#define pinsenzor A0
#define RELAY1 8
#define RELAY2 9
#define RELAY3 10
#define RELAY4 11
Int citiredate;
Int procentumiditate;
Dht DHT;
#define DHT22_PIN 2//DHT22 (AM2302) – Pinul la care este conectat senzorul
Float hum; //Memoreaza valoarea umiditatii
Float temp; //Memoreaza valoarea temperaturii
Int sensorPin = A1; //selecteaza pinul de intrare pentru LDR
Int sensorValue = 0; //Variabila în care se memoreaza valoarea primita de la senzor
Int i = 1;
Void setup () {
//Initializarea releelor
PinMode (RELAY1, OUTPUT);
PinMode (RELAY2, OUTPUT);
PinMode (RELAY3, OUTPUT);
PinMode (RELAY4, OUTPUT);
Serial. Begin (9600); //steteazza portul serial pentru comunicare
Lcd. Init (); //intitializeaza LCD-ul
Lcd. Backlight (); //deschide lumina de fundal a LCD-ului
//Funtii ale programului PLX-DAQ pentru creearea tabelului in timp real
Serial. Println ("CLEARDATA");
Serial. Println ("LABEL, Date, Time, Cicluri, ValFoto, Umiditate Sol, Umiditate Aer, Temperatura");
}
Void loop () {
SensorValue = analogRead (sensorPin); //citeste valoarea de la senzor
Citiredate = analogRead (pinsenzor); //citire valoare pe intrarea analogica
Procentumiditate = map (citiredate, 1023, 0, 0, 100); //transformare date primare in procente
Int chk = DHT.Read22(DHT22_PIN);
//Read data and store it to variables hum and temp
Hum = DHT.Humidity;
Temp = DHT.Temperature;
Serial. Print ("Valoarea fotorezistentei este: ");
Serial. Println (sensorValue); //afiseaza pe ecran valoare citita de la senzor
//Funtie a programului PLX-DAQ pentru creearea tabelului in timp real
Serial. Println ((String) "DATA, DATE, TIME, " + i + ", " + (int) sensorValue/10 + ", " + procentumiditate + ", " + hum + ", " + temp);
I++; //variabila care se incrementeaza la fiecare percurgere a buclei
Delay (1000);
//Functia de control si afisare pe LCD si Serial Monitor a luminozitatii
If (sensorValue > 620) {
Lcd. SetCursor (5, 0);
Lcd. Print ("Noapte");
Lcd. SetCursor (2, 1);
Lcd. Print ("Aprind lumina");
}
Else
{lcd. SetCursor (7, 0);
Lcd. Print ("Zi");
Lcd. SetCursor (2, 1);
Lcd. Print ("Sting lumina");
}
If (sensorValue > 620) {
DigitalWrite (RELAY1, LOW);
}
Else {
DigitalWrite (RELAY1, HIGH);
}
Delay (2000);
Lcd. Clear ();
//Functia de control si afisare pe LCD si Serial Monitor a umiditatii soluilui
Serial. Print ("Umiditate Sol:");
Lcd. Print ("Umiditate Sol:");
If (procentumiditate < 100)
Serial. Print (" ");
Lcd. Print (" ");
If (procentumiditate < 10)
Lcd. SetCursor (6, 15);
Serial. Print (procentumiditate);
Lcd. SetCursor (6, 15);
Lcd. Print (procentumiditate);
Serial. Print ("%");
Lcd. Print ("%");
If (procentumiditate <= 50)
DigitalWrite (RELAY3, LOW);
Else
DigitalWrite (RELAY3, HIGH);
Serial. Println ();
Delay (2000);
Lcd. Clear ();
//Functia de afisare pe LCD si Serial Monitor a umiditatii aerului
Lcd. SetCursor (1, 0);
Serial. Print ("Umiditate aer: ");
Lcd. Print ("Umiditate aer: ");
Lcd. SetCursor (4, 1);
Lcd. Print (hum);
Lcd. Print ("%");
Serial. Print (hum + (String) "%");
Delay (2000);
Lcd. Clear ();
//Functia de control si afisare pe LCD si Serial Monitor a temperaturii si umiditatii aerului
Serial. Print (" Temp: ");
Lcd. SetCursor (2, 0);
Lcd. Print ("Temperatura: ");
Serial. Print (temp);
Lcd. SetCursor (4, 1);
Lcd. Print (temp);
Lcd. Print (" C");
Serial. Println (" Celsius");
If (temp <= 24.0)
DigitalWrite (RELAY2, LOW);
If (temp >= 26.0)
DigitalWrite (RELAY2, HIGH);
If (hum > 75 || temp >= 28)
DigitalWrite (RELAY4, LOW);
Else
DigitalWrite (RELAY4, HIGH);
Delay (1000);
Lcd. Clear ();
}
[cod]
3.2.5 Modulul de interfata grafica.
LCD-ul utilizează pinii digitali de la 2 la 7, astfel: pinul digital 7 – RS; pinul digital 6 – EN; pinul digital 5 – DB4; pinul digital 4 – DB5; pinul digital 3 – DB6; pinul digital 2 – DB7 (explicația semnalelor pe pagina următoare).
Shield-ul este bazat pe controllerul clasic care se folosește la LCD-uri, Hitachi HD44780. LCD-urile care folosesc cel mult 80 de caractere distincte si cel mult 4 linii de afișare au nevoie de un singur controller. LCD-urile care au mai mult de 80 de caractere au nevoie de două controlere. Imaginea cu pinout-ul LCD-ului și semnificația pinilor o găsiți în figura și tabelul de pe pagina următoare.
Pinii LCD-ului
Controllerul HD44780 conține două registre pe 8 biți: registrul de date și registrul de instrucțiuni. Registrul de instrucțiuni e un registru prin care LCD primește comenzi (shift, clear etc.). Registrul de date este folosit pentru a acumula datele care vor fi afișate pe display. Când semnalul Enable al LCD-ului este activat, datele de pe pinii de date sunt puse în registrul de date, apoi mutate în DDRAM (memoria de afișaj, Display Data RAM) și afișate pe LCD. Registrul de date nu este folosit doar pentru trimiterea datelor către DDRAM ci și către CGRAM, memoria care stochează caracterele create de către utilizator (Character Generator RAM).
Display Data Ram (DDRAM) stochează datele de afișare, reprezentate ca și caractere de 8 biți. Capacitatea extinsă a memoriei este de 80 X 8 biŃi, sau 80 de caractere. Memoria rămasă liberă poate fi folosita ca un RAM generic. Pe LCD-ul nostru se afișează doar 2×16 caractere, deoarece aceasta este dimensiunea afișorului, dar controllerul poate stoca 80. Forma grafică efectivă a unui caracter afișat pe LCD este dată de conținutul memoriei CGROM (Character Generator Read Only Memory). Această memorie conține matricele de puncte pentru fiecare caracter (5×8 puncte sau 5×10 puncte – depinde de dispozitiv).
Aspectul caracterelor de la 0x00 la 0x07 poate fi definit de utilizator. Se va specifica pentru fiecare caracter o matrice de 8 octeți, cate unul pentru fiecare rând. Cei mai putini semnificativi 5 biți din fiecare rând vor specifica care pixeli vor fi aprinși și care nu (vezi exemplul de mai jos).
Afișoarele LCD pot comunica cu microcontrolerul în două moduri: pe 8 biți și pe 4 biți. De obicei se preferă conectarea pe 4 biți, pentru că sunt mai putini biți de interfațat, și în consecință rămân mai mulți pini pentru alte aplicații. Shield-ul LCD pe care îl veți utiliza este gata configurat pentru a folosi comunicarea pe 4 biți. Acest mod folosește doar 7 pini de pe placa Arduino;
Prin intermediul adaptorului I2C se folosesc doar 2 pini pentru comunicarea cu arduino.
3.2.6 Modulul de conectare între Arduino si Excel.
Despre program si folosirea lui
PLX DAQ v2 este un program folosit pentru a stabili o comunicare ușoară între Microsoft Excel pe un computer Windows și orice dispozitiv care acceptă protocolul portului serial. A fost scris special pentru a permite comunicarea dintre Arduino și Excel.
Puteți, de exemplu, să măsurați datele despre temperatură cu Arduino, să trimiteți rezultatele la Excel la fiecare 10 secunde, să tipăriți datele pe o foaie și să desenați un grafic cu toate informațiile. Toată comunicarea se va face prin comenzile Serial. Println la fel ca comenzile pe care le folosiți pentru a trimite de la Arduino pentru a monitoriza în seria dvs. Arduino IDE Serial Monitor.
The output of
Void loop () {
Serial. Println ((String) "DATA, DATE, TIME, " + millis ());
Delay (100);
}
Captura din Excel:
Mod de folosire
Programul folosește două părți pentru a lucra: foaia de calcul specială Microsoft Excel cu interfața UI PLQ DAQ v2 și comenzi plus orice dispozitiv Arduino care trimite comenzi speciale pentru comunicare.
Interfata grafica pentru excel
After opening the Excel Spreadsheet please allow running the macro (yellow warning message at the top). Afterwards you can see the PLX DAQ v2 UI. In case not please click the button “Open PLX DAQ UI” on the “Simple Data” sheet.
The UI offers the following options:
Port: Setat la portul Arduino (la fel ca în Arduino IDE => Tools => Port, de exemplu, 4 pentru COM4
Baud: Setați la rata baud pe care o porniți (de exemplu, 9600 dacă utilizați Serial. Begin (9600) în codul dvs. Arduino)
Connect: Se conectează la Arduino și începe logarea
Pause logging/resume logging: Atunci când conectați va întrerupe logarea datelor
Reset Timer: Va seta Timerul la 0. Timerul poate fi folosit pentru a măsura cât timp Excel este deja logat
Clear Columns: Va șterge toate datele înregistrate din foaie. Nu va șterge etichetele coloanelor
Display/Hide direct debug: Fereastra Direct Debug poate fi utilizată pentru a monitoriza manual comenzile primite de PLX DAQ v2 în Excel va afișa sau ascunde câmpul de text din dreapta.
Sheet name to post to: Aceasta va lista toate foile din registrul de lucru Excel. Indiferent ce fișă selectați în meniul derulant, datele înregistrate vor fi trimise la acesta. Această fișă va fi denumită în continuare "ActiveSheet" în acest document.
Notă: după adăugarea/ștergerea foilor, apăsați micul buton "Încărcare" din partea stângă a căsuței drop-down pentru a fi actualizată lista de coli
Controller Messages: În câmpul de mai jos cele mai recente comenzi și informații de stare vor fi afișate. Cel mai probabil, informația se schimbă prea repede pentru a putea citi, deci utilizați fereastra Direct Debug.
Reset on Connect: Căsuța de bifare trebuie să fie bifată în orice moment. Dacă bifat va fi prima comandă de la Excel la Arduino va fi repornit, astfel codul dvs. începe de la început, de asemenea. În acest fel puteți avea o sesiune proaspătă. Dacă doriți să vă conectați la Arduino fără să o reporniți, deconectați caseta
Custom Checkbox 1/2/3: Acestea pot fi folosite pentru a controla Arduino-ul dvs. în timpul rulării în orice fel doriți. Există comenzi pentru a eticheta casetele de verificare de către Arduino și pentru a interoga starea casetelor. De exemplu, puteți eticheta o cutie "Măsurați și umiditatea?" Și verificați cererea din Excel dacă doriți ca Arduino să măsoare umiditatea cu un al doilea senzor de lângă măsurarea doar a temperaturii. Există comenzi speciale pe care Arduino le poate folosi pentru a interoga starea casetelor de selectare.
Despre PLX DAQ si ARDUINO
Pentru ca PLX DAQ v2 să funcționeze corect, Arduino trebuie să trimită comenzi special formate. Toate comenzile trebuie trimise de la Arduino la PC folosind comenzile Serial. Println. Aceste comenzi pot include parametrii, variabilele și funcțiile pe care să le trimiteți. Acești parametri trebuie separați prin virgule. Acest lucru se poate face astfel:
Serial. Println ((String) "DATA, DATE, TIME, " + millis ());
Capitolul 4: Concluzii si contributii personale.
Sinteza capitolelor lucrarii
…
Utilitatea aplicației
Sistemul de automatizare construit si testat reprezintă o investiție mica în raport cu beneficiile aduse din care se evidențiază;
Creșterea productivității culturii folosite datorita mediului controlat în care cresc plantele.
Economiile de timp și energie pentru activitățile de aerisire, încălzire, iluminare si irigare
Control permanent asupra parametrilor ce influențează calitatea culturilor
Practicarea unei agriculturi intensive moderne în condițiile unei concurente acerbe
Scăderea costurilor cu angajații, aceștia fiind necesari doar pentru activitățile de plantare și recoltare.
Irigarea plantelor prin sistemul picătura reduce cantitatea de apa consumata cu aproximativ 60%.
Acest sistem de automatizare se poate adapta ușor si pentru cultura florilor, ciupercilor, păstrarea unui climat constant în fermele de creștere a pasărilor, în culturile aquaponice și în serele înmulțitor din pomicultura.
Permite și adaptarea cultivării unor noi plante care altfel nu pot fi cultivate în România.
Ținând cont de faptul ca: modulul cu relee permite conectarea unor consumatori de 10A la 220V iar senzorii permit conectarea prin cabluri până la o distanta de max. 20m chiar și acest model experimental poate deveni funcțional pentru o sera cu dimensiunile de aproximativ 100m2..
Acest lucru se face astfel;
Înlocuind pompa cu una de de 300W/220V care pompează apa depozitata într-un rezevor de 2-3 m3, apa care este îmbogațită cu îngrășemintele și mineralele necesare in funcție de tipul de planta și faza de dezvoltare.
Se monteze ventilatoare la 220Vși cu diametrul de 600mm care sa asigure o ventilare corespunzatoare.
Inlocul LED-urilor de iluminat se monteza tuburi cu neon care au capacitatea de a emite lumina cu raze ultraviolete ce asigură condiții diurne plantelor și în timpul nopții.
Pentru partea de încalzire se pot monta tunuri electrice de caldura de 220V/1000W conectate în paralel.
Legaturile electrice se fac cu conductori de dimensiunea adecvata, trase prin tub copex și legate în doze cu izolare corespunzatoare.
În perspectiva imbunatatirilor ce se pot aduce acestui sistem sunt:
Prin intermediul unui shield Ethernet și a softului corespunzător utilizatorul sa poată supraveghea evoluția parametrilor și sa intervină direct în modificarea lor prin intermediul Internetului.
Adăugarea unui sistem de alarma care sa indice depășirea in plus sau în minus cu 30% ceea ce ar însemna defectarea unui element de execuție.
Adăugarea unui senzor care sa măsoare PH-ul solului permițând astfel și corectarea acestui parametru destul de important.
Adăugarea unui shield GSM și modificarea programului astfel încât acesta sa transmită SMS cu datele ce sunt afișate pe afișorul LCD.
Contribuțiile personale
Am ales acesta tema de proiect văzând cat de greu este de întreținut solarul de acasă. În urma cursului de la facultate despre Arduino, am ajuns la concluzia ca o aplicație care sa monitorizeze și regleze cei mai importanți parametrii privind cultura plantelor în spațiu închis ar fi foarte necesara și posibila.
M-am documentat din sursele menționate, am achiziționat microcontrolerul Arduino, senzorii și modulele necesare și alte componente care am considerat ca îmi vor folosii în proiect.
Am schițat modul cum am dorit sa lucreze m-am documentat despre condițiile necesare plantelor în culturile dîn sere, și folosind placa de test am creat circuitele electrice ale modulului. Am descărcat librăriile necesare programului și senzorilor și am creat programul pentru automatizarea serei, luând fiecare modul în parte și testând funcționarea lui, iar la sfârșit am creat un cod final care sa îndeplinească funcțiile de afișare în timp real ale parametrilor monitorizați, și autoreglarea lor în funcție de valorile impuse. Am procurat sau construit și testat funcționarea elementelor de execuție; sistem de încălzire, ventilatoare, și pompa de apa cu ajutorul unui alimentator de 12V cc, folosind aceasta soluție pentru a elimina pericolul accidentării prin electrocutare.
. Am gândit și executat structura miniserei ca sa pot testa funcționarea întregului sistem. Pentru aceasta am folosit din materialele din gospodărie: policarbonat alveolar, placa policarbonat, corniere plastic, placa PVC., batoane de silicon.
Pentru a putea monitoriza mai ușor evoluția valorilor în timp și timpul de răspuns la comenzi am căutat o soluție acceptabila. Cea mai bună a fost un macro al programului Excel numit PLX-DAQ, care citește datele primite de la senzori pe portul serial și le transformă în grafice.
În urma testării funcționarii în diferite perioade de timp și la condiții exterioare diferite am făcut corecțiile necesare astfel încât funcțiile sistemului sa fie cele pe care mi le-am propus sa le ating, după cum se poate observa în graficele atașate în lucrare.
Bibliografie
ARDUINO pentru începători, ***, robofun.ro
Elemente practice de baza in dezvoltarea sistemelor cu microprocesoare integrate utilizând
ARDUINO Uno, Pietraru,. Radu, Velicu, Alexandru, Techno Media, 2013.
Ernst van Heurn, Kees van der Post, Agricultura sub adăpost Editura Tei
Referinte Internet
https://www.arduino.cc/en/Main/Software
http://www.eva.ro/casa-și-familie/plante/crizantema-podoaba-de-toamna-a-teraselor-articol-5764.html
http://henrysbench.capnfatz.com/henrys-bench/arduino-output-devices/5-volt-4-channel-arduino-relay-module-user-manual/
http://kennarar.vma.is/thor/v2011/vgr402/ldr.pdf
http://www.purlance.com/product/product156.html
https://store.arduino.cc/arduino-uno-rev3.
http://www.rasfoiesc.com/business/agricultura/Relatiile-plantelor-legumicole59.php
http://www.renovat.ro/euphorbia-milii-ingrijire-și-inmultire-floarea-coroana-lui-isus-p-1160/
https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf
http://users.utcluj.ro/~rdanescu/pmp-lab03.pdf
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Capitolul 1: Introducere în tematica lucrării [310599] (ID: 310599)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
