Licențăstanralucamădălina [610953]

UNIVERSITATEA “LUCIAN BLAGA” DIN SIBIU
FACULTATEA DE INGINERIE
DEPARTAMENTUL DE CALCULATOARE ȘI INGINERIE ELECTRICĂ

SISTEM AUTOMATIZAT
DE CULTURĂ A FLORILOR
ÎN SERE

Conducător științific : Prof. dr. ing. Adrian FLOREA

Absolvent: [anonimizat] – Mădălina STAN
Specializarea: Calculatoare

2
Cuprins
Cuprins ………………………….. ………………………….. ………………………….. ………………………….. …………………….. 2
Capitolul 1. Introducere ………………………….. ………………………….. ………………………….. …………………………. 4
1.1 Sera. Concepte generale ………………………….. ………………………….. ………………………….. …………… 4
1.2 Stadiul actual al serelor ………………………….. ………………………….. ………………………….. …………….. 5
1.3 Scopul și obiectivele proiectului ………………………….. ………………………….. ………………………….. … 6
1.4 Structura pe capitole ………………………….. ………………………….. ………………………….. ………………… 7
Capitolul 2. Tendințe în procesul de automatizare și control al serelor ………………………….. ………………….. 9
2.1 Metode de control prin temporizare ………………………….. ………………………….. ………………………. 9
2.2 Controlul ON/OFF ………………………….. ………………………….. ………………………….. ………………….. 10
2.3 Metoda bazată pe controlul PID ………………………….. ………………………….. ………………………….. . 10
2.4 Metoda bazată pe rețele neuronale (ANN) ………………………….. ………………………….. ……………. 11
2.5 Metoda bazată pe algoritmi genetici (GA) ………………………….. ………………………….. ……………… 13
2.6 Metoda FLC ………………………….. ………………………….. ………………………….. ………………………….. . 14
2.7 Caracteristici referitoare la parametri climatici ai plantelor ………………………….. …………………. 14
Capitolul 3. Componentele și structura serei ………………………….. ………………………….. ……………………….. 16
3.1 Prezentarea generală a serei ………………………….. ………………………….. ………………………….. …… 16
3.2 Elemente componente ale serei ………………………….. ………………………….. ………………………….. . 18
3.2.1 Senzorul de temperatură SNS TMP 10 K ………………………….. ………………………….. …………. 19
3.2.2 Senzorul de lumină ………………………….. ………………………….. ………………………….. ………….. 22
3.2.3 Senzorul de umiditate sol ………………………….. ………………………….. ………………………….. … 24
3.2.4 Displayul LCD ………………………….. ………………………….. ………………………….. ………………….. 26
3.2.5 Ledurile de semnalizare ………………………….. ………………………….. ………………………….. …… 29
3.2.6 SG90 9g Micro Servo ………………………….. ………………………….. ………………………….. ……….. 31
3.2.7 Arduino Mega2560 ………………………….. ………………………….. ………………………….. …………. 32
3.3 Comenzile dispozitivelor de acționare ………………………….. ………………………….. …………………… 34
3.3.1 Comanda pompei de apă ………………………….. ………………………….. ………………………….. …. 34
3.3.2 Comandarea ventilatorului ………………………….. ………………………….. ………………………….. . 35
3.3.3 Comandarea becului ………………………….. ………………………….. ………………………….. ……….. 37
Capitolul 4. Implementarea software a aplicației ………………………….. ………………………….. ………………….. 38
4.1 Controlul componentelor serei prin Arduino Ide ………………………….. ………………………….. ……. 39
4.1.1 Diagram ă UML a aplicație Arduino ………………………….. ………………………….. ……………….. 52

3
4.2 Comanda si monitorizarea parametrilor microclimatici prin intermediul interfetei c# …………. 53
4.2.1 Diagramă UML a aplicație c# ………………………….. ………………………….. ………………………… 62
4.3 Rezultate experimentale ………………………….. ………………………….. ………………………….. …………. 63
Capitolul 5. Concluzii și dezvoltări ulterioare ………………………….. ………………………….. ………………………… 69
5.1 Concluzii ………………………….. ………………………….. ………………………….. ………………………….. …… 69
5.2 Dezvoltări ulterioare ………………………….. ………………………….. ………………………….. ………………. 70
Capitolul 6. Bibliografie și Webografie ………………………….. ………………………….. ………………………….. …….. 72

4
Capitolul 1.
Introducere

„Computer science is an empirical discipline. […] Each new machine that is built is an
experiment. Actually constructing the machine poses a question to nature; and we listen for the
answer by observing the machine in operation and analyzing it by all analytical and
measurement means available. Each new program that is b uilt is an experiment. It poses a
question to nature, and its behavior offers clues to an answer.”
Allen Newell (1975)
Computer Science as Empirical Inquiry: Symbols and Search. p. 114

1.1 Sera. Concepte generale
O seră este o încăpere formată dintr -un acoperiș și pereți, realizată din sticlă sau plastic,
care este utilizată în cultivarea dar și în protejarea acelor plante ce nu suportă anumite
temperaturi din timpul anului.
Se utilizează tot mai mult serele din policarbonat deoarece plăcile din acest material au
două camere de aer. Un alt avantaj al plăcilor de policarbonat față de sticlă este acela că sunt
foarte rezistente la șocuri și nu se sparg. Serele din policarbonat sunt folosite mai des și pentru că
sunt bune izolatoare, menținând temperatura în seră, un factor foarte important pentru plante.
Datorită faptului că temperatura este menținută, costurile devin și ele mult mai scăzute.

Fig 1.1 Seră de flori

5
După temperatura obținută, în funcție de cerințele plantelor, se disting [1]:
• sere reci, cu temperatură între 8 – 10°C,
• sere temperate, cu temperatură între 18 – 20°C,
• sere calde, cu temperatură între 25 – 30°C.
Cultivarea în seră este o afacere avantajoasă, deoarece pe piață sunt cereri foarte mari pe
tot parcursul anului, iar aceste cantități pot fi date doar dacă factorii de mediu pot fi controlați,
lucru care poate fi realizat doar în sere.
Cultura obținută într -o seră este cu atât mai avantajoasă cu cât sunt respectați următorii
pași:
• În funcție de specia fiecărei plante trebuie să se țină sub control condițiile de
microc limat: temperatura, lumina, apa ,
• Lucrările de îngrijire a cul turilor trebuie făcute la timp ,
• Răsadurile plantate să fie crescute în condiții bune.

1.2 Stadiul actual al serelor
Viața noastră de zi cu zi este tot mai influențată de tehnologie și se fac eforturi mari
pentru ca totul să devină cât mai automatizat. Aceste lucruri s -au resimțit și asupra serelor, astfel
ele au devenit tot mai automatizate, ajungând în momentul de față să avem sere la care se
monitorizează automat factorii de mediu care afectează culturile cum ar fi: circulația aerului,
umiditatea, temperatura, lumina.
Astfel serele actuale permit configurarea de la distanță a fac torilor de mediu, vizualizarea
raportelor de sta re, comandarea dispozitivelor de acționare precum și detecți a avariilor care apar .

6
1.3 Scopul și obiectivele proiectului
Lucrarea de față constă în monitorizarea și controlul unei sere de flori inteligentă. Am
ales această temă cu scopul de a îmbunătăți întregul ciclu de creștere a florilor în sere, care duce
în cele din urmă la o crește re a comerțului de flori dar și la reducerea efortului uman în ceea ce
privește întreținerea acestora.
Această monitorizare automatizează factorii de mediu ce afectează culturile. Astfel
controlul climei crește producția de calitate și reduce pierderile prin:
• Dezvoltarea plantei într -un mediu controlat ,
• Economisirea de timp și energie pentru activitățile de aerisire, irigație, încălzire,
iluminat ,
• Controlul permanent asupra parametrilor care influențează dezvoltarea plantei ,
• Scăderea costurilor cu angajații .
Datorită faptului că florile iubesc mediile calde și umede, scopul principal al unei sere
este asigurarea unei cantități rezonabile de căldură, lumină și umiditate, astf el plantele obțin
condițiile ideale pentru creștere și dezvoltare.
Principalul beneficiu al utilizării unui sistem automat și controlat de irigare este acela că
florile nu o să mai înceapă să se usuce și nu le vom mai putea înneca accidental, iar mai mult
decât atât vom ajunge să utilizăm mai puțină apă iar florile noastre să își mențină nivelul optim
de umiditate.
Florile pe lângă fapt ul că ne înfrumusețează viața, joacă un rol important pentru sănătatea
oamenilor deoarece ele absorb gazele nocive și gener ează oxigen pur, acesta fiind unul dintre
motivele pentru care trebuie să avem grijă de ele.
Câteva exemple de beneficii ale florilor sunt:
• Purificarea aerului ,
• Atragerea energiilor negative și a undelor electromagnetice ,
• Eliminarea toxinelor,

7
• Creșterea umidității din aer,
• Eliminarea amoniacului ,
• Are grijă sa absoarbă poluanții emiși de calculatoare, imprimante etc.
Scopul principal al acestei lucrări este dezvoltarea unei aplicații hardwa re-software
dedicate control ului automatizat al culturilor de flori din seră, creării unui climat favorabil pentru
creșterea și cultivarea culturilor de flori, realizării unui sistem de monitorizare în timp real a
factorilor de mediu, precum si creării unui sistem de alertare în cadrul apariției unor fenomene ce
pot afecta culturile de flori (umiditate scăzută , temperatură care depășește pragul de referință
setat, luminozitate scăzută , etc).
Principalele obiective ale lucrării sunt:
• Dezvoltarea unui sistem har dware compus din procesor AtMega 2560 și placă
Arduino, pom pă de apă, senzor lumină, senzor umiditate, senzor temperatură, bec,
ventilator, leduri, etc. ,
• Implementarea unei aplicații C în mediu de programare Arduino IDE prin care se
pot controla automat toate componentele folosite ,
• Implementarea unei aplicații C# în mediu de programare Visual Studio 2015 în
care putem vizualiza comporta mentul serei și îi putem seta manual condițiile de
mediu dorite ,
• Crearea unei baze de date cu aju torul căreia vom avea un istoric a tot ceea ce se
întâmplă în seră.

1.4 Structura pe cap itole
Lucra rea de față este structurată pe 5 capitole.
În primul capitol sunt prezentate concepte generale privind construcția serelor,
proprietățile necesare menținerii serei în condiții optime, stadiul actu al al acestora precum și
scopul ș i obiectivele proiectului.

