Monitorizarea Si Controlul Unei Sere
MONITORIZAREA ȘI CONTROLUL UNEI SERE
TEMA
Lucrare de Finalizare a studiilor a studentului LUNGU IONEL FLORIN COSMIN
1). Tema lucrării de finalizare a studiilor: MONITORIZAREA SI CONTROLUL UNEI SERE
2). Termenul pentru predarea lucrării 10.06.2015
3). Elemente inițiale pentru elaborarea lucrării de finalizare a studiilor Documentația aferentă realizării lucrarii, structura lucrării, scheme de funcționare
4). Conținutul lucrării de finalizare a studiilor:
Capitolul I. Introducere
Capitolul II. Medii și tehnologii utilizate
Capitolul III. Proiectarea și realizarea sistemului
Capitolul IV. Concluzii
Bibliografie
Anexe
Capitolul I Introducere
Serele permit un control mai mare asupra mediului de creștere a plantelor. În funcție de specificațiile tehnice din seră, factori-cheie care pot fi controlați includ temperatura, nivelurile de lumină și umbră, irigare, fertilizare, și umiditatea atmosferică. Serele pot fi folosite pentru a depăși neajunsurile legate de, hrană, atât calitativ, cât și cantitativ per suprafață, un sezon prea scurt de creștere sau nivelurile de lumină slabă, și pot îmbunătăți astfel producția de alimente în medii controlate.
Deoarece acestea pot permite anumite culturi să fie cultivate pe tot parcursul anului, serele sunt tot mai importante în aprovizionarea cu alimente. Una dintre cele mai mari complexe de sere din lume se află în Almería, Andaluzia, Spania, unde sere acoperă aproape 200 km2 (49.000 acri)[22].
Serele sunt adesea folosite pentru flori în creștere, legume, fructe, si transplanturi. Soiurile speciale din anumite culturi, cum ar fi roșiile, sunt utilizate în general pentru producția comercială. Multe legume și flori pot fi cultivate în sere până la sfarsitul iernii si inceputul primaverii, iar apoi transplantate afara când se încalzeste vremea.
Mediul relativ închis al unei sere are propriile cerințe de gestionare unic, comparativ cu producția în aer liber. Dăunători și boli, și extreme de căldură și umiditate, trebuie să fie controlate, iar irigarea este necesară pentru a furniza apă. Cele mai multe sere folosi aspersoare sau linii de picurare. Pot fi necesare intrări semnificative de căldură și lumină, în special cu producerea de iarnă de legume cald-meteorologice.
Ca orice activitate productivă și generatoare de profit, industria de automatizări si software a fost în permanență preocupată de problema productivității. Avansul tehnologic survenit în domeniul tehnologiei informaticii, dintre care enumerăm pe cele mai importante: creșterea performanțelor microcontrolerelor, dezvoltarea interfețelor utilizator grafice, impunerea arhitecturii Client/Server, orientarea către sisteme deschise și conectivitate la toate nivelele, au pus proiectanții de aplicații software în fața unor cerințe cu totul noi.
Dezvoltarea de aplicații care să utilizeze o interfață utilizator grafică(GUI) este radical diferită față de dezvoltarea tradițională. Controlul fluxului de execuție este cedat utilizatorului, iar aplicația, până acum monolitică, se divide în mai multe subprograme care trebuie să-și păstreze o anumită independență pentru că ar putea fi apelate în orice moment – pentru acest aspect trebuie o conexiune cu un dispozitiv extern care sa preia informatiile prin portul serial al placii Arduino si folosirea/stocarea lor pentru utilizarea ulterioara.
I.1 Contextul actual
Inovațiile au dus la creșterea explozivă a complexității aplicațiilor, și primul lucru care a fost clar a fost inadecvarea vechilor metode și unelte la noile cerințe. Industria de software si hardware vine în sprijinul proiectanților și a investitorilor doritori de a creea sisteme cât mai automate, eliminând nevoia forței de muncă, dar și pericolele aferente acestui tip de muncă.
Realizarea producției vegetale în sere protejate oferă avantaje deosebite și anume: obținerea de producții timpurii și extratimpurii, siguranță în realizarea ei prin evitarea pericolelor prezentate de grindină, ploi torențiale, înghețuri sau brume târzii, prelungirea perioadei de vegetație a plantelor, eșalonarea produselor și realizarea de producții mari pe unitatea de suprafață.
Un sistem de reglare în general trebuie să aibă următoarele caracteristici:
Mediu integrat de dezvoltare
Era nevoie în primul rând de un mediu de lucru integrat, care să permită dezvoltarea sistemului de la început și până la sfârșit, dar in același timp să permită accesul la toate componentele sistemului.
Instrumentele de achiziție
Cu ajutorul acestora se pot achiziționa cu ușurință datele. Odată achizționate, acestea trebuie reproduse, pentru a putea fi folosite în controlul climei din interiorul sistemului de reglare, în funcție de specificațiile necesare creșterii unui anumit tip de plantă.
Instrumentele de reglare
Datele preluate de la instrumentele de achiziție pot fi prelucrate prin intermediul microcontroler-ului și utilizate în reglarea condițiilor climatice.
Conectivitatea
Întrucât este un sistem de reglare automat, producătorul trebuie să fie informat cât mai des în legatură cu datele ce sunt preluate și prelucrate de la instrumentele de achiziție, dar în același timp trebuie furnizate și informații în legatură cu instrumentele de reglare în eventualitatea în care unul din aceste instrumente cedează pentru aceasta am conectat un sistem de alarmă .
Operabilitatea
Înțelegem prin operabilitate, că oricine are acces la panoul de control al sistemului poate modifica cu ușurință valorile pe care sistemul se bazează pentru a genera un climat propice pentru cultura de plante.
I.2 Beneficii
Un sistem de reglare automat are un numar destul de mare de beneficii, ceea ce constituie motivul principal de utilizare pe o arie mai răspândită în pofida costului destul de ridicat de implementare și de punere in funcțiune. O listă destul de mică de beneficii:
– Asigură integrarea cu sistemul de comunicare în timp real pentru afișarea informațiilor preluate din interiorul sistemului.
– Permite urmărirea stării sistemului pe parcursul funcționării, precum și posibilitatea de a rezolva anumite probleme apărute;
– Eficientizează producția și automatizează procesele de control și informare, reducând timpul necesar manipulării angajaților.
I.3 Analiza parametrilor necesari dezvoltării optime al plantelor
A fost identificat că rata fotosintezei depinde de cantitatea de lumina ce cade pe frunzele plantelor, astfel că reducerea cantității de lumina reduce rata de fotosinteză, iar rata respirației crește, reducându-se astfel producția. De aceea este necesar ca luminozitatea din timpul zilei trebuie sa fie cât mai ridicată. Contrar este sa ținem luminozitatea din timpul nopții ridicat, întrucât plantele nu o să se dezvolte corect.
Temperatura atmosferei poate atinge valori sub pragul necesar dezvoltării plantelor și poate reduce rata respirației plantelor, dar și rata fotosintezei, reducând astfel producția.
Procesele de fotosinteză și respirație trebuie înțelese, pentru a putea implementa un sistem eficient de control. Astfel, că prin fotosinteza se înțelege procesul prin intermediul căruia plantele procură hrana. Acestea absorb CO2 și H2O din atmosferă și folosesc lumină pentru a transforma moleculele de glucoza și a le depozita ca și glicogen. Oxigenul este un produs rezultat în urma acestui proces.
Respirația este procesul prin care moleculele organice sunt divizate pentru a obține CO2, H2O și energie. Aceste procese folosesc anumite enzime pentru a realiza operațiunile aferente respirației, iar enzimele depind în totalitate de temperatură. La temperaturi în jurul valorilor de 50 de grade Celsius enzima își pierde caracteristicile, iar la temperaturi scăzute acestea sunt inactive. Astfel este necesar controlul temperaturii în interiorul unei sere de plante.
Datorită proceselor menționate mai sus într-un sistem este nevoie ca temperatura, intensitatea luminii, dar și nivelul de umiditate a solului să fie controlate de către un sistem automatizat.
I.4 Scopul sistemului de reglare si specificatii de proiectare
Scopul proiectului este de a realiza un sistem de reglare al unei sere de plante bazată pe tehnologii moderne care să ofere utilizatorilor anumite informații preluate de pe un sistem de achiziții prin intermediul unor senzori.
Sistemul este realizat pentru a gestiona:
– Fluxul de informații:
– Afișarea informațiilor către utilizator
– Afișarea datelor preluate
– Starea sistemului
– Controlul condițiilor optime de dezvoltare a plantelor
– Randamentul producției
– Reducerea generală a costurilor, pe cât posibil, la toate nivelele producției.
I.5 Definirea unui sistem automatizat
Automatizările sunt un topic cu totul nou în serele de legume, fructe sau plante. Producătorii de echipamente și chiar operațiile necesare menținerii serei, au gasit modalități de a reduce din costurile producerii acestor echipamente de-a lungul timpului. Totuși pentru a realiza un sistem cu echipamente de o performanța înaltă, prețurile sunt încă la un nivel destul de ridicat.
Prin această automatizare se poate înțelege reducerea numărului de angajați platiți pentru a efectua lucrări de întreținere a culturilor, dar și reducerea riscului de apariție a accidentelor la locul de munca, eliminându-se astfel și probleme de tip legislativ.
Cultivările intensive moderne folosesc aceste automatizări în special pentru a asista timpul de creștere a plantelor, dar și creșterea în sine. Prin controlul temperaturii, a nivelului de umiditate, dar și a altor factori de lumină pentru cultivarea unui tip de plantă ce trebuie crescută în anumite condiții, sera reprezintă mediul ideal de dezvoltare. Motivul principal pentru creearea unei sere o reprezintă factorii climatici din arealul respectiv.
Ideea de baza de control al climei într-o seră reprezintă o performanță mai bună, cu privire la randamentul culturilor, dar și utilizarea resurselor, fiind un plus din punct de vedere financiar pentru investitori( între 15 si 30% reducerea costului la energie, reducerea forței de muncă, fără pierderea sau chiar câstigul în procente al producției).
Pentru realizarea unui proiect de automatizare în cadrul unei sere, s-a ajuns la concluzia că un microcontroler reprezintă cea mai bună soluție atât din punct de vedere financiar, cât și din punctul de vedere al redundanței.
Un sistem este constituit în general dintr-un microcontroler, o interfață, sistemele de achiziție de date, sistemele de control si sistemele aferente. O construcție defectuoasă poate reduce performanța sistemului. Exemple: reducerea factorului de lumina, prin folosirea de materiale necurățate sau pierderea de căldură, care este direct proporționala cu mărimea serei.[19]
Fig. 1.1 Proiect automatizare
Capitolul II Medii și tehnologii utilizate
II.1 Arduino – Platforma Hardware
II.1.1 Ce este Arduino?
Arduino este o platformă de dezvoltare hardware open source formată dintr-o placă electronică cu un microcontroler ATMEL[1]. Platforma este o placă (de test, de circuit imprimat, de dezvoltare, etc.) de diferite forme și design diferit, care are ca element central un circuit integrat programabil(microcontroler). Placa de bază cât și circuitul integrat programabil pot fi de diferite forme și configurații, ceea ce conferă proiectelor realizate cu ele o flexibilitate mare în proiectare . Datorită deschiderii open source, platforma beneficiază de foarte multe versiuni( denumite Furduino,Seeduino, e.t.c) și producerea de către terți producători a unor add-on-uri care îmbunătățesc și extind folosirea Arduino.
Fig 2.1 Arduino Mega
Arduino Mega 2560 este un microcontroler bazat pe ATmega2560 . Ea are 54 de pini digitali de intrare / ieșire ( dintre care 15 pot fi utilizați ca ieșiri PWM ) , 16 intrări analogice , 4 UART ( porturi seriale hardware ) , un 16 MHz oscilator cristal , o conexiune USB , un jack de putere , un ICSP header , și un buton de resetare[16] . Acesta conține tot ce este necesar pentru a sprijini folosirea microcontrolerului.Doar coneefectuoasă poate reduce performanța sistemului. Exemple: reducerea factorului de lumina, prin folosirea de materiale necurățate sau pierderea de căldură, care este direct proporționala cu mărimea serei.[19]
Fig. 1.1 Proiect automatizare
Capitolul II Medii și tehnologii utilizate
II.1 Arduino – Platforma Hardware
II.1.1 Ce este Arduino?
Arduino este o platformă de dezvoltare hardware open source formată dintr-o placă electronică cu un microcontroler ATMEL[1]. Platforma este o placă (de test, de circuit imprimat, de dezvoltare, etc.) de diferite forme și design diferit, care are ca element central un circuit integrat programabil(microcontroler). Placa de bază cât și circuitul integrat programabil pot fi de diferite forme și configurații, ceea ce conferă proiectelor realizate cu ele o flexibilitate mare în proiectare . Datorită deschiderii open source, platforma beneficiază de foarte multe versiuni( denumite Furduino,Seeduino, e.t.c) și producerea de către terți producători a unor add-on-uri care îmbunătățesc și extind folosirea Arduino.
Fig 2.1 Arduino Mega
Arduino Mega 2560 este un microcontroler bazat pe ATmega2560 . Ea are 54 de pini digitali de intrare / ieșire ( dintre care 15 pot fi utilizați ca ieșiri PWM ) , 16 intrări analogice , 4 UART ( porturi seriale hardware ) , un 16 MHz oscilator cristal , o conexiune USB , un jack de putere , un ICSP header , și un buton de resetare[16] . Acesta conține tot ce este necesar pentru a sprijini folosirea microcontrolerului.Doar conectați-l la un computer cu un cablu USB sau de alimentare sau baterie pentru a începe utilizarea lui.
Specificații tehnice:
II.1.2 Tipuri de module
Platforma Arduino[1] constă din mai multe module conectate între ele. Modulele pot fi catalogate în funcție de diverse criterii pe care le vom structura după funcția îndeplinită. Vom observa mai jos cum anume se face conectarea cu diversele module la platforma de dezvoltare:
Platforma de dezvoltare — aceasta este placa electronică ce conține microcontroler-ul („creierul”) programabil Atmel[7]. Fiindcă platforma Arduino este open source, sunt disponibile atât platforme Arduino originale, fabricate în Italia, cât și clone compatibile, mai ieftine, fabricate în general, în China, sau sub licență în diverse regiuni ale lumii. Vom vedea mai departe că există mai multe modele de platforme, modele care diferă atât în ceea ce privește capabilitățile funcționale, cât și în ceea ce privește dimensiunile fizice. Totuși limbajul de programare, mediul de dezvoltare și interconectarea diverselor module sunt practic identice, indiferent de modelul platformei[9].
Module de achiziție — numite și senzori[13], acestea sunt module care se conectează la platforma Arduino pentru a trimite diverse date către aceasta, în funcție de specificul fiecărui modul(de exemplu butoane, senzori de temperatură, senzori de distanță, potențiometre ș.a.m.d.)
Module de ieșire — acestea sunt module care se conectează la platforma Arduino pentru a permite acesteia să transmită informații către lumea exterioară. Acestea pot fi relee, afișaje, difuzoare, ș.a.m.d.
Module conectare date — modulele de date permit platformei Arduino să comunice direct cu alte dispozitive digitale (inclusiv cu alte module Arduino). Modulele de date pot fi module Ethernet, care permit comunicația prin Internet sau printr-o rețea locală, module radio, care pot comunica cu computere sau alte platforme Arduino, module USB, module GSM, comunicare serială și așa mai departe.
Accesorii — acestea nu sunt în general considerate module Arduino, însă sunt o parte uzuală a proiectelor de acest gen. Există tot felul de accesorii, de la soluții de alimentare cu curent electric până la cele mai diverse accesorii. Exemple: carcase, alimentatoare, e.t.c
Conectorii de pe platformele Arduino sunt în general, conectori mama, dar pot fi fără conectori sau conectori tată. Pinii de pe placa de dezvoltare au următoarele funcții, conform etichetelor tipărite pe placă:
Pini GND — ground sau masa,este polul negativ ,cu tensiune 0 volți;
Pini 5V— 5V, pin care prezintă o tensiune de 5 volți față de GND, indiferent de tensiunea de alimentare; în funcție de modelul platformei de dezvoltare, tensiunea de lucru poate fi 5V, de 3,3V sau ambele;
Pini VCC — tensiunea de intrare. Platforma Arduino se alimentează fie prin conectorul USB, fie prin mufa de alimentare; acest pin prezintă tensiunea de alimentare neschimbată, indiferent că este 3,3V, 5V, 9V, 12V sau orice altceva.
Pini Digital 0, Digital 1, …, Digital N — pini de intrare/ieșire digitală. Pinii digitali au doar două stări: 1 sau 0 (logic), HIGH sau LOW (notația în cod), 5V sau 0V (tensiunea propriu-zisă). Numărul concret de pini disponibili este specific fiecărei platformei de dezvoltare; în general, numărul lor poate fi între 4 și 54.
Pini Analog 0, Analog 1, …, Analog N — pini exclusivi de intrare analogică. Aceștia pot citi valori discrete între 0 și 1023, corespunzătoare în mod proporțional tensiunii de intrare (între 0 și 5V). Din nou, numărul de pini diferă de la model la model, în general numărul lor este între 6 sau 16.
II.2 Sisteme de achiziție de date(senzori)
II.2.1 Senzor temperatură
Fig. 2.2 Modul senzor temperatură
Arduino are multe utilizări, printre cele mai populare este utilizarea de senzori de temperatură. Pentru aceasta Dallas Onewire DS18820 [5] este cel mai utilizat. Cu acest senzor de temperatură puteți obține temperatura din cameră, mașină, aproape oriunde.
Ca și în trecut, producția senzorului de temperatură este analogică, avem nevoie pentru a adăuga un cip suplimentar in linie pentru conversie A / D și D / A, pentru Arduino,la care interfața externă nu este foarte largă, dar în același timp utilizarea microcontroler-ului nu este mare. Noul senzor de temperatură DS18B20 este o soluție bună pentru utilizarea uzuală și economică.
Specificații:
Modulul foloseste un singur senzor DS18B20, sursa de alimentare externă are o gama de tensiuni de la 3,0 V la 5,5 V. Intervalul de temperatură la măsurare este de la -55 ° C până la 125 ℃, Fahrenheit echivalent 67 ° la 257 ° F, de la -10 ° C până la +85 ° C are o gamă de precizie de ± 0,5 ° C.
Senzorul de temperatură are o rezoluție programabilă de 9 până la 12 moduri de conversie a temperaturii în format digital de 12-biți cu un maxim de 750 de milisecunde.
Conectarea:
Pin – = conectat la Arduino GND
Pin (mijloc) = conectat la Arduino + 5V
Pin S = semnal, în acest exemplu conecta la portul Arduino Digital n
Exemplu cod: Anexă A1.1
Când totul este corect conectat la modulul există un led care clipește dacă senzorul este citit.
II.2.2 Senzor temperatura digital și de umiditate
Fig. 2.3 Modul senzor temperatură și umiditate
Măsurarea digitală a temperaturii și umidității folosește semnal digital pentru temperatură și umiditate și asigură fiabilitate ridicată și o stabilitate excelentă pe termen lung. Produsul are o calitate excelentă, un răspuns rapid, capacitate anti-interferențe, costul redus și alte avantaje. Interfața are un singur fir serial care permite [5]integrarea sistemului rapid și ușor. Este de mici dimensiuni, consum redus de energie, poate transmite semnal la o distanță de până la 20 de metri, ceea ce face integrarea usoară și reprezintă cea mai bună alegere. Pentru că folosește un singur pin la transmiterea datelor, este ideal de implementat în sistemele cu microcontrolere mai limitate ca număr de I/O.
Specificații:
Tensiune de alimentare: 3.3 ~ 5.5V DC
Ieșire: un singur bus de semnal digital
Gama de măsurare: Umiditate 20-90% RH, Temperatură 0 ~ 50 ℃
Precizie: Umiditate + -5% RH, temperatura + -2 ℃
Rezolutie: Umiditate 1% RH, temperatura de 1 ℃
Stabilitate pe termen lung: <± 1% RH / an
Schemă conectare:
Arduino pin n –> Pin S modul
Arduino GND –> Pin – modul
Arduino +5 –> Pin Mijloc
Exemplu Cod: Anexă A1.2
II.2.3 Modul detectare intensitate lumină
Fig. 2.4 Modul intensitate luminoasă
Senzorul este, de asemenea, cunoscut sub numele de rezistență dependentă de lumina (LDR), sunt dispozitive sensibile la lumină, de cele mai multe ori folosite pentru a indica prezența sau absența luminii, sau pentru a măsura intensitatea luminii. În întuneric, rezistenta lor este foarte mare, uneori până la 1MΩ, dar atunci când senzorul LDR este expus la lumina, rezistenta scade dramatic, chiar până la câteva ohmi, în funcție de intensitatea luminii. LDRs au o sensibilitate care variază în funcție de lungimea de undă a luminii aplicată și sunt dispozitive neliniare. Ele sunt folosite in multe aplicatii, dar sunt uneori depășite de alte dispozitive, cum ar fi fotodiodele și fototranzistoarele[14]. Unele țări au interzis LDRs din plumb sau cadmiu pe probleme de siguranța mediului.
Specificații:
În funcție de caracteristicile spectrale fotorezistența are trei fotorezistori: Ultraviolet , infraroșu, fotosensibil vizibil;
Schemă conectare:
Arduino A5 –> Module Signal (S)
Arduino 5V –> Module +5V (Pin2)
Arduino GND –> Module GND (-)
Exemplu cod: Anexă A1.3
II.2.4 Sondă nivel
Sonda de citire a nivelului apei se bazează pe faptul că apa este un foarte bun conducător de electricitate[2]. Sonda are 3 stări posibile: 25%, 50% respectiv 75% toate respectând același principiu de proiectare și funcționare. Întrucât cunoaștem că pentru un microcontroler valoarea de 0 volți reprezintă „0” logic, iar pentru o valoare cuprinsă între 3,5 și 5 volți, este reprezentat „1” logic, am recurs la implementarea unui circuit capabil să preia nivelul apei din interiorul unui recipient de 500 ml.
Sonda de nivel a apei conține 3 stări posibile, stări ce îmi permit să deduc folosirea a 3 pini de la microcontroler. Principiul de functționare este asemănător ca și în cazul unui buton simplu cu două stări. Implementarea a fost realizată astfel:
Circuitul este prezentat în figura alăturată:
Fig. 2.5 Sistem achiziție sondă volum
Codul folosit pentru achiziția volumului este [3]:
II.2.5 Senzor umiditate sol
Teoria de funcționare a acestor senzori este aceeași cu cea prezentă în cadrul sondei de nivel, cu diferența că la microcontroler nu mai ajunge un semnal de tip digital, ci unul de tip analog[2]. Acest tip de semnal permite citirea cu o precizie mai ridicată a umidității solului.
Fig. 2.6 Sistem achiziție umiditate sol[20]
În cazul citirii umidității, realizăm doar o simplă citire a valorii tensiunii [3] prezente pe acel conector. Intervalul fiind situat între 0 și 5 Volți citirea datelor a fost realizată cu o funcție simplă de interpretare a datelor de tip analog. Și în cazul acesta s-a recurs la transformarea datelor în procente, acestea fiind mai ușor de interpretat de către utilizator.
Exemplu implementare cod:
În secvența prezentată mai sus [17] putem observa că datele preluate pe pinul cu denumirea upin sunt stocate în variabila de tip integer cu denumirea readu. Se convertește în date ce pot fi prelucrate cu ușurință și sunt transformate in procentaje prin intermediul funcției map, dar și constânse în același timp cu funcția ―constrain‖ pentru a se încadra în intervalul 0-100 %.
II.3 Instrumente de control
II.3.1 Releu control
Fig. 2.7 Relee control
Modulul releu poate fi conectat la 240V AC sau 28V, curent continuu într-o varietate de alte componente electrice[14]. Releul poate fi folosit în alarmă anti-furt, jucării, etc. Releul este un dispozitiv controlat electric. El are un sistem de control (de asemenea cunoscute ca circuitul de intrare) și sistemul de control (Cunoscut ca circuitul de ieșire).
Frecvent utilizate în circuitul de control la automatizări, acesta este de fapt un dispozitiv comandat de un curent de intensivate mică pentru a controla o operațiune de curent de intensitate mai mare "comutator automat." Prin urmare, circuitul are diverse roluri: reglează automat funcționarea, de protecție, de siguranță, circuit de conversie, de transfer și așa mai departe.Este foarte potrivit pentru a controla dispozitive single-chip în circuite electrice puternice.
Specificații:
Scopul principal al releului este funcția izolării automate la comutarea elementelor, sunt utilizate pe scară largă în telecomenzi, telemetrie, comunicații, control automat, mecatronica si dispozitive electronice de putere, este una dintre cele mai importante elemente de comandă.
Schema conectare:
Arduino digital pin 10 –> module pin S
Arduino GND –> module pin –
Arduino +5V –> module pin +
Exemplu cod: Anexă A2.1
II.4 Instrumente de intrare/ieșire
II.4.1 Display
Fig. 2.8 Display
Afișarea datelor pe display [6] este importantă deoarece în lipsa unui calculator sau a unui dispozitiv – ce suportă instalarea aplicației și rularea acesteia, respectiv inexistența unui port USB, permite utilizatorului vizualizarea datelor existente în acel moment în interiorul serei.
Displayul este folosit ca intrument de ieșire, pentru afișarea diverselor date din sistem, sau pentru stocarea datelor obținute pe card-ul MicroSD.
Specificații:
Acesta este un ecran tactil rezistiv , care poate fi folosit ca dispozitiv de afișare sau pad pentru introducere date de către utilizator / interfață.
Un modul pentru card-ul MicroSD este , de asemenea, integrat pentru a oferi spațiu de stocare , pentru proiectele dumneavoastră .
Schema conectare:
Exemplu cod: Anexa A3.1
II.4.2 Modul alarmă vizuală.
Fig. 2.9 Modul led 2 culori
Necesitatea sistemelor de alarmă este esențială, pentru că, în lipsa unei avertizări vizuale, ale unor parametrii ai sistemului de automatizare, producția poate fi compromisă sau chiar distrusă.
Dispune de două culori: roșu și verde.
Schema conectare:
Arduino pin 10 –> rezistor 330 Ohm –> pin semnal S
Arduino pin 11 –> rezistor 330 Ohm –> pin mijloc
Arduino GND –> modul -/GND
Exemplu cod: Anexă A3.2
II.4.3 Modul alarmă sunet
Fig. 2.10 Modul buzzer
Aceasta este o sonerie activa pentru alarma sistemului . Se aplica doar tensiunea la sonerie și produce un sunet . Dezavantajul este că nu se poate determina frecvența sunetelor , pentru aceasta ai nevoie de o sonerie pasiva [7].
Schema conectare:
Modulul pin” -” = GND
PIN modul S = Pin digital Arduino n
Exemplu cod: Anexă A3.3
II.5 Sisteme de reglare
Pentru controlul sistemelor de reglare din seră, se vor folosi releele prezentate anterior, care vor fi controlate, la rândul lor de către Arduino. Folosirea releelor este necesară pentru a putea utiliza o plajă mai mare de tensiuni, aferente diverselor tipuri de sisteme utilizate.
Avantajele folosiri releelor sunt:
– Izolarea tensiunilor de control, fata de cele utilizate
– Controlul facil
– Usurința in utilizare
– Costuri mici de achiziție
– Fiabilitate
Sistemele de reglare utilizate au rolul de a oferi condiții optime de dezvoltare a plantelor din seră, acestea fiind dependente, în principal de temperatură, umiditate, intensitate luminoasă.
Aceste sisteme de reglare sunt, cele fără de care o seră nu poate funcționa în condiții normale, și anume:
– Sistemul de răcire – ventilare, constituit din ventilator
– Sistemul de umidificare, constituit din pompă de apă și sistemul de picurare
– Sistemul de iluminare, constituit din LED-uri
– Sistemul de încălzire, constituit din rezistoare
– Sistemul de alarmă, constituit din buzzer și led avertizare
În cele ce urmează, vom detalia sistemele de reglare.
Alte sisteme, dar cu o importanță mai mică, ar fi sistemul de umbrire, sistemul de ceață, sistemul de control al CO2, e.t.c
II.5.1 Sistem răcire – ventilație
Fig. 2.11 Ventilator
Ventilatorul este folosit pentru răcirea, ventilarea si recircularea aerului in incinta serei. Sistemele de ventilare sunt formate din ventilatoare distribuite uniform pe toată suprafața serei. Adesea, ele sunt montate deasupra culturilor, pe structura clădirii. Astfel, ventilatoarele ajută la crearea unui curent slab de aer ce va permite distribuirea uniformă a aerului. În cazul în care ferestrele serei sunt închise, curentul de aer produs de ventilatoare va impiedica saturarea cauzată de umiditatea excesivă, data fiind temperatura scazută. Mai mult, aceste dispozitive pot ajuta la îmbunătățirea schimbului de gaze și la intensificarea procesului de transpirație, atunci când temperaturile sunt ridicate.
II.5.2 Sistem umidificare- pompă apă
Fig. 2.12 Pompă apă
Sistemele de irigare prin picurare s-au impus din ce în ce mai mult datorită costurilor tot mai scăzute și avantajelor numeroase.
Sistemele de udare prin picurare folosesc ca elemente de udare tubul de picurare.
Avantajele sistemului de udare prin picurare:
-Puterea mare de udare într-un timp relativ scurt (20-30 minute);
-Economie de apă;
-Timp redus de udare;
-Efort minim pentru udarea plantelor;
-Se evita prezența apei pe frunze, reducând astfel atacurile și bolile;
-Ușurință în exploatare și montare;
-Odată cu apa prin picurare se pot administra: fertilizanți (îngrășăminte, stimulatori de creștere, aminoacizi,etc), insecticide sau fungicide;
-Picurarea nu face nămol sau crustă între și pe rândurile cu legume.
II.5.3 Sistem iluminare
Fig. 2.13 Schema electronică iluminare
Deoarece lumina trebuie să fie constantă, dar și să respecte anumite reguli și anume: pe timpul zilei să fie aprinsă la capacitate maximă, plantele având nevoie de acest factor pentru a realiza fotosinteza, iar pe timpul nopții lumina trebuie să fie stinsă, am implementat sistemul de iluminare astfel încât utilizatorul să nu poată interveni. Senzorul de lumină controlează în mod automat sistemul de iluminare alcătuit dintr-un set de diode luminescente.
Am recurs la utilizarea acestui tip de iluminare,[4] deoarece aceste diode nu sunt mari consumatoare de curent electric, dar în același timp furnizează o lumină albă de o intensitate mare.
II.5.4 Sistem încălzire
Fig. 2.14 Schema sistem încălzire
Căldura este un factor important în procesul de creștere a plantelor. Încălzirea sistemului este realizată prin intermediul a câte 15 rezistori de 330Ω cu o putere de ½ Watti fiecare. Un circuit este alimentat la o tensiune de 12 Volți,[2] prin intermediul unui releu, deoarece Arduino nu oferă ieșire decât la 3V și 5V.
Alimentarea la o tensiune așa ridicată permite rezistorilor să degaje căldură, însă numărul destul de mare al acestora împiedică apariția anumitor riscuri cum ar fi: existența fumului, distrugerea rezistorilor ș.a.m.d.
II.5.5 Sistemul de alarmă
Este necesar, pentru a adăuga un plus de siguranță automatizării[18], este construit dintr-un difuzor și un led cu două stări: verde și roșu.
Când sistemul funcționează în parametrii stabiliți, difuzorul e oprit și ledul are culoarea verde, respectiv când există o problemă, difuzorul e activ și ledul își schimbă culoarea in roșu.
II.6 Medii de programare folosite
II.6.1 Mediul de dezvoltare Arduino
Ce înseamnă?
Limbajul folosit este o variantă simplificată de C/C++, ameliorată cu diverse biblioteci specifice platformei Arduino [1]. Este foarte ușor de folosit pentru oricine are experiență de programare în orice limbaj cât de cât structurat.
Limbajul oferă și un mediu de dezvoltare IDE (integrated development environment), pentru ușurarea programării microcontrolerului și librării predefinite.
Fig. 2.15 Arduino IDE
Structura
Fiind asemanator cu limbajul C++, codul este structurat pe functii care nu este necesar a fi completate.
Mediul de dezvoltare Arduino [15] conține un editor de text pentru scrierea de cod , o zonă de mesaj , o consolă text, o bară de instrumente cu butoane pentru funcții comune , precum și o serie de meniuri . Se interconectează la hardware-ul Arduino prin portul serial-USB pentru a încărca programe și pentru a comunica.
Exemplu de program:
1. /*
2. Blink
3. Turns on an LED on for one second, then off for one second, repeatedly.
4.
5. This example code is in the public domain.
6. */
7. void setup()
8. {
9. // initialize the digital pin as an output.
10. // Pin 13 has an LED connected on most Arduino boards:
11. pinMode(13, OUTPUT);
12. }
13.
void loop()
{
15. digitalWrite(13, HIGH); // set the LED on
16. delay(1000); // wait for a second
17. digitalWrite(13, LOW); // set the LED off
18. delay(1000); // wait for a second
19. }
Explicația codului precedent:
Au fost definite două funcții, setup() (liniile 8-12) și loop() (liniile 14-19). Aceste două funcții trebuie să fie prezente în orice program; dacă nu aveți nevoie de vreuna dintre ele atunci scrieți-o și lăsați-o goală (deși este puțin probabil să vă găsiți vreodată în această situație).
Funcția setup() este executată o singură dată, la inițializarea plăcii (de fiecare dată când este alimentată, de fiecare dată când încărcați un program nou și de fiecare dată când resetați placa)
Funcția loop() se execută apoi la infinit, fără pauză. Dacă aveți nevoie de pauze trebuie să le introduceți dumneavoastră în mod explicit.
În programul nostru, funcția setup() face un singur lucru: declară pinul 13 (adică pinul digital 13) ca pin de ieșire
Funcția loop() de mai sus face următoarele:
linia 15: scrie "1" la pinul 13 (adică din acest moment pinul respectiv va fi alimentat cu 5V)
linia 16: așteaptă 1000 de milisecunde, adică o secundă;
linia 17: scrie "0" la pinul 13 (adică din acest moment pinul respectiv nu va mai fi alimentat)
linia 18: așteaptă din nou o secundă (dar de data asta pinul 13 nu mai este alimentat, deci LED-ul este stins).
II.6.2 Mediul de dezvoltare Atmel Studio
Atmel® Studio 6 [21] este o platformă de dezvoltare integrată ( IDP ) pentru dezvoltarea și depanarea aplicațiilor bazate pe Atmel ARM® Cortex® – M și microcontrolerelor Atmel AVR® ( MCU ) . Atmel Studio 6 IDP vă oferă un mediu ușor de utilizat pentru a scrie , a construi și a depana aplicații scrise în C / C ++ sau în cod de asamblare .
Atmel Studio 6 este gratuit și este integrat cu Atmel Software Framework ( ASF ) o mare bibliotecă de cod sursă gratuit cu un număr mare de exemple de proiecte.
Fig. 2.16 Atmel Studio
Visual Micro este un plugin gratuit care implementează caracteristicile simple, dar puternice de dezvoltare Arduino în Atmel Studio 6.2 IDE . Atmel Corp. sunt producătorii de microcontrolerul pe care se bazează Arduino și oferă un Ide gratuit numit Atmel Studio .
Atmel Studio se bazează pe Microsoft Visual Studio 2010 , dar oferă ajutoare IntelliSense și un set bogat de instrumente de programare Arduino.
Atmel Studio cu Visual Micro permite orice proiect Arduino ( cu cod de finalizare ), care urmează să fie dezvoltat , elaborat și apoi încărcat în orice Arduino . În mod implicit , plugin-ul împărtășește sursele și instrumentele de Arduino IDE ceea ce înseamnă că folosesc același cod și doar IDE-ul este diferit !
Instrumentele de la Atmel se află la baza Arduino IDE pe care se bazează pentru compilare și încărcare . Este un mediu perfect pentru a dezvolta Arduino folosind Atmel Studio împreună cu o interfața de utilizator bogată și alte instrumente de dezvoltare de mare ajutor, pe care le furnizează .
Capitolul III Proiectarea și realizarea sistemului
În acest capitol sunt prezentate cerințele de proiectare ale sistemului. Acest lucru presupune o bună formulare și înțelegere a problemei, evidențiind necesitățile structurale ale sistemului, dar și necesitățile funcționale [12]. Această înțelegere poate conduce la o distincție netă între analiză ("ce trebuie făcut?") , proiectarea ("cum trebuie făcut?") sistemului și implementarea propriuzisă.
III.1 Structură hardware
Proiectarea embedded
Obiectivul acestui proiect este de a construi un sistem simplu , ușor de instalat , bazat pe microcontroler, pentru a monitoriza și înregistra valorile de temperatura, umiditatea solului și lumina soarelui din mediului natural , care sunt modificate continuu și controlate în vederea optimizării lor a obține maximul de creștere și randament la plante. Controlerul utilizează o putere scăzută , este rentabil și ușor accesibil .
Funcționalitatea proiectului se bazează pe sistemul de achiziție. Acest sistem trebuie să îndeplinească anumite operații necesare prelucrării datelor preluate de la senzori, sau prelucrării datelor preluate de la utilizator în vederea controlării elementelor active din sistem, cum ar fi ventilator, sistem iluminare, încălzire sau pompa de apă.
Programarea microcontrolerului este un pas important, deoarece cipul fără cod nu este altceva decât un simplu integrat fără o funcție anume. Pentru a crea sistemul au trebuit respectate 2 etape principale:
– Crearea arhitecturii
– Implementarea arhitecturii
Fig, 3.1 Proiect automatizare
III.1.1 Crearea arhitecturii
Sistemul propus este un sistem integrat , care va monitoriza și controla îndeaproape parametrii microclimatici din seră, în mod non-stop pentru cultivarea culturilor sau speciilor de plante specifice, care ar putea maximiza producția pe tot sezonul de creșstere a culturilor și pentru a elimina dificultățile apărute în sistem și de reducerea intervenției umane într-o măsură cât mai mare posibilă . Sistemul cuprinde senzori, microcontroler, actuatori și sistemele de reglare propriuzise.
Cel mai important element al arhitecturii, este fară indoială microcontrolerul Arduino, care este responsabil cu procesarea tuturor proceselor care se desfășoară in sistem.
În cadrul creării arhitecturii s-a luat în seamă rezultatul final dorit și costurile cât mai reduse, îmbunătățirile fiind adăugate pe parcursul implementării. Alte îmbunătățiri nu au fost luate în calcul, au fost doar prezentate, datorită costurilor ridicate de implementare și nefiind neapărat necesare pentru funcționarea optimă a sistemului.
Elaborarea sistemului a avut ca punct de pornire sistemul de achiziție de date, care este și partea cea mai importantă a automatizării și ne oferă toate datele necesare pentru a continua monitorizarea si controlul sistemului, prin intermediul microcontrolerului.
Din sistemul de achiziție fac parte urmatoarele componente:
– senzorul de temperatură – responsabil cu măsurarea temperaturii în partea superioară e serei, unde temperatura este cea mai ridicată.
– senzorul de temperatură-umiditate, care este rsponsabil cu măsurarea temperaturii și umiditătii la nivelul culturilor
– senzorul de umiditate din sol fiind responsabil cu citirea umiditătii, cât mai aproape de rădăcinile plantelor, pentru a preveni uscarea acestora
– senzorul de volum sau nivel este introdus în recipientul din care se aprovizionează sistemul de umidificare, pentru a preveni lipsa alimentării umidificării. Are trei stării corespondente nivelului de lichide din recipient 25%, 50% si 75%. Ar fi putut fi îmbunătățit cu adăugarea unei electrovalve, care să deschidă sau să închidă sistemul continuu de alimentare cu apă.
– senzorul de luminozitate, care este necesar pentru a controla intensitatea luminoasă, pentru desfășurarea în condiții optime a procesului de fotosinteză a plantelor.
Următorul pas, este sistemul de control, controlat de Arduino, care în funcție de datele primite de la sistemul de achiziție comandă,la rândul său mai departe sistemele de reglare ale serei, prin intermediul releelor, fiind ușor de controlat și cu costuri foarte mici.
Din sistemul de control fac parte si intrumentele de intrare/ieșire, pentru controlul proceselor desfașurate în sistem, care afișează datele primite de la sistemul de achiziție. Tot din această categorie face parte și partea de conectare, programare și control al microcontrolerului.
Ultimul pas în crearea arhitecturii este, sistemul de reglare a condițiilor în incinta serei. Arhitectura conține sisteme de : ventilație, iluminare, umidificare și încălzire.
La începutul creării arhitecturi, nu a fost luat în calcul interconectarea sistemelor, dar după aprofundarea construirii arhitecturii, s-a constatat că, unele sisteme dacă functionează independent pot creea diverse neajunsuri cauzate plantelor.
Sistemele sunt dependente, unele cu celelalte și interconectate între ele. Exemplul cel mai elocvent este controlul temperaturii, care se realizează prin ventilație, dar care produce și uscarea solului, deci trebuie pornite ambele sisteme pentru asigurarea condițiilor optime, în funcție de datele primite de la senzori.
III.1.2 Implementarea arhitecturii
Sistemul automatizat fiind unul autonom, necesitând pentru a functiona, doar de energie electrică și condiții optime de climat pentru a funcționa, ca de altfel, ca și toate dispozitivele electronice/electrice.
Ținând cont, că perioadele de cultură, sunt relativ mari, intervenția in sistem nu este necesară, doar dacă se schimbă felul culturii sau oprirea sistemelor pentru mentenanță. Din această cauză nu s-a implementat un sistem de control la distanță, acesta fiind costisitor financiar și îngreunând funcționarea sistemului.
Pentru schimbarea parametrilor în sistem, se va folosi portul Serial-USB al Arduino pentru că durata de intervenție este foarte scurtă.
Fig 3.2 Implementare sisteme
III.2 Realizarea sistemului
III.2.1 Realizarea practică a sistemului
Perioada realizării proiectului a fost îndelungată, s-a început prin proiectarea sistemului de reglare și stabilirea funcțiilor ce ar trebui îndeplinite de fiecare sistem in parte și integrarea tuturor componentelor, pentru îndeplinirea sarcinilor.
Sistemul de control automatizat , care a fost proiectat și construit cu succes pentru aceasta lucrare este menit să protejeze plantele de intruși , și , de asemenea, să le ajute să crească până la maturitate, ceea ce în mediul deschis, ar trebui folosită o suprafață mult mai mare de teren pentru a produce aceeași cantitate de culturi . Acest sistem produce recolte sanatoase fără dăunători.
S-a dezvoltat o schemă logică pentru ușurarea implementării proiectului, atât pe parte hardware, cât si software. Menționez că la început totul a fost simplu, dar apărând diverse neconformității, schema logică a suferit îmbunătătiri.
În cele ce urmează, vă prezentăm schema logică și principiile pe care a fost concepută.Fig. 3.3
Fig 3.3 Schemă logică sistem automatizare
Proiectarea schemei logice a avut ca punct de plecare principalele aspecte care ajuta plantele să nu fie afectate de condițiile din seră; temperatură, umiditate, luminozitate.
Această sarcină este îndeplinită în mai mulți pași:
– de sistemul de achiziție date- prin măsurarea temperaturii și umidității
– microcontrolerul interpretează datele și trimite comenzile de pornire ale sistemelor de control care trebuie, in functie de datele primite de la senzori să pornească la rândul lor sistemele de reglare. Acesta trimite datele spre afișare pe ecran.
– sistemul de control format din relee, comandate de Arduino
– sistemele de reglare, comandate de relee
Principalul aspect este legat de temperatură și trebuie să se încadreze în limitele normale, deoarece temperatura prea scăzută sau prea mare, poate afecta iremediabil plantele, compromițând toată cultura.
Reglarea temperaturii se face în funcție de mai mulți factori:
– dacă temperatura e sub limitele normale și umiditatea normală, pornim sistemul de încalzire
– dacă temperatura e sub limitele normale și umiditatea scăzută, pornim sistemul de încalzire și de umidificare
– dacă temperatura e sub limitele normale și umiditatea ridicată, pornim doar sistemul de încalzire
– dacă temperatura e peste limite si umiditatea redusă, se pornește ventilația și umidificarea
– dacă temperatura e peste limitele normale și umiditatea ridicatăă, pornim doar sistemul de ventilație
– dacă temperatura e peste limite și umiditatea normală, pornește doar ventilația
Următorul aspect este umidificarea, care se împarte în două subrutine, una controlează umiditatea solului și cealaltă umiditatea aerulu, care dacă este prea mare poate favoriza apariția bolilor și dăunătorilor la plante.
Pași urmați pentru reglarea umidității:
– dacă umiditatea din aer e peste limitele admise și umiditatea solului prea ridicată, se pornește ventilația
– dacă umiditatea din aer e peste limitele admise și umiditatea solului prea redusă, se pornesc ventilația și umidificarea
– dacă umiditatea din aer e peste limitele admise și umiditatea solului normală, se pornește ventilația
– dacă umiditatea din aer e peste limitele admise și umiditatea solului prea ridicată, se pornește ventilația
– dacă umiditatea din aer e normală și umiditatea solului prea ridicată, se pornește ventilația
– dacă umiditatea din aer e normală și umiditatea solului prea rdusă, se pornește umidificarea.
Un aspect mai putin important, dar care afectează producția, este cel legat de intensitatea luminoasă. Dacă lumina nu este suficientă, plantele intră într-o stare de așa zisă ”adormire”, neavând loc procesul de fotosinteză. Din această cauză a fost implementat un sistem de iluminare suplimentară, care are rolul de a compensa insuficiența luminii.
Pentru a nu exista situații critice, apărute din diverse cauze, dependente sau nu de întregul sistem de automatizare, am implementat un sistem de alarmare, sonor si vizual, ca utilizatorul sa poată interveniiîn cazuri de urgență. Acest sistem este compus din două componente: un buzzer – pentru avertizare sonoră și un led pentru avertizare vizuală.
III.2.2 Punerea în funcțiune
Pentru a fi pus în funcțiune, sistemul necesită o conexiune cu sistemul de achiziție, pentru a fi colectate date[11].
Alimentarea sistemului de achiziție se efectuează de la o sursă de calculator. Se cupleaza de la sursa de tensiune de la bornele de 5 volti, respectiv 12 volți, o serie de fire de tip multifilar. Pe sursă este montat un întrerupator ce ne permite deschiderea circuitului în caz de problemă sau erori. Alimentarea sursei se efectuează la tensiunea de 220 V curent alternativ, la o frecvență de 50 Hertzi.
S-a recurs la această variantă de alimentare, pentru că avem o plajă mai mare de tensiuni și putere suficient de mare, ca să nu existe probleme la funcționare sau instabilitate pe aceast aspect.
Pe lângă partea de alimentare și componentele prezentate in capitolele anterioare, mai avem nevoie de partea de conexiuni între diversele componente implicate în procesele de automatizare.
Printre care amintim:
Breadboard
Fig. 3.4 Breadboard
Practic , un breadboard este o serie de clipuri metalice conductoare inchise intr -o cutie din plastic de culoare albă ,caz în care fiecare clip este izolat de un alt clip . Există o serie de găuri pe cutia de plastic fig 3.3 , aranjate într-o anumită manieră . Un aspect tipic breadboard constă din regiuni numite benzi .
Jump wires
Fig. 3.5 Firele de conectare
Un jump wires(fir de conectare) , este un fir electric scurt, cu un vârf solid care, la fiecare capăt poate fi mufat- de tip mamă sau tată sau nemufat.Este în mod normal folosit pentru a interconecta componente într-un breadboard . Printre altele , acestea sunt utilizate pentru transmiterea semnalelor electrice oriunde pe breadboard la pinii de intrare / ieșire a unui microcontroler, senzori, e.t.c
Fig 3.6 Cablul folosit pentru conexiunea serială
Programarea microntrolerului se realizeaza prin portul serial-USB al plăcii Arduino și se folosește in principal mediul de dezvoltare integrată, oferit de către platforma Arduino.
III.2.3 Rezultate obținute
Pentru a observa funcționalitatea sistemului cât mai precis, am considerat ca, după realizarea unui modul software sau hardware, o testare a acestuia este următorul pas.
Citirea datelor și compararea acestora cu rezultatele scontate a fost un pas esențial în dezvoltarea proiectului, deoarece testarea produsului este un factor decisiv în livrarea sau implementarea acestuia.
Testarea este întotdeauna o parte importantă în dezvoltarea de proiecte. Scopul său este de a asigura că se realizează calitatea dorită și fiabilitatea în timp a sistemului.
O abordare nouă în proiectarea sistemului bazat pe microcontroler pentru măsurarea și controlul celor trei parametri esențiali pentru creșterea plantelor , temperatura, umiditate și intensitatea luminii , a fost îndeplinit . Rezultatele obținute au arătat că performanța sistemului este destul de consistentă și fiabilă . Sistemul a depasit cu succes testele și a trecut destul de ușor peste câteva deficiențe ale sistemelor existente prin reducerea puterii consumate.Mentenanța și complexitatea, în același timp, oferind o formă flexibilă și precisă de a menține mediu în condițiile optime.
Timpul de reacție al sistemului la restabilirea variațiilor ale parametrilor microclimatici suferă de o întârziere de câteva secunde, din cauza ciclizării programului de scanării a senzorilor și releelor electromecanice utilizate . Sistemul este complet automatizat , deoarece nu are nevoie de nici o formă de modificare din partea utilizatorului. Parametrii microclimatici sunt , de asemenea, disponibili pe display pentru ca utilizatorul să citească și să monitorizeze performanța serei.
Capitolul IV Concluzii
IV.1 Obiective realizate
Scopul proiectului a fost acela de a creea un instrument prin intermediul căruia să putem avea control, dar în aceeași măsură să putem prelua și vizualiza datele preluate de la un sistem de achiziție, în cazul în care dorim să folosim calculatorul personal sau calculatorul ce se poziționează la o distanță redusă față de sistemul de achiziție, sau cu ajutorul unui site în cazul în care avem la dispoziție o conexiune stabilă la internet. Printre obiectivele realizate se numără de asemenea creearea unui sistem ce poate funcționa autonom fără a fi necesară o conexiune cu calculatorul personal sau cu rețeaua de internet.
Proiectarea sistemului de achiziție și reglare cu parametrii ce pot fi modificați în timpul funcționării au condus la o potrivire a sistemului, per total, într-o categorie ce poate fi denumită automatizare.
IV.2 Posibilități de îmbunătățire
Deoarece sistemul beneficiază de o legătură directă cu un site, o îmbunătățire ce ar putea fi adusă asupra părții software a proiectului o constituie creearea unei aplicații realizată pentru telefoanele mobile sau pentru smartphone-uri ce poate fi în contact direct cu site-ul. Utilizarea acestui tip de aplicație îi poate asigura utilizatorului o mobilitate sporită, față de utilizarea unui laptop sau orice alt tip de dispozitiv prin intermediul căruia avem posibilitatea accesării rețelei de internet.
Îmbunătățirea unui produs înseamna implementarea de idei noi și eficiente din punct de vedere financiar sau funcțional pentru utilizator.
În continuare prezentăm câteva sisteme care ar putea îmbunătății sistemul de automatizare și control. Acestea sunt: panou solar, interfață ethernet, interfață GSM, WIFI, joystick, e.t.c
Panoul solar
Fig 4.1 Panoul solar
Adăugarea de panouri solare, permite realizarea unui sistem autonom și stabil. Întrucât cantitatea combustibililor fosili este în scădere, acest lucru a dus la scumpirea curentului electric, dezvoltatorii fiind nevoiți să caute încontinuu alte surse de energie.
Întrucât acestea utilizează o sursă inepuizabilă de energie și anume Soarele, are totodată și anumite dezavantaje cum ar fi:
Sensibilitatea la intemperiile naturii;
Incapacitatea de a produce energie pe timpul nopții, acest impediment fiind foarte ușor trecut cu ajutorul unor acumulatori de o capacitate ridicată;
Spațiul necesar utilizat;
Și nu în ultimul rând costul;
Fiind o tehnologie care se află încă la început, raportul calitate-preț este unul destul de ridicat, împiedicând utilizarea panourilor pe o scară mai largă. Prețul fiind ridicat, unitățile de producere a energiei electrice prin intermediul panourilor solare se găsesc preponderent în țările aflate în dezvoltare.
Interfață ethernet
Fig 4.2 Interfață ethernet
Arduino Ethernet Shield Arduino [10] se conectează la Internet în doar câteva minute . Doar conectați acest modul la Arduino , conectați-l la rețea cu un cablu RJ45 și urmați câteva instrucțiuni simple pentru a începe controlul întregului sistem Arduino prin intermediul internetului .
Arduino Ethernet Shield permite ca o placa Arduino să se conecteze la internet . Ea se bazează pe cip ethernet Wiznet W5100 . Wiznet W5100 oferă o rețea ( IP ) capabilă atât TCP și UDP . Aceasta susține până la patru conexiuni simultane .
Interfață GSM
Fig 4.3 Interfață GSM
Arduino GSM Shield Arduino [10] se conectează la Internet folosind rețeaua wireless GPRS . Doar conectați acest modul la Arduino , conectați o cartelă SIM de la un operator de acoperire GPRS , urmați câteva instrucțiuni simple pentru a începe controlul Arduino prin intermediul internetului . De asemenea, puteți efectua / primi apeluri vocale ( veți avea nevoie de un circuit difuzor și microfon extern ) și puteți trimite / primi mesaje SMS .
Interfață rețea wireless
Fig 4.4 Interfață rețea wireless
Arduino WiFi Shield Arduino se conectează la Internet fără fir . Conectați-l la rețeaua fără fir , urmând câteva instrucțiuni simple.
WiFi Shield se poate conecta la rețele fără fir care operează în conformitate cu specificațiile 802.11b și 802.11g .
Există și un slot pentru card micro SD integrat , care poate fi folosit pentru a stoca fișiere. Este compatibil cu Arduino Uno și Mega .
Joystick control
Fig 4.5 Joystick
Principiul de control poate fi considerat că este organizat de două potențiometre și un buton .Mișcări direcționale sunt pur și simplu două potențiometre – una pentru fiecare axă.
Utilizat, in principal pentru controlul aplicațiilor de pe microcontroler
Bibliografie
[1]http://arduino.cc
[2]http://elforum.ro
[3]O'Reilly – Programming C# 2nd Edition, O'Reilly Media, 2002
[4]Brad Kendall – Getting started with Arduino- a beginner’s guide, MakeUseOf.com, 2013
[5]http://arduinosensors.com
[6]https://learn.adafruit.com
[7]Michael McRoberts – Beginning Arduino, www.apress.com, 2013
[8]John Boxall – Arduino workshop, No Starch Press, Inc 2013
[9]http://www.ladyada.net/learn/arduino/
[10]http://tronixstuff.com/tutorials/
[11]https://youtube.com
[12]http://en.wikipedia.org/wiki/Arduino
[13]Brian Evans – Beginning Arduino Programming, www.apress.com, 2011
[14]linksprite.com
[15]Getting Started with Arduino 3rd Edition, Massimo Banzi and Michael Shiloh,2014
[16]https://learn.sparkfun.com/tutorials/
[17]http://www.engblaze.com/tutorial-using-atmel-studio-6-with-arduino-projects/
[18]http://www.electroschematics.com/arduino
[19] http://www.slideshare.net/AmitSaini7/arduino-based-intelligent-greenhouse- project
[20]http://www.instructables.com/id/Garduino-Gardening-Arduino/step7/Test-and- Calibrate-Your-Sensors/
[21]http://www.atmel.com/microsite/atmel_studio6/
[22] : http://en.wikipedia.org/wiki/Greenhouse
Anexe
A.1 Anexe: Exemple cod sisteme achiziție
Anexa A1.1: Senzor temperatura:
#include <OneWire.h>
// DS18S20 Temperature chip i/o
OneWire ds(10); // on pin 10
void setup(void) {
// initialize inputs/outputs
// start serial port
Serial.begin(9600);}
void loop(void) {
//For conversion of raw data to C
int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
byte i;
byte present = 0;
byte data[12];
byte addr[8];
if ( !ds.search(addr))
{
Serial.print("No more addresses.\n");
ds.reset_search();
return;
}
{
Serial.print("R=");
for( i = 0; i < 8; i++)
{
Serial.print(addr[i], HEX);
Serial.print(" ");
}
{
if ( OneWire::crc8( addr, 7) != addr[7])
{
Serial.print("CRC is not valid!\n");
return;
}
{
if ( addr[0] == 0x10)
{
Serial.print("Device is a DS18S20 family device.\n");
}
else if ( addr[0] == 0x28)
{
Serial.print("Device is a DS18B20 family device.\n");
}
else
{
Serial.print("Device family is not recognized: 0x");
Serial.println(addr[0],HEX);
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
Serial.print("P=");
Serial.print(present,HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print( OneWire::crc8( data, 8), HEX);
Serial.println(); //Conversion of raw data to C
LowByte = data[0];
HighByte = data[1];
TReading = (HighByte << 8) + LowByte;
SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
Whole = Tc_100 / 100; // separate off the whole and fractional portions
Fract = Tc_100 % 100;
if (SignBit) // If its negative
{
Serial.print("-");
}
Serial.print(Whole);
Serial.print(".");
if (Fract < 10)
{
Serial.print("0");
}
Serial.print(Fract);
Serial.print("\n");
//End conversion to C
}
Anexa A1.2:Senzor temperatura si umiditate:
//KY015 DHT11 Temperature and humidity sensor int DHpin = 8;
byte dat [5];
byte read_data ()
{
byte data;
for (int i = 0; i < 8; i ++)
{
if (digitalRead (DHpin) == LOW)
{
while (digitalRead (DHpin) == LOW); // wait for 50us
delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
if (digitalRead (DHpin) == HIGH)
data |= (1 << (7-i)); // high front and low in the post
while (digitalRead (DHpin) == HIGH); // data '1 ', wait for the next one receiver
}
}
return data;
}
void start_test ()
{
digitalWrite (DHpin, LOW); // bus down, send start signal
delay (30); // delay greater than 18ms, so DHT11 start signal can be detected
digitalWrite (DHpin, HIGH);
delayMicroseconds (40); // Wait for DHT11 response
pinMode (DHpin, INPUT);
while (digitalRead (DHpin) == HIGH);
delayMicroseconds (80); // DHT11 response, pulled the bus 80us
if (digitalRead (DHpin) == LOW);
delayMicroseconds (80); // DHT11 80us after the bus pulled to start sending data
for (int i = 0; i < 4; i ++) // receive temperature and humidity data, the parity bit is not considered
dat[i] = read_data ();
pinMode (DHpin, OUTPUT);
digitalWrite (DHpin, HIGH); // send data once after releasing the bus, wait for the host to open the next Start signal
}
void setup ()
{
Serial.begin (9600);
pinMode (DHpin, OUTPUT);}
void loop ()
{
start_test ();
Serial.print ("Current humdity =");
Serial.print (dat [0], DEC); // display the humidity-bit integer;
Serial.print ('.');
Serial.print (dat [1], DEC); // display the humidity decimal places;
Serial.println ('%');
Serial.print ("Current temperature =");
Serial.print (dat [2], DEC); // display the temperature of integer bits;
Serial.print ('.');
Serial.print (dat [3], DEC); // display the temperature of decimal places;
Serial.println ('C');
delay (700);
}
Anexă A1.3 Senzor lumină:
int sensorPin = A5; // select the input pin for the potentiometerint ledPin = 13;
// select the pin for the LEDint sensorValue = 0;
// variable to store the value coming from the sensor;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
Serial.println(sensorValue, DEC);
}
Anexă A2 Exemple cod instrumente control
Anexă A2.1 Releu control
int relay = 10; // relay turns trigger signal – active high;
void setup ()
{
pinMode (relay, OUTPUT); // Define port attribute is output;
}
void loop ()
{
digitalWrite (relay, HIGH); // relay conduction;
delay (1000);
digitalWrite (relay, LOW); // relay switch is turned off;
delay (1000);
}
Anexă A3 Instrumente de intrare/ieșire
Anexă A3.1 Display Touchscreen
// drawCircle example
#include <stdint.h>
#include <TFTv2.h>
#include <SPI.h>
void setup()
{
TFT_BL_ON; //turn on the background light
Tft.TFTinit(); //init TFT library
Tft.drawCircle(100, 100, 30,YELLOW); //center: (100, 100), r = 30 ,color : YELLOW
Tft.drawCircle(100, 200, 40,CYAN); //center: (100, 200), r = 10 ,color : CYAN
Tft.fillCircle(200, 100, 30,RED); //center: (200, 100), r = 30 ,color : RED
Tft.fillCircle(200, 200, 30,BLUE); //center: (200, 200), r = 30 ,color : BLUE
}
void loop()
{
}
Anexă A3.2 Modul alarmă vizuală
void setup () {
pinMode (redpin, OUTPUT);
pinMode (greenpin, OUTPUT);}void loop () {
for (val = 255; val> 0; val–)
{
analogWrite (greenpin, val);
analogWrite (redpin, 255-val);
delay (15);
}
for (val = 0; val <255; val++)
{
analogWrite (greenpin, val);
analogWrite (redpin, 255-val);
delay (15);
} }
Anexa A3.3: Exemplu cod buzzer:
// KY012 buzzer activ
int speakerPin = 8;
void setup ()
{
pinMode (speakerPin, OUTPUT);
}
void loop ()
{
analogWrite (speakerPin, 255);
delay (50);
analogWrite (speakerPin, 0);
delay (10);
}
Cuprins
Capitolul I. Introducere
I.1. Context actual
I.2. Beneficii
I.3 Analiza parametrilor necesari dezvoltării optime al plantelor
I.4 Scopul sistemului de reglare si specificatii de proiectare
I.5 Definirea unui sistem automatizat
Capitolul II. Medii și tehnologii utilizate
II.1. Arduino – Platforma Hardware
II.1.1 Ce este Arduino?
II.1.2 Tipuri de module
II.2 Sisteme de achiziție de date (senzori
II.2.1 Senzor temperatură
II.2.2 Senzor temperatura digital și de umiditate
II.2.3 Modul detectare intensitate lumină
II.2.4 Sondă nivel
II.2.5 Senzor umiditate sol
II.3 Instrumente de control
II.3.1 Releu control
II.4 Instrumente de intrare/ieșire
II.4.1 Display
II.4.2 Modul alarmă vizuală
II.4.3 Modul alarmă sunet
II.5 Sisteme de reglare
II.5.1 Sistem răcire – ventilație
II.5.2 Sistem umidificare- pompă apă
II.5.3 Sistem iluminare
II.5.4 Sistem încălzire
II.5.5 Sistemul de alarmă
II.6 Medii de programare folosite
II.6.1 Arduino Programing Language
II.6.2 Atmel Studio
Capitolul III. Proiectarea și realizarea sistemului
III.1 Structură hardware
III.1.1 Crearea arhitecturii
III.1.2 Implementarea arhitecturii
III.2 Realizarea sistemului
III.2.1 Realizarea practică a sistemului
III.2.2 Punerea în funcțiune
III.2.3 Rezultate obținute
Capitolul IV. Concluzii
IV.1 Obiective realizate
IV.2 Posibilități de îmbunătățire:panou solar, module rețele, joystick.
Bibliografie
Anexe
Cuprins
Bibliografie
[1]http://arduino.cc
[2]http://elforum.ro
[3]O'Reilly – Programming C# 2nd Edition, O'Reilly Media, 2002
[4]Brad Kendall – Getting started with Arduino- a beginner’s guide, MakeUseOf.com, 2013
[5]http://arduinosensors.com
[6]https://learn.adafruit.com
[7]Michael McRoberts – Beginning Arduino, www.apress.com, 2013
[8]John Boxall – Arduino workshop, No Starch Press, Inc 2013
[9]http://www.ladyada.net/learn/arduino/
[10]http://tronixstuff.com/tutorials/
[11]https://youtube.com
[12]http://en.wikipedia.org/wiki/Arduino
[13]Brian Evans – Beginning Arduino Programming, www.apress.com, 2011
[14]linksprite.com
[15]Getting Started with Arduino 3rd Edition, Massimo Banzi and Michael Shiloh,2014
[16]https://learn.sparkfun.com/tutorials/
[17]http://www.engblaze.com/tutorial-using-atmel-studio-6-with-arduino-projects/
[18]http://www.electroschematics.com/arduino
[19] http://www.slideshare.net/AmitSaini7/arduino-based-intelligent-greenhouse- project
[20]http://www.instructables.com/id/Garduino-Gardening-Arduino/step7/Test-and- Calibrate-Your-Sensors/
[21]http://www.atmel.com/microsite/atmel_studio6/
[22] : http://en.wikipedia.org/wiki/Greenhouse
Anexe
A.1 Anexe: Exemple cod sisteme achiziție
Anexa A1.1: Senzor temperatura:
#include <OneWire.h>
// DS18S20 Temperature chip i/o
OneWire ds(10); // on pin 10
void setup(void) {
// initialize inputs/outputs
// start serial port
Serial.begin(9600);}
void loop(void) {
//For conversion of raw data to C
int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
byte i;
byte present = 0;
byte data[12];
byte addr[8];
if ( !ds.search(addr))
{
Serial.print("No more addresses.\n");
ds.reset_search();
return;
}
{
Serial.print("R=");
for( i = 0; i < 8; i++)
{
Serial.print(addr[i], HEX);
Serial.print(" ");
}
{
if ( OneWire::crc8( addr, 7) != addr[7])
{
Serial.print("CRC is not valid!\n");
return;
}
{
if ( addr[0] == 0x10)
{
Serial.print("Device is a DS18S20 family device.\n");
}
else if ( addr[0] == 0x28)
{
Serial.print("Device is a DS18B20 family device.\n");
}
else
{
Serial.print("Device family is not recognized: 0x");
Serial.println(addr[0],HEX);
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
Serial.print("P=");
Serial.print(present,HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print( OneWire::crc8( data, 8), HEX);
Serial.println(); //Conversion of raw data to C
LowByte = data[0];
HighByte = data[1];
TReading = (HighByte << 8) + LowByte;
SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
Whole = Tc_100 / 100; // separate off the whole and fractional portions
Fract = Tc_100 % 100;
if (SignBit) // If its negative
{
Serial.print("-");
}
Serial.print(Whole);
Serial.print(".");
if (Fract < 10)
{
Serial.print("0");
}
Serial.print(Fract);
Serial.print("\n");
//End conversion to C
}
Anexa A1.2:Senzor temperatura si umiditate:
//KY015 DHT11 Temperature and humidity sensor int DHpin = 8;
byte dat [5];
byte read_data ()
{
byte data;
for (int i = 0; i < 8; i ++)
{
if (digitalRead (DHpin) == LOW)
{
while (digitalRead (DHpin) == LOW); // wait for 50us
delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
if (digitalRead (DHpin) == HIGH)
data |= (1 << (7-i)); // high front and low in the post
while (digitalRead (DHpin) == HIGH); // data '1 ', wait for the next one receiver
}
}
return data;
}
void start_test ()
{
digitalWrite (DHpin, LOW); // bus down, send start signal
delay (30); // delay greater than 18ms, so DHT11 start signal can be detected
digitalWrite (DHpin, HIGH);
delayMicroseconds (40); // Wait for DHT11 response
pinMode (DHpin, INPUT);
while (digitalRead (DHpin) == HIGH);
delayMicroseconds (80); // DHT11 response, pulled the bus 80us
if (digitalRead (DHpin) == LOW);
delayMicroseconds (80); // DHT11 80us after the bus pulled to start sending data
for (int i = 0; i < 4; i ++) // receive temperature and humidity data, the parity bit is not considered
dat[i] = read_data ();
pinMode (DHpin, OUTPUT);
digitalWrite (DHpin, HIGH); // send data once after releasing the bus, wait for the host to open the next Start signal
}
void setup ()
{
Serial.begin (9600);
pinMode (DHpin, OUTPUT);}
void loop ()
{
start_test ();
Serial.print ("Current humdity =");
Serial.print (dat [0], DEC); // display the humidity-bit integer;
Serial.print ('.');
Serial.print (dat [1], DEC); // display the humidity decimal places;
Serial.println ('%');
Serial.print ("Current temperature =");
Serial.print (dat [2], DEC); // display the temperature of integer bits;
Serial.print ('.');
Serial.print (dat [3], DEC); // display the temperature of decimal places;
Serial.println ('C');
delay (700);
}
Anexă A1.3 Senzor lumină:
int sensorPin = A5; // select the input pin for the potentiometerint ledPin = 13;
// select the pin for the LEDint sensorValue = 0;
// variable to store the value coming from the sensor;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
Serial.println(sensorValue, DEC);
}
Anexă A2 Exemple cod instrumente control
Anexă A2.1 Releu control
int relay = 10; // relay turns trigger signal – active high;
void setup ()
{
pinMode (relay, OUTPUT); // Define port attribute is output;
}
void loop ()
{
digitalWrite (relay, HIGH); // relay conduction;
delay (1000);
digitalWrite (relay, LOW); // relay switch is turned off;
delay (1000);
}
Anexă A3 Instrumente de intrare/ieșire
Anexă A3.1 Display Touchscreen
// drawCircle example
#include <stdint.h>
#include <TFTv2.h>
#include <SPI.h>
void setup()
{
TFT_BL_ON; //turn on the background light
Tft.TFTinit(); //init TFT library
Tft.drawCircle(100, 100, 30,YELLOW); //center: (100, 100), r = 30 ,color : YELLOW
Tft.drawCircle(100, 200, 40,CYAN); //center: (100, 200), r = 10 ,color : CYAN
Tft.fillCircle(200, 100, 30,RED); //center: (200, 100), r = 30 ,color : RED
Tft.fillCircle(200, 200, 30,BLUE); //center: (200, 200), r = 30 ,color : BLUE
}
void loop()
{
}
Anexă A3.2 Modul alarmă vizuală
void setup () {
pinMode (redpin, OUTPUT);
pinMode (greenpin, OUTPUT);}void loop () {
for (val = 255; val> 0; val–)
{
analogWrite (greenpin, val);
analogWrite (redpin, 255-val);
delay (15);
}
for (val = 0; val <255; val++)
{
analogWrite (greenpin, val);
analogWrite (redpin, 255-val);
delay (15);
} }
Anexa A3.3: Exemplu cod buzzer:
// KY012 buzzer activ
int speakerPin = 8;
void setup ()
{
pinMode (speakerPin, OUTPUT);
}
void loop ()
{
analogWrite (speakerPin, 255);
delay (50);
analogWrite (speakerPin, 0);
delay (10);
}
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: Monitorizarea Si Controlul Unei Sere (ID: 162866)
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.