8
În cel de -al doilea capitol s -a prezentat metode moderne prin c are serele ar putea fi
controla te și atutomatizate , facându -se un studiul bibliografic , pentru aflarea acestor informații
precum și caracteristicile parametrilor microclimatici.
În capitolul trei sunt descrise conceptele și structura serei. S -a început de la o prezentare
generală a serei , a structuri i serei după care s -au ilustrat elementele componente folosite î n
realizarea standului experimental. Tot în acest capitol au fost preze ntate și schemele de comandă
pentru dispozitivele de acționare.
În cel de -al patrulea capitol s -a prezentat modul în care s -a implementat funcționarea
întregului sistem. S-a pornit de la detalierea implementări i de nivel hardware, continuând cu cea
realiz ată în mediul de program are Arduino IDE și ulterior cu detalier ea implementării la nivel
software , adică realizarea unei interfețe ș i salvarea într -o bază de date prin intermediul limbajului
C# din mediul de programare Visual Studio 2015. În ultima parte s -au preze ntat și rezultate ale
evoluției sistemului implementat .
Ultimul cap itol este dedicat concluziilor și dezv oltărilor ulterioare.

9
Capitolul 2. Tendințe în procesul de automatizare și control
al serelor

Pornind de la agricultura tradițională ce era practicată în câmpuri deschise, pe parcursul
anilor aceasta s -a dezvoltat fiind practicată protejat în sere și ulterior, utlizând tehnici de
automatizare, ajungând la un grad ridicat de eficiență.
Inițial, cultivarea în sere presupunea parcurgerea manuală a mai multor operații:
• Prepararea soluțiilor nutritive pentru a asigura un pH optim,
• Manipularea controlului irigației (porn irea manuală a pompelor de apă),
• Ventilația , pentru a asigura un microclimat optim.
În prezent, datorită tehnolo giilor de nivel înalt, activitățile mai sus enunțate sunt realizate
utilizând temporizatoare, controlere de tip ON/OFF, precum și controlere PID (Proportional
Integral Derivative). În mod obișnuit programarea acestor sisteme și calibrarea lor se bazează pe
modele matematice precise.
În articolul intitulat “Trends in Automated Systems Development f or Greenhouse
Horticuture” sunt prezentate principalele metode aplicate pentru controlul climatului serelor.
Aceste cunoștințe au fost aplicate pentru optimizarea operațiilor din sere . Ca o consecință a
aplicării acestor metode putem spune că aceas ta a dus la creșterea calitativă și cantitativă a
recoltelor. Metodele folosite pentru optimizare și control sunt atât clasice , bazate pe temporizare,
controlul on/off, cât și soluții software bazate pe rețele neuronale și algoritmi genetici, respectiv
rețele de tip fuzzy logic.

2.1 Metode de control prin temporizare
Această metodă a fost prima utilizată în sere pentru lucrul cu actuatori: pompe de apă,
motoare cu ajutorul cărora se pot închide sau deschide geamuri, ventilatoare utilizate pentru
răcire sau sisteme de încălzire. Aceste metode de contro l prin temporizare sunt programate de
către cei care dețin serele.

10
Avantajul acestei metode este acela că senzorii n u necesită programare, dar are
dezavantajul că cel care folosește această m etodă trebuie să aibă cunoștințe despre cultura și
condițiile microclimatice și să supravegheze continuu pentru a menține condițiile optime de
creștere și dezvoltare a culturilor.

2.2 Controlul ON/OFF
Această metodă este cea mai simplă formă de control cu feedback. Scopul acestei a este
de a menține parametrii doriți în limitele stabilite sau de a schimba ace ste limite pe baza unui
program . Control ul ON/OFF poate fi descris matematic astfel [2]:
𝑈(𝑠)={𝑈𝑚𝑎𝑥,𝑖𝑓 𝑒>0
𝑈𝑚𝑖𝑛,𝑖𝑓 𝑒<0
unde 𝑈(𝑠) este variabila de control, 𝑈𝑚𝑎𝑥 și 𝑈𝑚𝑖𝑛 reprezintă limita maximă și limita
minimă a operației de control iar e reprezintă eroarea între valoarea cit ită și valoarea
maximă(minimă) admisă , e fiind o v aloare impusă de către programator pentru a nu exista
variații bruște ale com enzilor ON/OFF.
Această metodă este cea mai folosită în cadrul automatizării serelor și are la bază
conceptul de cauză -efect de exempl u cauza este lipsa umidității ,iar efectul este acțiunea ce
pornește pompa.
Avantajul acestei metode este că, condițiile climatice pentru orice tip de cultură pot fi
ajustate ușor, sunt rentabile și nu necesită costuri mari. Dezavantajul este că pot apărea c onflicte
între parametrii condiți ilor microclimatice.

2.3 Metoda bazată pe controlul PID
Această metodă îmbunăt ățește metoda On/Off deoarece are în vedere un set point care
îmbunătățește dinamica procesului. Totuși acestă me todă prezintă unele inconvenient e deoarece
este o metodă destul de greu de impleme ntat. Sistemul este controlat prin intermediul unor
funcții de transf er ce descriu starea sistemului. Metoda clasică bazată pe cont rolul PID este
precisă, și spre deosebire de metoda prezentată mai sus oferă un grad mai mare de încredere.

11
Diagrama bloc a control er-ului PID este următoarea [2]:

Fig 2.1 Diagrama bloc a controlerului PID
Unde intrarea 𝑅(𝑠) reprezintă valoarea variabilei de control date de către utilizato r, 𝐻(𝑠)
reprezintă feedback -ul iar eroarea este obținută cu ajutorul următoarei ecuații: 𝐸(𝑠) = 𝑅(𝑠) – 𝐻(𝑠),
𝑈(𝑠) reprezint ă intrarea blocului controlabil (controlul aplicat asupra lui 𝐺(𝑠)) obținută utilizând
reprezentarea matematică a unui controler general PID conform ecuației : 𝑈(𝑠) = 𝐾𝑝+𝐾𝑖
𝑠+𝐾𝑑(s),
𝐺(𝑠) este blocul controlabil rep rezentat de o funcție matematică , 𝐾𝑝 factorul proporțional, 𝐾𝑖
factor integrativ 𝐾𝑑 factor derivativ iar 𝑌(𝑠) este ieșirea.

2.4 Metoda bazată pe rețele neuronale ( ANN )
Acest algoritm de învățare numit Artificial Neuronal Networks primește un set de date,
pentru a -l învăța și generează apoi rezultate care reprezintă predicții despre anumite fenomene.
Această metodă a fost utilizată pentru a optimiza funcționarea unui efect de seră, dar s -a
tras concluzia că , deși este o metodă foarte bună, care poate fi folosită pe scară la rgă pentru
automatizarea serelor , are dezavantajul că necesită costuri mari, calcule foarte multe si seturi de
date de dimensiuni mari pentru realizarea algoritmilor.
ANN es te aplicat mai mult pentru a obț ine metode de estimare. O astfel de estima re a fost
realizat ă de către Abeli Koupai care în 2009 a estimat cantitatea de apă evaporat ă parțial de către
plantele din sere, utilizând o rețea neuronală care primea ca set de date , valori ale temperaturii,
umidității, radiației solare și a vitezei vântului. Rețeaua n euronală este de tip perceptron
multi strat și folosește alg oritmul de învățare de tip back -propagation Levenbergh Maquardt

12
pentru estimarea temperaturii. Rețeaua mai poate fi folosită în cazul predicției nivelului de dioxid
de carbon și a temperaturii din seră , pe baza unui istoric al parametrilor microclimatici. Schema
rețelei este prezentată în figura de mai jos:

Fig 2.2 Schema rețelei ANN [2]
În partea stângă avem nivelul de intrare în rețea . Fiecare neuron realizează un calcul local
care transformă intrările în ieșiri . Acest calcul este cunoscut sub numele de funcție de activare și
constă din ecuații algebrice s au diferențiale.
Nodurile de pe fiecare nivel sunt conectate la nodurile de pe nivelul următor prin
intermed iul unei legături, iar fiecare legătură are o pondere numerică care îi corespunde. Pentru a
determina valoarea nodurilor de pe nivelul ascuns și de ieșire se utilizează formula :

Fig 2.3 Determinare valoare noduri de pe nivel ascuns [2]
unde 𝑛𝑗 reprezint ă nodul la care dorim să î i determinăm valoarea, 𝑛𝑖 este un nod de pe un
nivel anterior iar 𝑤𝑖,𝑗 reprezintă ponderea, care face legătura între nodul i și j.
Se utilizează tipuri diferite de funcții de activare în funcție de codificările intr ărilor în
rețea :

13
• de tip gaussian prin formula :

Fig 2.4 Formulă determinare funcție de activare de tip gaussian [2]

• sigmoidal cu formula :
.
Fig 2.5 Formulă determinare funcție de activare de tip sigmoidal [2]

2.5 Metoda bazată pe algoritmi genetici ( GA)
Algoritmul genet ic reprezintă o tehnică de optimizare pentru rezolvarea problemelor
complexe. Această metodă se bazează pe teoria evoluției speciilor introdusă de C. Darwin .
Algoritmii genetici fac parte din categoria algoritmilor evolutivi deoarece utili zarea operațiilor
de selecție, de mutație, de încrucișare sau recombinare fac ca și căutarea euristică să se inspire
din procesul natural al evoluției. Algoritmii genetici folosesc o populație de soluții , fiecare
soluție purtând numele de cromozom, ale unei probleme de op timizare care pentru a ajunge la
soluții mai bune trece prin modificări și procese de evoluție . În procesul de evoluție sunt generați
cromozomi aleator i și datorită faptului că acest algoritm este unul iterativ , se obține o nou ă
generați e la fiecare iterație, iar în cadrul acesteia , prin intermediul indivizilor din populația
curentă se creează o nouă populație prin aplicarea operațiilor de încrucișare, recombinare și
mutație. În cadrul algoritmului genetic fiecare cromozom sau individ și fiecare soluție are o
valoare numită fitness care reprezintă calitatea soluției și aceasta poate să fie ale asă pentru a
genera următorii cromozomi în procesul de selecție, dacă calitatea soluției are o valoare mare .
Această metodă are avantajul că nu sunt necesare cunoștințe foarte multe pentru a rezolva
o problemă și că poate fi adaptată ușor la orice problemă de optimizare. Dezavantajul este că
necesită timp în funcție de mărimea populației , neavând nicio garanție că soluția găsită este cea
optimă .

14
GA a fost utilizat și în sere pentru a dezvolta modele de optimizare aplicate: pentru a
îmbunătății controlul serei, pentru a contribui la adaptarea controlului serei în regiunile în care
clima este diferită și pentru calibrarea și adaptarea modelelor climatice .

2.6 Metoda F LC
Această metodă intitulată Fuzzy Logic Control (FLC) este un instrument matematic
utilizat pentru a modela sisteme neliniare și pentru a dezvolta controlere complexe. Sistemele
complexe care nu permit folosirea altor tehn ici de modelare utilizează FLC. Cu ajutorul unui
sistem FLC se poate controla temperatura ș i umiditatea dintr -o seră în care sistemul primește ca
intrări valor ile temperaturii și umidității iar la ieșire va rezulta închiderea și deschiderea ferestrei
cât și funcționarea po mpei de apă. Datorită faptului că se bazează puternic pe matematică, este o
alternativă bună pentru dezvoltarea climatizării și poate fi implementată prin tehnologii cu
costuri reduse.
Studiile actuale referitoare la culturi/sere nu vizează doar simpla aut omatizare și
monitorizare a parametrilor microclimatici ci și controlul acestora în vederea optimizării
consumului de energie pentru alimentarea serelor. In “ Greenhouse microclimatic environment
controlled by a mobile measuring station” autorii au implementat un sistem mobil bazat pe reț ele
de senzori care să le permită preluarea de date atât din interiorul cât și exteriorul serei,
înbunătățind în acest fel calitatea rezultatelor obținute. Au creat un sistem expert folosind reguli
fuzzy pentru gestionarea parametrilor microclimatici și luarea deciziei în vederea optimizării
consumul de energie.

2.7 Caracteristici referitoare la parametri climatici ai
plantelor
Aloe vera este o plantă care n u trebuie să lipsească din nici o locuință deoarece pe lângă
beneficiile sale multiple, aceasta elim ină și toxinele din aer. F ace parte din familia
Aspho delaceae și datorită faptului că este de origine din Madagascar, Africa și Arabia , ea
necesitând și unele condiții climatice mai stric te pentru a putea fi crescută în România. Aloe vera

15
iubește căldura , ea nu poate să reziste la temperaturi scăzute și se dezvoltă foarte repede în medii
calde. Preferă un sol uscat care permite apei să se scurgă repede și un nivel ridicat de
luminozitate. Nerespectarea acestor factori climatici se poate observa foarte ușor deoarece planta
devine maronie atunci când este expusă la soare prea mult, frunzele ei devin aplecate când nu are
destu la lumină, dacă nu se observă o creștere a florii înseamnă că trebuie schimbat ghiveciul
deoarece nu are loc pentru dezvoltare, iar dacă “moare” cu sigurantă rădăcina a fost distrusă din
cauza temperaturilor prea scăzute sau a udatului în abundență.
FAMILIA
ASPHODELACEAE
PLANTA
ALOE VERA Temperatură Umiditate Luminozitate

22 – 25 °C
5 – 40 %
crescută
FAMILIA
ASPARAGALES
PLANTA
ORHIDEE

20 – 26 °C

50 – 70 %

medie
FAMILIA
MORACEAE
PLANTA
FICUS

12-24 °C

50 – 80%

medie
FAMILIA
BEGONIACEAE
PLANTA
BEGONIA

15 – 20 °C

70 – 80 %

crescută
Tabel 2.1 Parametri climatici ai unor specii de plante

16
Capitolul 3 . Componentele și structura serei
3.1 Prezentarea generală a serei

Fig 3.1 Schemă control seră
Sera este realizată dintr -o cutie de plastic transparentă. Aceasta conține trei tipuri de
senzori: senzor de temperatură, senzor de umiditate și senzor de lumină.

17
În momentul în care senzorul de temperatură va indica o valoare mai mare de 25 de grade
Celsius , valoare pe care o pu tem vizualiza atât în interfață cât și pe d isplay -ul LCD, un ventilator
va fi pornit pentru a aduce temperatura la valoarea optimă necesară florilor din seră. În cazul în
care temperatura depășeste limitele maxime, pentru a evita umiditatea ridicată, ceea ce duce la
apariția patogenilor și mucegaiu lui, un micro servo motor va fi comandat astfel încât să deschidă
un gemuleț, iar în momentul în care valoarea temperaturii r evine la limitele normale acesta se va
închide. În cazul în care temperatura din seră va ajunge la o valoare sub limitele normale atunci
un bec va fi comandat să se aprindă pentru a încălzi sera, becul fiind comandat cu ajutorul unui
releu.
Senzorul de umiditate ne va furniza informații cu privire la procentul de umiditate al
solului florilor, valoare ce va fi afișată și pe display. Atunci când procentajul de umiditate este
prea scăzut, fapt ce ne atenționează că solul a devenit secetos, o pompă va fi comandată cu
ajutorul unui releu și aceasta va uda solul florii până în momentul în care senzorul de umiditate
ne furnizează informația că avem un sol umed în care floarea se poate dezvolta corect. In acest
fel se evită și inundarea cu apă a plantei.
În momentul în care senzorul de lumină detectează un nivel de intensitate a luminii mult
prea scăzut față de necesarul dezvoltării sănătoase a florilor, atunci se va comanda aprinderea
luminii. Noaptea, acest nivel de inte nsitate trebuie să fie redus pentru câteva ore , pentru ca planta
să poată să absoarbă oxigen și să elibereze dioxid de carbon și vapori de apă.
Pe tot parcursul acestui ciclu de control și menținere a condițiilor de creștere a florilor,
apariția erorilor în ceea ce privește temperatura prea mare sau prea mică, um iditatea solului prea
scăzută, spațiu prea întunecat, se vor afișa pe display cât și în interfață mesaje semnificati ve de
atenționare . În ceea ce privește funcționarea becul ui, ventilatorului, micro servo motorului sau
pompei, pentru fiecare dintre aceste a se va aprinde un led de culoare albastră aflat în partea de
sus a displayului, iar când acest led este stins semnifică faptul că dispozitivul de acționare nu a
fost comandat .

18
3.2 Elemente componente ale serei
Sera este alcătuită din componentele menționate în subcapitolul anterior și acestea vor fi
detaliate în continuare.
Nr. Crt. Descriere Cantitate utilizată
1. Arduino Mega 2560 x 1 buc
2. Modul senzor LDR x 1 buc
3. Servomotor SG90 9g x 1 buc
4. Led x 7 buc
5. Senzor de temperatură SNS TMP 10 K x 1 buc
6. Senzor de umiditate FC -28 x 1 buc
7. Rezistențe 4 buc x 3,3 K
1 buc x 10 K
8. Pompă de apă x 1 buc
9. Fire ~ 100 buc
10. Baterii AA 1 buc x 1,5V
11. Sursă alimentare 1 buc x 5V
12. Display LCD 2×16 x 1 buc
13. Bec 75 W x 1 buc
14. Modul releu 5V x 3 buc
15. Ventilator x 1 buc
16. Breadboard x 1 buc
17. Arduino IDE Program SW
18. Visual Studio 2015 Program SW

Tabel 3.1 Ne cesar realizare seră detaliat

19

(17) (18)
Fig 3.2 Necesar realizare seră

3.2.1 Senzor ul de temperatură SNS TMP 10 K
Senzorul de temperatură este în general un dispozitiv care a fost proiectat pentru a
determina cât de cald sau cât d e rece este într -un spațiu. SNS TMP 10 K are ieșirea proporțională
cu temperatura în grade Celsius. Acesta nu trebuie calibrat extern de oarece are o precizie de +/ –
0,1 grade Celsius într-un interval de -30 grade Celsius până la + 100 grade Celsius [6].

Fig 3.3 Senzorul de temperatură SNS TMP 1 0K

20
Tensiunea de intrare a acestui senzor poate să fie între 0 și 5 V , iar rezistența internă a
acestuia este de 10K Ω la 25 de grade Celsius, aceasta scăzând odată cu creșterea temperaturii și
crește atunci când temperatura scade [6].
Princ ipiul de lucru al senzorului SNS TMP 10K este asemănător cu cel al unui divizor
rezis tiv:

Fig 3.4 Schemă conectare Fig 3.5 Divizor de tensiune
senzor SNS TMP 10K rezistiv [7]
Un divizor de tensiune determină o tensiune de iesire 𝑉𝑜𝑢𝑡, care reprezintă o par te din
tensiunea de intrare 𝑉𝑖𝑛, deci 𝑉𝑖𝑛 este distribuită între componentele divizorului. În schema
divizorului de tensiune rezistiv se poate observa că cele două rezistențe : 𝑅1 și 𝑅2 conectate în
serie, având tensiunea de intrare 𝑉𝑖𝑛 aplicată pe rezistențe iar tensiunea de ieșire 𝑉𝑜𝑢𝑡 este luată
din punctul de legă tură dintre cele două rezistențe. Relația între 𝑉𝑖𝑛 și 𝑉𝑜𝑢𝑡 este următoarea :
• Când 𝑉𝑜𝑢𝑡= 0 este următoarea [7]:

Fig 3.6 Relație între Vout și Vin , Vout=0

21
• Dacă 𝑅1 = 𝑅2 atunci aveam relația [7]:

Fig 3.7 Relație între Vin și Vout, 𝑅1=𝑅2

Acest divizor de tensiune este folosit în cazul senzorului SNS TMP 10K pentru ca
microcontrolerul să poată sa măsoare rezistența senzorului. În schema de mai sus putem observa
că senzorul este conectat în serie cu o rezistență de 10 KΩ astfel formând divizorul de tensiune,
iar la capătul celălalt al divizorului este aplicată tensiunea de 5V. Pinul analog 𝐴0 al
microcontrolerului este conectat la punctul din cent ru al divizorului care face legă tura între cele
două rezistențe, astfel putând să determinăm tensiunea de mijloc și , cu ajutorul tensiunii de
intrare și a rez istenței cunoscute , vom putea determina valoarea rezistenței senzorului, care
atunci când senzorul va citi o temperatură mai mare va scădea iar cand acesta va citi o
temperatură mai mică va crește.
Configurarea hardware a senzorului este urmă toarea:
• Se conecteaz ă prin intermediul unui fir roșu senzorul la breadboard și de acolo
prin intermediul altui fir roșu la pinul de 5V al plăcii Arduino ,
• Se conecteaz ă prin intermediul unui fir negru un capăt al rezistenței de 10 KΩ la
breadboard și de aici cu un al t fir negru la pinul de Gnd al plăcii Arduino ,
• Se conecteaz ă cu ajutorul unui fir albastru cent ru dintre senzor si rezistența de 10
KΩ la pinul analogic A0 de pe placa Arduino

Fig 3.8 Conectarea senzorului de temperatură SNS TMP 10K la placa Arduino

22
3.2.2 Senzor ul de lumină

Senzorul de lumină este un dispozitiv luminos deoarece furnizează informații cu privire
la intensitatea luminii, acesta generând un semnal de ieșire. Acești senzori se mai numesc și
dispozitive fotoelectrice [5].
Dispozitivele fotoelectrice pot fi grupate în două categorii principale, cele care generează
energie electrică atunci când sunt ilu minate, cum ar fi Photo -voltaic sau Photo -emisive etc. , și
cele care își schimbă proprietățile electrice, cum ar fi Photo -rezistoare sau Photo-
conductoare [8].
În cazul celule lor fotoconductoare acestea variază rezistența electrică în prezenț a luminii.
Fotoconductivitatea rezultă din faptul că lumina atinge un material semiconductor care
controlează fluxul curent prin acesta. Astfel, dacă apare mai multă lumină aceasta va crește
curentul pentru o anumită tensiune aplicată . Cel mai frecvent material fotoconductiv este sulfura
de cadmiu (CdS ) utilizată în fotocelule LDR.

Fig 3.9 Modul senzor lumină
Senzorul de lumină fotoconduct iv nu produce energie electrică, acesta doar își schimbă
proprietățile fizice în prezenț a energiei luminoase. Cel mai cunoscut dis pozitiv foto conductiv
este fotorezistor ul întâlnit la LDR, module senzoriale care își schimbă rezistența electrică atunci
când intensitatea luminii se modifică .

23
Fotorezistorul este un dizpozit iv semiconductor care utilizează energia electrică pentru a
putea controla fluxul de electroni și bineînțeles curentul care trece p rin el. Acestea mai sunt
numite și rezistențe dependente de lumină și sunt alcă tuite dintr -un material semiconductor, cum
este sulfura de cadmiu, care își modifică rezistența electrică de la câ teva mii de ohm i în prezența
întunericului la câteva sute de ohm i în prezenț a luminii [8].
În concluzie modulul senzor LDR este utilizat pentru a detecta intensitatea luminii.
Acesta este alcătuit din 4 pini: un pin de ieș ire digital, unul analogic, un pin de alimentare ș i unul
pentru masă, o rezistență LDR care sca de în funcț ie de intensitatea luminii, adică cu câ t
intensitat ea este mai mare cu a tât rezistența va fi mai mică , dintr -un potențiometru cu ajutorul
căruia poate fi schimbată sensibilitatea LDR pentru lumină ș i dintr-un led care se va aprinde în
momentul în care semnalul de ieșire digital e pe high, iar în cazul semnalului de ieșire analogic
acesta variază în funcț ie de intensitatea luminii. Tensiunea de intrare a ace stui senzor poate fi
intre 3,3 și 5 Volț i.[9]
Configurarea hardware, adică modul de a urmări schema de mai jos este :
• Se conectează pinul VCC prin int ermediul unui fir de culoare roșie la
breadboard și de aici la pinul de 5V de pe placa Arduino, cu ajutorul altui fir
roșu,
• Se conectează pinul GND prin intermediul unui fir de culoare neagru la
breadboard și de aici la pinul de Gnd de pe placa Arduino, cu ajutorul altui fir
negru ,
• Se conectează prin intermediul unui fir de culoare galben pinul de ieșire digital
la pinul digital cu numă rul 36 de pe placa Arduino ;

Fig 3.10 Conectare senzor de lumină la placa Arduino

24
3.2.3 Senzor ul de umiditate sol
Senzorul de umiditate sol detectează cantitatea de apă din sol. Sensibilitatea acestui
senzor poate fi reglată cu ajutorul potențiometrului existent. Tensiunea de intrare este între 3,3 și
5 Volți[10].
Senzorii de umiditate ai solului măsoară indirect conținutul de apă prin utilizarea unor
proprietăți ale solului, cum ar fi : rezistența electrică, constanta dielectrică sau interacțiunea cu
neutronii . Relația dintre proprietatea măsurată ș i umiditatea solulu i trebuie calibrată și aceasta
poate varia în funcție de factorii de mediu, cum ar fi tipul solului, temperatura sau
conductivitatea electrică.

Fig 3.11 Modul senzor de uminitate
Senzorul de umiditate es te alcătuit din două componente:
• componentă rezistivă ,
• un circuit amplificator.
Circuitul rezistiv (alcătuit din două sonde), se introduce în sol și își schimbă
rezistivitatea în funcț ie de umiditatea solului. Acesta are doi pini care sunt conectaț i la un circuit
amplificator care la râ ndul lui este conectat la Arduino. Circuitul are patru pini:
• Un pin de alimentare (Vin),
• Un pin de ground (GND),
• Un pin de i eșire analogică ,
• Un pin de ieșire digitală .

25
Modulul conține, de asemenea, un potențiometru care va stabil i valoarea pragului de
referință . Ulterior această valoare de prag va fi comparată prin intermediul LM393. Pe modul
este poziț ionat un led ce va indica dacă sa atins sau nu valorea de prag.
Atunci când cantitatea de apă este prea mare, solul devine mai conductiv din punct de
vedere electric ceea ce înseamnă că va exista o rezist ență mai mică, deci vom avea un nivel de
umiditate mai mare. Da că pămâ ntul este uscat acesta va conduce slab electricitatea, ceea ce
înseamnă că solul va conduce mai puțină energie e lectrică, rezultâ nd o rezistență mai mare,
așadar înseamnă că există un nivel mai mic de umiditate.
Senzorul de umiditate al solului ne poate furniza informații î n două moduri :
• modul analogic,
• modul digital.
Utilizând ieșirea digi tală a senzorului de umiditate vom obține o valoare logică pozitivă
sau negativă , la ieșirea circuitului comparator, în funcți e de pragul setat.
Utilizând ieșirea analogică de la senzorul de umiditate a solului FC -28, vom obține valori
eșantionate cuprinse între 0 si 1023. Deoarece dor im ca umiditatea să fie vizualizată în procente,
aceste valori vor fi mapate î ntre 0% și 100%. [10]
Configurare a hardware, adică modul în care schema de mai jos poate fi urmărită :
• Se conectează prin intermediul a două fire cei doi pini ai senzorului cu cei
doi pini de pe circuitul amplificator prin intermediul firelor de legătură ,
• Se conectează pinul de alimentare la pinul de 5V, prin intermediul unui fir
de culoare roșie la breadboard și de aic i prin intermediul altui fir de culoare
roșie la placa Arduino ,
• Se conectează pinul de GND prin intermediul unui fir de culoare negru la
breadboard și de aici cu ajutorul altui fir de culoare negru spre pinul GND al
plăcii Arduino ,
• Se conectează pinul de ieșire analogică prin inte rmediul unui fir de culoare
galben la pinul analog ic 𝐴1 al plăcii Arduino .

26

Fig 3.12 Conectare senzor umiditate la placa Arduino

3.2.4 Display ul LCD
Display -ul folosit în cadrul acestui proiect este WH16S fiind u n display LCD ce are 16
coloane și 2 rânduri.

Fig 3.13 Display LCD 2×16

LCD -urile din această categorie sunt foarte populare și utilizate pe scară largă în
proiectele electronice deoarece sunt bune pentru afișarea informațiilor precum datele senzorilor.
Un alt argument pentru folosirea acestor tipuri de display este prețul.

27
Acest display conține 16 pini, pini ce au următoarele semnificații:
• pinul de ground,
• pinul de alimentare (Vcc),
• pinul V0, fiind pinul ce poate fi utilizat pentru a putea controla contrastul
afișajului ,
• pinul de selectare registru (RS), fiind folosit atunci când dorim să trimit em
comenzi sau date,
• pinul de citie/scriere (r/w), prin care se selectează modul, adică dacă vrem să
citim sau să scriem,
• pinul enable (e), pin ce permite scrierea pinilor de date ,
• pinii 𝐷0 – 𝐷7, pini prin care se face transferul datelor ,
• pinul de anod ș i catod (A si K), pini ce sunt utilizaț i pentru luminarea
ecranului .
Pentru conectarea lui cu A rduino vom folosi doar 4 pini de intrare digi tali, pinii 𝐷4 – 𝐷7.
Configurarea hardware, adică cum trebuie urmărită schema de mai jos , este:
• Se conecteaz ă pinul GND, prin intermediul unui fir de culoare negru la pinul
GND al plăcii Arduino ,
• Se conecteaz ă pinul VCC, prin intermediul unui fir de culoare roșu la pinul
de 5V al plăcii Arduino ,
• Se conecteaz ă pinul RS (selectare registru), prin intermediul unui fir de
culoare mov la pinul PWM 12 al plăcii Arduino ,
• Se conecteaz ă pinul de citire/scriere, prin intermediul unui fir de culoare
albastru la pinul PWM 11 al plăcii Ar duino ,
• Conecteaz ă pinul 𝐷4, prin intermediul unui fir de culoare galben la pinul
PWM 5 al plăcii Arduino ,
• Conecteaz ă pinul 𝐷5, prin intermediul unui fir de culoare galben la pinul
PWM 4 al plăcii Arduino ,

28
• Conecteaz ă pinul 𝐷6, prin intermediul unui fir de culoare galben la pinul
PWM 3 al plăcii Arduino ,
• Conecteaz ă pinul 𝐷7, prin intermediul unui fir de culoare galben la pinul
PWM 2 al plăcii Arduino .

Fig 3.14 Conectare display la placuța Arduino
Principalele informații ce se afișează pe dis play, în cadrul proiectului cur ent sunt
urmă toarele:
Valoare factori
climatici Mesaj Detalii

22 – 25 °C
OK Mesajul este afișat în momentul în care senzorul de
temperatură determină o valoare optimă a
temperaturii

>= 26 °C
T+ Mesajul este afișat în momentul în care senzorul de
temperatură determină o valoarea prea ridicată a
temperaturii

<= 21 °C
T- Mesajul este afișat în momentul în care senzorul de
temperat ură determină o valoare prea scă zută a
temperaturii

29

1 – 40 %
OK Mesajul este afișat în momentul în care senzorul de
umiditate sol determină o valoare optimă a
umidități solului

0 %
H- Mesajul este afișat în momentul în care senzorul de
umiditate sol determină o valoare prea scă zută
umidității solului

>= 41 %
H+ Mesajul este afișat în momentul în care senzorul de
umiditate sol determină o valoare prea ridicată a
umidității solului
Intuneric OFF Mesajul este afișat în momentul în care senzorul de
lumină detectează lipsa luminii
Lumină ON Mesajul este afișat în momentul în care senzorul de
lumină dete ctează prezența luminii
Tabel 3.2 Informații display

3.2.5 Leduri le de semnalizare
În cadrul lucrării prezente se indică cu leduri de culoare alba stră funcționarea
dispozitivelor de acționare :
Nr. led Status Condiție Detalii

LED1 ON
Ventilator pornit
Temperatura
> 25°C Ledul este aprins , în momentul în
care condiția de r ăcire a serei este
îndeplinită, respectiv ventilatorul
a fost comandat.

LED1 OFF
Ventilator oprit
Temperatura
< 25 °C Ledul este stins , în momentul în
care condiția de răci re a serei nu
este îndeplinită, respectiv
ventilatorul nu a fost comandat.

LED2 ON
Pompă pornită
Umiditate
< 5% Ledul este aprins , în momentul în
care condiția de udare a florii este
îndeplinită, respectiv pompa a
fost comandată.

LED2 OFF
Pompă oprită
Umiditate
> 40 % Ledul este stins , în momentul în
care condiția de umiditate ridicată
a florii es te îndeplinită, respectiv
pompa nu a fost comandată.

30

LED3 ON
Bec aprins
Temperatura < 22 °C Ledul este aprins , în momentul în
care condiția de încălzire a serei
este îndeplinită, respectiv becul a
fost comandat.

LED3 OFF

Bec stins

Temperatura > 22 °C Ledul este stins , în momentul în
care condiția de încălzire a serei
nu este îndeplinită, respectiv
becul nu a fost comandat.

LED4 ON
Geam deschis
Temperatura > 27 °C Ledul este aprins , în momentul în
care condiția de răcire a serei este
îndeplinită, respectiv
servomotorul a fost comandat.

LED4 OFF
Geam închis
Temperatura < 27 °C Ledul este stins , în momentul în
care condiția de răcire a serei nu
este îndeplinită, respectiv
ventilatorul nu a fost comandat.
Tabel 3.3 Semnificație leduri
Configurarea hardware, adic ă modul de a urmării schema de mai jos , este:
• Se conectează catodul fiecărui led prin intermediul unui fir de culoare negru la
pinul de GND al plăcii Arduino,
• Se conectează anod ul fiecărui led la câte o rezistență de 3.3 K, cu ajutorul c ăreia
curentul este limitat astfel încât ledul să nu se ardă, prin intermediul unui fir de
culoare roșu și din rezistență cu un alt fir de culoare roșu la un pin digital (46, 48,
50, 52) al plăcii Arduino.

Fig 3.15 Conectare leduri avertizare la plăcuța Arduino

31
3.2.6 SG90 9g Micro Servo
Servomotorul permite controlarea precisă a poziției ung hiulare, dar și a vitezei , respectiv
accelerației. Se pot trimite comenzi servomotorului astfel încât axul acestuia să fie rotit în poziția
dorită. Pentru deschiderea geamului a m ales acest servomotor deoarece este mic și ușor, putând
fi pus cu ușurință în locul dorit și are și o putere mare de ieșire. Acest tip de servomotor poate fi
rotit aproximativ 180 de grade, 90 de grade în fiecare direcție.

Fig 3.16 Servomotor SG90 9g
SG90 9 g Micro Servo este o combinație de 4 componente:
• unelte de plastic,
• motor DC,
• control er,
• potenț iometru.
Acest tip de se rvo motor poate fi conectat la Arduino în felul următor:
• firul roșu (+) va fi conecta t la pinul de 5 V de pe Arduino,
• firul negru ( -) va fi conectat l a pinul de Ground de pe Arduino,
• firul portocaliu (semnal) va fi conectat la pinul digital 9 de pe Arduino.

32
Configurarea hardware, adic ă modul de a urmării schema de mai jos este :
• Se conecteaz ă pinul GND prin intermediul unui fir de culoare negru la breadboard
și de aici la GND -ul plăcii Arduino,
• Se conecteaz ă pinul VCC prin intermediul unui fir de culoare roșu la breadboard
și de aici la pinul de 5V al pl ăcii Arduino,
• Se conecteaz ă pinul de semnal prin intermediul unui fir de culoare galben la pinul
pwm 9 al pl ăcii Arduino .

Fig 3.17 Conectarea servomotorului la plăcuța Arduino

3.2.7 Arduino Mega2560
Plăcuța de dezv oltare folosită în proiectul curent este Arduino Mega2560. Acesta este un
microcontrol er bazat pe ATmega2560. Microcontrol er-ul are 54 de pini digitali de intrare/ieș ire
dintre care 14 pini au ieșire PWM(Pulse Width Modulation), 16 intrări analogice, 4 porturi
seriale UART (Universal Asynchronous Receiver -Transmitter), un buton de resetare, o mufă
de alimentare , o conexiune USB și un oscilator cu quarț de 16 Mhz [11].

Fig 3.18 Arduino Mega2560

33
Arduino Mega2560 are două posibilități de alimentare : prima este prin intermediul unei
conexiu ni USB, iar cea de a doua prin intermediul unei surse externe de alimentare, cum ar fi un
adaptor AC -la-DC sau o baterie. Prin legarea l a masă și la alimentare a capetelor bateriei se
realizează conectarea de la baterie.
Poate să apară fenomenul de funcționare instabilă a microcontrolerului dacă este
alimentat la mai puțin de 7 V, deoarece pinul de 5V s -ar putea să furnizeze mai puțin de 5 V .
Placa de dezvoltare poate fi deterioarată în cazul în care este alimentată cu o tensiune mai mare
de 12V, deoarece acest lucru poate duce la o supra încălzire a regulatorului de tensiune.
Intervalul de tensiune recomandat de că tre producător este de 7 -12V[11].
Pinii de tensiune și alimentare sunt după cum urmează :
• VIN reprezint ă tensiunea de intrare a microcontrolerului în cazul în care se
utilize ază o sursă de alimentare externă. Cu ajutorul acestui pin pot fi
adăugate tensiuni de alimentare, sau se poate accesa tensiunea de
alimentare, dacă ea se face prin intermediul con ectorului de alimentare
externă,
• 5V este un regulator de tensiune care este folosit în cadrul alimentă rii
microcontrol erului și a celorlalte componete ale aces tuia. Acesta poate fi dat
de către USB sau de o sursă de tensiune de 5V ,
• 3,3V este o alimentare furnizată de c ătre regulatorul de tensiune al
microcontrolerului . Curentul maxim care îl furnizează es te de 50 mA ,
• GND sunt pini i de împământare.
Memoria microprocesorului ATmega2560 este de 256 KB. Ea are, de asemenea, 8 KB
SRAM și 8 KB EEPROM [11].
Cu ajutorul lui A rduino pot fi realizate sisteme capabile să ‘perceapă’ și să ‘c ontroleze’
lumea înconjurătoare .

34
Acest instrument este open -source și deși pe piață există o gamă foarte variată de sisteme
de de zvoltare bazate pe microcontrol er, avantajele pe care le are Arduino față de aceste sisteme
sunt[12]:
• Cost de achiziție redus ,
• Poate fi folosit pe orice sistem de operare (Linux, Windows sau MacOS).
Majoritatea p lăcilor fiind limitate la sistemul de operare Windows,
• Este un mediu de progr amare simplu și ușor de învățat,
• Este open source, atât placa de dezvoltare cât și mediul de programare.

3.3 Comenzile dispozitivelor de acționare
Toate procesele ce au loc în cadrul proiectului curent sunt c oordonate de către
microcontroler ul Arduino Mega 2560. Acesta, pe baza stărilor citite de la senzori (sau prin
intermediul interfeței C#) furnizează comenzi către următoarele dispozitive de acționare :
• Pompa de apă ,
• Ventilatorul ,
• Becul .

3.3.1 Comanda pompei de apă
Pompa este comandată prin intermediul unui releu. Borna de normal de schis de pe releu
este conectată la sursa de alimentare. Releul are î n alcătuirea lui o bobină care are rolul de a
acționa cuplarea ș i decuplarea re leului, aceasta fiind alimentată la 5V curent cont inuu prin
intermediul unui tranz istor NPN, la care se aplică impulsuri de comandă provenite de la
microcontrol er. În momentul î n care se aplică impulsuri pe baza tranzis torului, acesta se va
deschide ș i va permite t recerea curentului î ntre drena și sursa sa, așadar pe bobina releului va
trece o tensiune de 5 V olți ne cesară comutăr ii lui, în urma că reia acesta va trece din starea de
normal deschis în starea de închis și pompa va fi acționată.

35
Configurarea hardware, adic ă modul de a urmării schema de mai jos este :
• Se conectează pinul VCC al pompei de apă prin intermediul unui fir de culoare
roșu la pinul de COM al releului ,
• Se conectează pinul NO(Normal Open) al releului cu ajutorul unui fir de culoare
roșu la breadboard și de aici prin intermediul unui alt fir la pinul de 5V al plăcii
Arduino ,
• Se conectează pinul GND al releului prin intermediul unui fir de culoare negru la
breadboard și de aici la pinul GND a l plăcii Arduino, cu un alt fir,
• Se conectează pinul VCC al releului prin intermediul unui fir de cuoare roșu la
breadboard și de aici la pinul de 5V al plăcii Arduino, cu un alt fir ,
• Se conectează pinul de semnal al re leului prin intermediul unui fir de culoare
albastru la pinul digital 44 al plăcii Arduino .

Fig 3.19 Conectarea pompă de apă la plăcuța Arduino

3.3.2 Comandarea ventilatorului
Ventilatorul are rolul de a aduce temperatura ridicată la o temperatură optimă și acesta
este comandat prin intermediul unui releu. În momentul în care se aplică impulsuri de coman dă
provenite de la microcontrol er pe baza tranzistorului NPN acesta se va deschide și va permite
trecerea curentului între drenă și sursa sa. În acest moment pe bobina releului se va afla o
tensiune de 5 Volți necesară comu tării acestuia din starea de normal închis în starea de normal

36
deschis. Borna normal deschis a releului fiind conectată la potențial de 5 Volți, în momentul
comutării, astfel pe bobina releului va trece o tensiune de 5 Volți necesară comutării din starea
de normal deschis în starea de normal închis. Așadar ventilatorul va începe să se rotească.
Configurarea hardware, adic ă modul de a urmării schema de mai jos , este:
• Se conectează pinul VCC al ventilatorului prin intermediul unui fir de culoare
roșu la pinul de COM al releului ,
• Se conectează pinul NO (Normal Open) a l releului cu ajutorul unui fir de culoare
rpșu la breadboard și de aici prin intermediul unui alt fir de culoare roșu la pinul
de 5V al plăcii Arduino ,
• Se conectează pinul GND al releului prin in termediul unui fir de culoare negru la
breadboard și de aici la pinul GND a l plăcii Arduino, cu un alt fir de culoare
negru ,
• Se conectează pinul VCC al releului prin intermediul unui fir de culoare roșu la
breadboard și de aici la pinul de 5V al plăcii Arduino, cu un alt fir de cvuloare
roșu,
• Se conectează pinul de semnal al re leului prin intermediul unui fir de culoare
albastru la pinul digital 42 al plăcii Arduino .

Fig 3.20 Conectare ventilator la plăcuța Arduino

37
3.3.3 Comandarea becului
Becul care încălzeș te sera este conectat prin intermediul unui rele u, pe borna de normal
deschis, la sursa de alimentare. Bobina releului ce acționează cuplarea și decuplarea releului este
alimentată la 5 V olți curent continuu prin intermediul unui tranzistor NPN pe baza căruia se
aplică impulsuri de coman dă provenite de la microcontrol er. În momentul în care se aplică
impulsuri pe baza tranzistorului, acesta se va deschide și va permite trecerea curentului î ntre
drenă și sursa sa, așadar pe bobina rel eului va trece o tensiune de 5 V olți necesară comutării
releului, în urma căreia acesta va trece din starea de normal deschis în starea de închis și becul va
fi acționat .
Configu rarea hardware, adică modul de a urmării schema de mai jos , este:
• Se conectează pinul VCC al becului prin intermediul unui fir de culoare roșu la
pinul de COM al releului ,
• Se conectează pinul NO (Normal Open) al releului cu ajutorul unui fir de culoare
roșu la breadboard și de aici prin intermediul unui alt fir de culoare roșu la pinul
de 5V al plăcii Arduino ,
• Se conectează pinul GND al releului prin intermediul unui fir de culoare negru la
breadboard și de aici la pinul GND a l plăcii Arduino, cu un alt fir de culoare
negru .
• Se conectează pinul VCC al releului prin intermediul unui fir de culoare roșu la
breadboard și de aici la pinul de 5V al plăcii Arduino, cu un alt fir de culoare
roșu,
• Se conectează pinul de semnal al re leului prin intermediul unui fir de culoare
albastru la pinul digital 40 al plăcii Arduino .

Fig 3.21 Conectarea becului la plăcuța Arduino

38
Capitolul 4. Implementarea software a aplicației

Fig 4.1 Arhitectura aplicației

În cadrul proiectului curent s-a realizat controlul și monitor izarea unei sere de flori pentru
care au fost necesare două component e software: o aplicație C #, pentru a putea viziona și ține
sub control fa ctorii microclimatici cu ușurinț ă, fără a depune efort și o aplicație Arduino prin
intermediul căreia se command ă dispozitivele de acționare și se preia datele de la senzori.
Arhitectura aplicației descrisă mai sus are următoarea funcționalitate : utilizatorul
acționează p rin intermediul interfeței C# alege un anu mit mod de funcționare (automat sau
manual) al serei, iar în cadrul celui manual se poate stabili direct comandarea dispozitivelor de

39
acționare pentru a menține factorii microclimatici în limite favorabile, trimitând toate aceste
decizii prin intermediul comunicației seriale către Arduin o.
Comenzile descrise mai sus vor fi recepționate de la interfața C # către microcontrol er,
care la rândul lui primește date de la senzori realizându -se astfel o comunicație bidirecțională .
Odată comandate aceste dispozitive, se va trimite tot prin intermediul comunicație seriale un
răspuns către interfața C#, astfel aceasta putând să ofere informații sigure utilizatorului despre
acțiunile petrecute î n seră în timp real. Toate aceste informații sunt reținute și mai apoi salvate
într-o baza de date, astfel utilizatorul putând verifica în orice moment dacă totu l a avut loc așa
cum el se aște pta sau eventuale analize ulterioare privind comportamentul plantelor în diverse
condiții.

4.1 Controlul componentelor serei pr in Arduino I de
Pentru controlul compon entelor serei a fost necesară instalarea soft -ului Arduino Ide
versiunea 1.8.5. După instalarea acestuia pentru a putea începe programarea componentelor este
necesar să se creeze un proiect și să se efectueze câteva setări care constau în a legerea tipului de
microcontrol er utilizat, a procesorului și a portului prin care Arduino va comunica cu interfața.
Crearea unui nou proiect se realizează prin următorii pași :
• Se selectează din meniul programului “File/New ” iar pentru ca aplicația să aibă
denum irea dorită tot de aici se alege “ Save as “, astfel având posibilitatea de a da
proiectului numele dorit

Fig 4.2 Creare și salvare proiect Arduino IDE

40
• Se selectează apoi tipul plăcii , astfel din meniul Arduino Ide se alege
“Tools/ Board ” și se alege din lista apărută tipul microcontrolerului utilizat ,

Fig 4.3 Configurare Arduino IDE

• Pentru a determina ce port de comunicare utilizează această plac ă se va merge î n
“Device Manager –ul” laptopului/ calculatorului utilizat și se va identifica după
cum arată imaginea de mai jos ,

Fig 4.4 Determinare port de comunicare

41

• Apoi , pentru a seta acest port de comunicare și din Arduino Ide vom alege din
meniul acestuia “Tools/Ports “ și com -ul aflat la pasul anterior

Fig 4.5 Setare port de comunicare
După parcurgerea acestor pași suntem aproape gata pentru a începe să scriem aplicația
dorită, dar înainte de aceasta la cr earea proiectului se observă apari ția a două fun cții “setup() ” și
“loop() ”. În funcția ”setup() ” se pune codul care dorim să s e execute o singură data iar în
“loop()” se adaugă codul care dorim să se execute în mod repetat. Mai trebuie cunoscut ș i modul
de verificare a codului, adică de a vedea dacă exi stă erori și modul de com pilare a codului, adică
încărcarea codului pe microcontrol er.

Fig 4.6 Informații rulare cod Arduino IDE

42
Exist ă două moduri de control și menținere a factorilor climatici :
• Modul automat ,
• Modul manual .
În continu are se va face referire la modul automat.
Pentru determinarea valorilor temperaturii și pentru comandarea creșterii sau scăderii ei,
primul pas este conectarea senzorului la pinii corespunzători și citir ea valorii temperaturii din
seră. Datorită faptului că senzorul de temperatură ne furnizează va lori, putem deduce ca acesta
trebuie conectat la un pin analogic de intrare al plăcuței Arduino . Pentru a configura acest lucru a
fost necesară apelarea funcț iei “pinM ode() ” în interiorul funcț iei “setup() ” . Funcț ia ” pinMode()
“ a primit ca parametrii de intrare un define reprezentând numă rul pinul ui analogic la care este
conectat senzorul și un parametru ce specifică direcția se mnalului (INPUT/OUTPUT).

Fig 4.7 Configurare pin temperature

Pentru a determina valoarea citită de pe pi nul analogic se apelează funcția
“analogRead() ” care va primi ca și parametru define -ul creat re prezentând pinul analogic 𝐴0 , iar
într-o variabi lă se va reține această valoare, însă ea nu reprezintă temperatura în grade Celsius .
Pentru a converti aceasta valoare, valoare ce reprezintă eș antioanele c onvertorului ADC, în grade
Celsius se vor face următoarele calc ule:

Fig 4.8 Determinare temperature

43
În aceste calcule avem urmă toarele :
• “𝑅0” avâ nd valoarea de 10000 ohm , ea reprezentând rezistența de 10 KΩ care a
fost conectată la sensor, formâ ndu-se astfel divizorul rezistiv,
• “1023 ” este valoarea maximă care poate fi citită de pe ADC ,
”temperaturaCitită_pin ” este valoarea cit ită de pe pin ,
• “B” este o valoare egală cu 3435 stabilită în datele tehnice ale s enzorului,
• Valoarea ” 0,09919 ” este determinată înmulț ind valoarea rezistenței de 10K cu
𝑒(−𝐵
𝑇0), 𝑇0 având valoarea 25 gr ade Celsius datorită faptului că rezistenț a internă
este de 10 K la 25 de grade Celsius, iar 273,15 este scă zută pentru a afla
temperatura în grade Celsius și nu î n Kelvin.
Valorile temperaturilor rezultate î n urma calcul elor de mai sus se pot observa și prin
intermediul opțiunii de vizualizare “Serial M onitor ” din Arduino IDE.

Fig 4.9 Valori temperatură vizualizate în Serial Port
Pentru men ținerea temperaturii calculate mai sus î n anumite lim ite prestabilite se vor lua
următoarele decizii, după cum urmează :
În caz ul în care temperatura din seră se află peste limita impusă se va porni un ventilator,
care este comanda t prin intermediul unui releu. Î n acest sens se va defini pinul digital la care este
conectat releul . S-a ales un pi n digital deoarece releul ce acț ionează ventilatorul necesită doar

44
valor i de ON/OFF (0 Volți respectiv 5 Volț i). Pentru configurarea direcț iei pinului s-a apelat
funcți a “ setup() ”, setând acest pin ca ș i ieșire (deorece se comandă releul). Î n cont inuare , prin
intermediul condiț iilor de decizi e se vor lua următoarele acț iuni:
1. Dacă temperatura este prea mare se va porni ventilatorul , punâ nd pinul d efinit mai
sus la valoare logică „1”. Aces t lucru se poate realiza utilizând funcț ia
“digitalWrite() ” care primeș te doi parametrii : primul este pinul l a care este conectat
releul i ar cel de al doilea este valoare logică a pinului,
2. Dacă temperatura este prea mică se va opri ventilatorul , punâ nd pinul definit mai sus
la valoare a logică „0”,
3. Dacă temperatura se află î n limitele prestabilite se va opri ventilatorul , punâ nd pinul
definit mai sus la valoare a logică „0”.

Fig 4.10 Automatizare ventilator

În cazul î n care tem peratura este mult prea ridicată va trebui ca vent ilatorul să fie pornit
dar pe lângă acesta sera să fie și aerisită . Acest lucru este î ndeplinit prin deschiderea unui geam
cu ajutorul unui servomotor. Pentru comandarea servomotorului ce are rolul închiderii sau
deschiderii geamului este necesară includerea bibliotecii “S ervo” precum și creearea unei
varia bile de acest tip cu ajutorul că reia prin inte rmediul funcției “a ttach() ” vom specifica pinul la

45
care este conectat servomotorul . După aceea se va cr eea o funcț ie care va primi ca parametru un
caracter prin care noi specificăm dacă vrem să deschidem geamul: ‘o’(dând ca paramentru la
funcți a “write()” valoarea 180 ) sau s ă închidem geamul : ‘c’( dând ca parametru la funcț ia
“write() “ valoarea 90).

Fig 4.11 Configurare și automatizare servomotor

În cazul în care temperatura din seră scade sub limita impusă , pentru menț inerea
parametrilor microclimatici în siguranță se va aprinde un bec care este comandat prin intermediul
unui releu .

46
S-a utilizat un bec pentru că 90% din energia sa este degajată sub formă de caldură .
În acest sens se va defini pinul digital la care este conectat releul. S -a ales un pi n digital
deoarece releul ce acționează ventilatorul necesită doar valori de ON/OFF (0 Volț i respectiv 5
Volți). Pentru configurarea direcț iei pinului s-a apelat funcț ia “setup() ”, setând acest pin ca ș i
ieșire (deorece se comandă releul). În continuare , prin intermediul condițiilor de decizie se vor
lua următoarele acț iuni:
1. Dacă valoarea temperaturii este prea scăzută becul se va aprinde,
2. Dacă valoarea temperaturii este prea ridicată becul se va stinge ,
3. Dacă valoarea temperaturii se află î n limitele impuse becul se va stinge .

4.12 Configurare și automatizare bec

Pentru determinarea valorilor umidităț ii și pentru a menține solul florii î n limitele
prestabilite, primul pas este conectarea senzorului la pinii corespunzători ș i citirea valorii
umidităț ii solului florii. Datorită faptului că senzorul de umiditate n e furnizează valori , putem
deduce c ă acesta trebuie conectat la un pin analogic d e intrare al plăcuței Arduino . Pentru a
confi gura acest lucru a fost necesară apelarea funcț iei “pinMode()” în interiorul funcț iei
“setup()”. Funcț ia ” pinMode() “ a primit ca parametrii de intrare un define reprezentând

47
numă rul pinului analogic la care este conectat senzorul și un parametru ce specifică direcția
semnalulu i (INPUT/OUTPUT).

Fig 4.13 Configurare senzor umiditate
Pentru a determina valoarea citită de pe pinul analogic se apelează funcția “analogRead()
“ care va primi ca și para metru define -ul creat reprez entând pinul analogic “A2” , iar într-o
variabil ă se va reține această valoare, însă ea nu reprezintă procentul de umiditatate. Pentru a
converti aceasta valoare, valore ce reprezintă eș antioanele convertorului ADC, în proce nte se va
folosi funcț ia “ map” care prime ște ca ș i parametrii:
• Valoarea citită de pe pinul analogic ,
• Valoarea minimă pe care senzorul o poate furniza ,
• Valoarea maximă pe care senzorul o poate furniza ,
• Valoarea minimă a senzorului eș antionată î n procente (0%) ,
• Valoarea maximă a senzorului eșantionată î n procente (100%) .

Fig 4.14 Determinare valoare umiditate

La fel ca și î n cazul temperaturii , rezultate le umidității obținute în urma convers ilor de
mai sus se pot observa și prin intermediul opț iunii de vizualizare “Serial M onitor “ din Arduino
IDE.
Pentru men ținerea umidității solului î n limitele prestabilite se va apela la utilizarea unei
pompe de apă , care este comandat ă prin intermediul unui releu. În acest sens se va defini pinul
digita l la care este conectat releul. S-a ales un pin digital deo arece releul ce acționează pomp a

48
necesită doar valori de ON/OFF (0 Volți respective 5 Volț i). Pentru configurarea direcției pinului
s-a apelat funcț ia “setup() ”, setând acest pin ca ș i ieși re(deorece se comandă releul).
În continuare , prin intermediul condiț iilor de decizie se vor lua următoarele acț iuni:
1. Dacă umiditatea solului florii este p rea mare se va opri pompa de apă , punâ nd
pinul definit mai sus la valoarea logică „0”. Aces t lucru se poate realiza utilizând
funcț ia “digitalWrite() ” care primeș te doi parametrii: primul este pinul la care este
conectat rel eul iar cel de al doilea este valoare a logică a pinului,
2. Dacă umiditatea solului florii este prea mică se va porni pompa de apă , punâ nd
pinul d efinit mai sus la valoare logică „1”,
3. Dacă umiditatea solului florii se află în limitele prestabilite se va opri pompa de
apă, punâ nd pinul d efinit mai sus la valoare logică „0”.

Fig 4.15 Automatizare pompă

Pentru a a sigura florii o iluminare optimă s-a utilizat un senz or de lumină . Datorită
faptului că senzorul de lumină detectează prezenț a întunericului sau a luminii, putem deduce că
acesta trebuie conectat la un pin digital de intrare al plăcuței Arduino . Pentru a confi gura acest
lucru a fost necesară apelarea funcț iei “pinMode()” în interiorul funcț iei “setup()”. Funcț ia ”

49
pinMode() “a primit ca parametrii de intrare un define reprezentând numă rul pinului digital la
care este conectat senzorul și un parametru ce specifică direcț ia semnalului (INPUT/OUTPUT).

Fig 4.1 6 Confi gurare senzor lumină

În funcți e de ceea ce detectează senzorul de lumină , se comandă aprinderea sa u stingerea
unor leduri legate î n serie . În acest sens se va defini pinul digital la care sunt conectate ledurile
.Pentru configurarea direcției pinului s-a apelat funcț ia “setup() ”, setând acest pin ca ș i ieșire. În
continuare , prin intermediul condiț iilor de decizie se vor lua următoarele acț iuni:
1. Dacă senzorul de lumină detectează î ntuneric atunci se va co manda
aprinderea ledurilor, punâ nd pinul definit mai sus la valoare a logică „1”.
Aces t lucru se poate r ealiza utilizând funcț ia “digitalWrite() ” care
prim ește doi parametrii: primul este pinul la care sunt conectate ledur ile iar
cel d e al doilea este valoare logică a pinului,
2. Dacă senzorul de lumină detectează lumina atunci se va co manda stingerea
ledurilor , punâ nd pinul d efinit mai sus la valoare logică „0”. Aces t lucru se
poate realiza utilizând funcț ia “digitalWrite() ” care primeș te doi
parametrii: primul este pinul la care sunt conectate ledurile iar cel de al
doilea este valoare logică a pinului.

50

Fig 4.17 Configurare și automatizare iluminare

În ceea ce privește modul manual temperatura ș i umidita tea se determină ca și în modul
automat diferenț a fiind aceea că nu se mai impun condiț ii pentru funcționarea automată .
Comenzile dispozitivelor de acț ionare (releu, servomotor) vor fi date manu al prin intermediul
interfeț ei C#.
Toate informaț iile prezentate mai sus sunt afiș ate pe un LCD vizibil utilizato rului. Pentru
aceasta a fost necesară includerea bibliotecii “LiquidCrystal ” și configurarea pinilor.

Fig 4.18 Configurare pini display
Un exemplu de afiș are este prezentat mai jos:

Fig 4.19 Afișare informații display

51
Cu ajutorul funcț iei “setCursor ()” se seteaz ă poziția de unde să înceapă mesajul care se
dorește să fie afiș at, cu ” clear ()” se cur ăță ecranul, iar cu “print()” se afi șează caracterele dorite.
Trebuie să se țină cont că fiind un display cu 16 coloane și două linii numărul de caractere scrise
pe o linie nu trebuie să depășească valoarea 16.

52
4.1.1 Diagram ă UML a aplicație Arduino

Fig 4.20 Diagramă Uml a aplicație Arduino

53
4.2 Comanda si monitorizarea parametrilor microclimatici
prin intermediul interfet ei c#
Pentru comandarea ș i monitorizarea parametrilor microclimatici s -a realizat o interfață
C# î n mediul de programare Visual Studio 2015 prin intermediul căre ia munca omului este
ușurată, acesta putâ nd vizualiza sau controla factorii microclimatici , fără nici un pic de efort, din
fața unui calculator/laptop.
Odată pornită această aplicație oferă posibilitatea de a alege modul în care se doreș te să
se comande și urmărească funcționalitatea serei(automat/manual ). În meniul aplicației există un
“Help ” în care sunt oferite detalii despre pașii care trebuie urmați pentru obț inerea rezultatului
dorit precum și o opțiune “Exit” care , dacă este selectată duce la părăsirea aplicaț iei sau ferestrei
accesată . Alegerea modului automat sau manual se realizează prin intermediul accesă rii unuia
dintre cele două butoane : “Mod automat ” sau ”Mod manual ”. În funcție de decizia luată se va
deschide o nouă pagină .

Fig 4.21 Pagină principală interfață

54
În cazul î n care modul ales a fost cel automat se va d eschide o nouă fereastră î n care, în
partea de sus există posibilitatea de a alege op țiunea “Help ” care oferă informa ții despre modul
de utilizare, opțiunea “Exit” care oferă posibili tatea de revenire la pagina de î nceput precum ș i
opțiunea “Com port ” prin intermediul că reia se poate realiza comunicarea serială între A rduino ș i
interfață . Pentru a deschide port ul comunicației seriale dintre A rduino și interfață se utilizează
componenta “serialP ort” din Toolbox -ul Vi sual Studio la care i se setează acelaș i port și viteză
de comunicaț ie cu Arduino , iar deschiderea propriu zisă se face prin utilizarea funcț iei “Open ()”,
funcț ie ce deschide portul comunicaț iei seriale. Dacă portul este liber va apă rea un mesaj ce
anunță că portul este deschis iar dacă portul este ocupat sau apare o eroare vom fi atenționaț i tot
prin apariț ia unui mesaj. Atunci câ nd dorim să trecem l a modu l manual portul trebuie închis ,
datorită faptului că în comunicația serială nu se po t trimite mai multe date deodată . Închiderea
portului se realizează cu funcț ia “Close() ”.

Fig 4.22 Deschidere/Închidere port

55
În momentul î n care portul de comunicare este pornit fereast ra pentru modul automat va arăta
ca în figura de mai jos:

Fig 4.23 Fereastră mod automat
În acest mod , după cum se poate observa mai sus, utilizatorul poate vizualiza temperatura
din seră , umiditatea solului , în partea din dreapta se poarte observa statusul fiecărei componente
iar în partea de jos se află un istoric cu toate acțiunile realizate de seră la interval de un minut .
Temperatura se transmite că tre interfață prin intermediul comunicați ei seriale cu A rduino .
În momentul î n care se deschide portul pentru a începe comunicaț ia , se trimite că tre A rduino ,
prin serial , o cheie sub forma unui caracter , iar în momentul î n care Arduino citeȘ te de pe serial
această cheie va începe comandarea ș i controlul î n mod automat a parametrilor climatici.
Valoarea t emperaturii citită de către senzor este trimisă prin serial către interfață împreună cu o
cheie , pentru ca interfaț a să recunoască ce anume este trimis de că tre A rduino. Trimiterea de la
interfață către A rduino s e face prin intermediul metodei “Write()” iar tr imitere a de la A rduino
către interfață se face prin intermediul metodei “Print() ” a clasei Serial.

56
Datele de la A rduino sunt recepțio nate în cadrul acțiunii de recepț ionare date create la
componenta “serialPort ”. În cadrul acesteia se citesc datele de pe serial cu metoda “ Read() ” ,
iar pentru funcția în care se afișează î n texbox -uri valorile tempera turii și umidităț ii și feedback –
urile acț iunilor, se utilizează metoda “ Invoke()” care crează un mecanism de sincroniza re pentru
toate firele de execuț ie. Așadar informațiile de pe interfață care se updatează vor fi executate
doar de firul de execuț ie principal, astfel nu vor mai exi sta conflicte între firele de execuț ie, iar
interfaț a nu va mai ajunge în ipostaza î n care nu știe ce să execute , retur nând astfel o exceptie.

Fig 4.24 Trimitere cheie interfață ->Arduino

Fig 4.25 Recepționare mesaje Arduino de la interfață

Fig 4.26 Trimitere date de la Arduino -> interfa ță

57

Fig 4.27 Recepționare mesaje interfață de la Arduino

În cazul î n care modul ales a fost cel manual se va deschide o altă fereastră în cadrul
căreia util izatorul va avea acces la acelaș i meniu ca și cel prezent at la modul automat . După
deschiderea portului , pentru comunicația serială , comunicț ie ce se realizează la fel ca și î n
cadrul modului automat , mod ul manual va oferi utilizatorului pe lângă valorile temperaturii și a
umidităț ii , posibilitatea de a avea acces la elementele de comand ă (geam, pompa etc. ).

58

Fig 4.28 Fereastră mod manual
În momentul în care utilizatorul selectează din interfață o aumită comandă , o cheie
asociată respectivei comenzi , caracterizată printr -un caracter , va fi trimisă că tre A rduino. Acesta
va citi ciclic datele trimise pe serial , va recepț iona această cheie iar prin intermediul unei
condiț ii decizionale aplicate cheii primite se va comanda componenta de acț ionare.

Fig 4.29 Comadare ventilator din interfață

59

Fig 4.30 Comandare ventilator Arduino
Toate acțiunile care au loc în seră sunt salv ate într -o baza de date împreună cu da ta și ora
la care acestea s -au petrecut, atât cele din modul manual cât ș i cele din modul automat , atfel î ncât
utilizatorul va avea la dispoziție aceste date.
Baza de date a fost creată cu ajutorul programul Visual Studio prin următorii paș i:
• Se accesează “ Server Explorer ” din meniul Visual Studio iar în câmpul “Data
Connection ” , se adaug ă o nouă conexiune și se dă numele dorit bazei de date ,

Fig 4.31 Creare baze de date

60
• După crearea bazei de date se va crea și un tabel prin alegerea op țiunii “Add n ew table ” ,
se va da un nume tabelului , se vor introduce c âmpurile dorite și se vor selecta proprietăț ile
acestor câmpuri ,

Fig 4.2 Inserare câmpuri bază de date și denumire tabel

• După crearea și selectarea câ mpurilor de mai sus se va selecta Update.
În baza de date adă ugarea și afișarea informațiilor se face în cadrul unei acț iuni a unui
timer care este setat la 60000 de ms.

Fig 4.32 Timer pentru adaugarea informațiilor în baza de date
Conexiune a la baza de date se realizează prin intermediul funcț iei “SqlConnection() ” care
primește ca și parametru ș irul de conexiune al bazei de date luat din proprietăț ile acesteia , iar cu
ajutorul metodei “Open()” se deschide aceasta conexiune. Valorile sunt inserate î n baza de date
prin intermediul un ui query prin car e se inserează în tabel în câ mpurile respective valorile
memorate. Pentru a nu avea erori în cazul în care în unele câ mpuri nu exita nici un mesaj sau
avem valori nule se verifică acest lucru, prin intermediul metodei “IsNullOr Empty ()”.

61

Fig 4.33 Inserare informații în baza de date
Afișarea informațiilor salvate în baza de date se realizează prin selectarea acestora cu
ajurorul unui query apoi prin intermediul metodei “SQLDataA dapter ()” se populeaz ă “DataS et”
iar apoi afi șează aceste date în in terfață î ntr-un “DataG rid”.

Fig 4.34 Afișare informații interfață

62
4.2.1 Diagramă UML a aplicație c#

Fig 4.35 Diagramă UML interfață C#

63
4.3 Rezultate experimentale
În urma punerii în funcționare a serei, pentru a se observa modul de func ționare
automată, s -au testat următoarele ipoteze :
• Temperatura din interiorul serei este peste limita admisă, umiditatea solului se
află peste limitele impuse iar in interiorul serei nu se află lumină.
Comportamentul serei este cel prezentat in imaginea de mai jos :

Fig 4.36 Rezultate obținute pe interfață în cazul temperaturii ridicate,umidității ridicate și
lipsei luminozității

64

Fig 4.37 Rezultate obținute fizic în cazul temperaturii ridicate,umidității ridicate și lipsei
luminozității
• Temperatura din interiorul serei este sub limita admisă , umiditatea solului se află sub
limitele impuse iar în interiorul serei se află lumină.
Comportamentul serei este cel prezentat in imaginea de mai jos :

Fig 4.38 Rezultate obținute pe interfață în cazul temperaturii scăzute,umidității sc ăzute și
prezenței luminozității

65

Fig 4.39 Rezultate obținute fizic în cazul temperaturii ridicate,umidității ridicate și lipsei
luminozității
• Temperatura din interiorul serei este cu mult peste limita admisa, umiditatea
solului se află sub limitele impuse iar in interiorul serei nu se afla lumina pentru că suntem în
intervalul orar setat. Comportamentul serei este cel prezentat in imaginea de mai jos :

Fig 4.40 Rezultate obținute pe interfață în cazul temperaturii foarte ridicate,umidității
scăzute și lipsei luminozității datorită intervalului orar

66

Fig 4.41 Rezultate obținute fizic în cazul temperaturii foarte ridicate,umidității scăzute și
lipsei luminozității datorită intervalului orar
În cadrul modului manual de funcționare al serei s -a acționat asupra comenzilor serei în
următoarele situații:
• Temperatură ridicată, umiditate scazută

Fig 4.42 Rezultate obținute pe interfață în cazul temperaturii ridicate,umidității scăzute în
modul manual

67

Fig 4.43 Rezultate obținute fizic în cazul temperaturii ridicate,um idității scăzute în modul
manua
• Temperatură scăzută, umiditate scăzută

Fig 4.44 Rezultate obținute pe interfață în cazul temperaturii scăzute,umidității scăzute în
modul manual

68

Fig 4.45 Rezult ate obținute fizic în cazul temperaturii scăzute,umidității scăzute în modul
manual

69
Capitolul 5. Concluzii și dezvoltări ulterioare

5.1 Concluzii
În urma realizării acestui proiect s-a constatat că un sistem pentru automatizarea
dispozitivelor de acționare a serei poate fi implementat doar după ce se face o analiză complexă
în acest domeniu.
În urma unei analize complexă a întregului sistem se poate c onstrui un design al aplicației
pe baza căruia se poate realiza și schema logică de conectare a senzorilor și dispozitivelor de
acționare , astfel putându -se începe implementarea.
Pe parcursul implementării acestui proiect, deși au fost respectate schemele logice de
conectare și design -ul aplicațiilor proiectate inițial, rezultatul obținut în prima fază de testare nu a
fost cel așteptat . O primă cauză s -a datorat faptului că senzorii nu au fost inițial bine calibrați. O
altă cauză a neconcordanței între proiectare și a rezultatului iniț ial s-a datorat anumitor conexiuni
fizice instabile între senzori, dispozitivele de acționare și dispozitivul de control(Arduino). De
aici se poate trage concluzia că un sistem automatizat nu poate oferi rezultatele dorite, oricât de
bine ar fi el gândit d in punct de vedere funcțional dacă senzorii nu sunt de calitate, calibrați și
bine puși la punct.
De asemenea s -a constatat că trebuie acordată o importanță deosebită asupra realizării
circuitelor electrice. Fără o proiectare foarte bună a acestora și fără o conexiune foarte bună între
componentele electrice, sistemul nu ar fi putut fi pus în funcțiune.
La nivelul implementării softului s-a constat faptul că resursele software ale
microcontrolerului Arduino p ot fi programate relativ ușor, dacă există cunoșt ințe medii de
programare. Dificultățile întâmpinate fiind legate de modul de comunicare al acestuia cu
interfața pentru transmiterea și recepționarea acestora de către interfață.
Standul acestui sistem a fost creat în mare parte din materiale artizanale fapt ce a
determinat ca pe parcursul funcționării, sistemul să nu își îndeplinească toate
funcționalitățile.După mai multe cercetări s -a constatat faptul că aceste atribuții neîndep linite în
unele momente se datorau cablajului realizat din fire de proastă calitate. După refacerea

70
întregului cablaj s -a constatat că performanțele sistemului au crescut în ceea ce privește
funcționarea între gului sistem și că fenomenul de apariție a unei funționări defectuase nu a mai
existat.
În cadrul contribuțiilor personale se poate include: modul în care a fost gândit și
implemetat algoritmul de funcționare al serei, standul sistemului, de asemenea unele componente
electronice care au fost utilizate pentru realizarea acestui proiect, au fost reciclate de la circuite
electrice si electronice vechi. Circuitele electrice și unele componente electronice au fost
realizate manual fiind lipite cu fludor, cu ajutorului letcon -ului. De asemenea toate schemele
electrice au fost obținute în urma unor documentări amănunțite, au fost atent gândite , testate și
verificate. De aici se poate trage conc luzia că acest proiect se poate realiza cu un cost redus care
nu depășeste 400 RON cea mai scumpă componentă hardware fiind placa de dezvoltare Arduino.

5.2 Dezvoltări ulterioare
Structura sistemul automatizat de cultură a florilor într -o seră poate fi îm bunătățită din
unele puncte de vedere pentru a crește performanțele sistemului.
În primul rând pentru îm bunătățirea acestui proces s -ar putea r ealiza o aplicație ce poate
fi utilizată de la distanță, de exemplu o aplicație pe telefon pentru care ar fi necesar un modul
Gsm care să permită microcontrolerului Arduin o să se conecteze la internet, să trimită și să
receptione ze mesaje și chiar să poată realiza apeluri vocale. Mai mult decât atât s -ar putea pune
și o cameră pentru a putea observa de la distanță în timp real tot ce se întâmplă în seră.Aceste
implementări ar crește foarte mult p erformanța sistemului deoarece totul ar putea fi controlat de
la distanță, utilizatorul ar putea observa în timp real tot ce se întâmplă în seră și mai mult decât
atât aceea camera ar avea rol și de păstrare a serei în siguranță . În cazul în care ar avea loc
funcționări defectuase utilizato rul ar putea fi anunțat prin intermediul unui mesaj, iar printr -o
recunoștere a vocii s -ar putea da comenzi vocale dispozitivelor de acționare în momentul în care
s-ar observa modificări și utilizatorul nu ar putea utiliza telefonul decât vocal. În cadrul a cestui
proiect s -ar mai putea implementa, pe viitor, și un sistem de eliminare a dăunătorilor(insecte,
moluște, șoareci).

71
O altă îmbunătăți re a sistemului ar fi utilizarea altor senzori cum ar fi senzori de calitate a
aerului , senzori de temperatură apă , chiar și realizarea unui sistem de încălzire /răcire a apei ,
senzori de detectare a dioxidului de carbon etc.
O îmbunătățire în ceea ce privește siguranța sistemului pe lângă camera de luat vederi, ar
fi implementarea unui sistem de alarmare și protecție pe ntru a ne intenționa din timp dacă există
persoane rău intenționate ce pătrund în seră.
Acestui sistem i s-ar putea aduce o mulțime de îm bunătățiri în funcție de mai mulți
factori.Mai sus sau prezentat doar o parte a îmbunătățirilor ce s -ar putea aduce asupra serei.

72
Capitolul 6. Bibliografie și Webografie

[1] https://ro.wikipedia.org/wiki/Ser%C4%83
[2] International Journal of Agricultural Research – Trends in Automated Systems
Development for Greenhouse Horticulture Article , 6(1):1 -9 · January 201 1
[3] Adrian Florea – The dynamic values prediction in the next generation
microprocessors , MatrixROM Publishing House, Bucuresti, 2005, ISBN 973 -685-980-0, (413
pg. + C D atasat).
[4]http://webspace.ulbsibiu.ro/adrian.florea/html/simulatoare/Cadru%20distribuit%20de
%20simulare%20(1).pdf
[5]http://www.horticultorul.ro/flori -de-apartament -gradina/floare -aloe-ingrijire -inmultire/
[6] https://www.olimex.com/Products/Components/Sensors/SNS -TMP10 K/
[7] https://ro.wikipedia.org/wiki/Divizor_de_tensiune
[8] https://www.electronics -tutorials.ws/io/io_4.html
[9] https://www.gearbest.com/sensors/pp_485909.html
[10] http://www.circuitstoday.com/arduino -soil-moisture -sensor
[11] Arduino – The Complete Beginner's Guide Paperback , November 27, 2016
[12] O. Postolache P. Girão1 M. Pereira, C. Grueau , H. Teixeira , M. Leal –Greenhouses
microclimate real -time monitoring based on a wireless sensor network and gis, XX IMEKO
World Congress Metrology for Green Growth September 9−14, 2012, Busan, Republic of Korea

Similar Posts