Sunteți pe pagina 1din 62

Universitatea Tehnică de Construcții din București

Facultatea de Hidrotehnică
Specializarea: Automatică și Informatică Aplicată

Sistem de monitorizare si
control de la distanta al unei
locuinte

Materie: ASIPSI Student:Paun Petre

București, 2020

1
Cuprins

INTRODUCERE...........................................................................................................................3
Motivarea alegerii temei..............................................................................................................3
Obiectivele propuse în cadrul lucrării.........................................................................................3

1. ASPECTE TEORETICE REFERITOARE LA „Monitorizare si control de la distanță


a locuinței”......................................................................................................................................4
1.1. Conceptul de clădire inteligentă...........................................................................................4
1.2. Scurt istoric al cladirilor inteligente.....................................................................................5
1.3. Avantajele economice ale unei clădiri inteligente................................................................7
1.4. Avantajele monitorizării de la distanță.................................................................................8
1.4.1. Accesibilitate.................................................................................................................8
1.4.2. Ușurința folosirii............................................................................................................8
1.4.3. Multiutilizare.................................................................................................................9
1.4.4. Abilitatea de a urmări istoricul......................................................................................9
1.4.5. Riscuri si flexibilitate....................................................................................................9
1.4.6. Eficiență.......................................................................................................................11

2. TEHNOLOGII ȘI INSTRUMENTE HARDWARE ȘI SOFTWARE FOLOSITE ÎN


IMPLEMENTAREA PROIECTULUI.................................................................................... 12
2.1. Microprocesorul.................................................................................................................12
2.2.Utilizarea platformei Arduino MEGA 2560 R3(ATMEGA 2560 + ATMEGA16U2).......13
2.3.Utilizarea Shield Ethernet W5100.......................................................................................15
2.4.Senzori utilizați....................................................................................................................16
2.4.1. Senzor de gaz MQ-2....................................................................................................16
2.4.2. Modul cu senzor de umiditate a solului.......................................................................17
2.4.3. Modul senzor de temperatură DHT11.........................................................................19
2.5.Alte componente ale proiectului..........................................................................................21
2.5.1. Leduri..........................................................................................................................21
2.5.2. Servomotor 9V............................................................................................................22
2.5.3. Pompă de apă...............................................................................................................25
2.5.4. Releu............................................................................................................................26

3.Elaborarea temei de proiectare...............................................................................................29

4. Diagrame..................................................................................................................................45
3.1. Diagrama de clase...........................................................................................................45
3.2. Diagrama de secventa.....................................................................................................46
3.3. Diagrama starilor............................................................................................................47
3.4. Diagrama cazurilor de utilizare......................................................................................47
3.5. Diagrama de activitate....................................................................................................48

2
4. CONCLUZIE...........................................................................................................................49

BIBLIOGRAFIE.........................................................................................................................50
ANEXA 1.PREZENTAREA CODULUI SURSĂ DE PROGRAMARE................................52

INTRODUCERE

Motivarea alegerii temei

În ultimii ani tehnologia s-a dezvoltat într-un ritm rapid în toate domeniile. Avansul
acesteia nu a ocolit însă sistemele automate pentru locuințe, tot mai multe case sau
apartamente transformându-se în locuințe inteligente. Sistemele de automatizare sunt suficient
de dezvoltate pentru a ușura viața omului.
Am ales să realizez un astfel de sistem în urma proiectelor la care am luat parte în
cadrul anilor de facultate. Proiectele mi s-au parut foarte interesante, motiv pentru care am
decis, pentru examenul de licenta, sa fac un proiect mult mai dezvoltat. În timpul stagiului de
pregătire, mi s-a oferit oportunitatea de a lucra la dezvoltarea unui astfel de sistem, astfel
intrând în contact cu cele mai noi tehnologii utilizate pe piață. În scurt timp am fost însărcinat
de către superiori cu gestionarea unei bune părți a proiectului, mai exact dezvoltarea părții de
programare și adaptarea acesteia la cerințele și nevoile clientului final, lucru ce a reprezentat
un motiv suplimentar pentru alegerea acestei teme.

Obiectivele propuse în cadrul lucrării

În cadrul dezvoltării sistemului cu titlul „Sistem inteligent de monitorizare a locuinței


de la distanță”, mi-am propus să întocmesc un plan de realizare care să-mi permită împărțirea
proiectului în mai multe părți, astfel evitându-se erorile neașteptate.

3
Punerea în funcțiune a ledurilor a fost prima etapă, alături de liniile de cod aferente.
Am adăugat 4 leduri, fiecare led reprezentând iluminarea unei încăperi. Totodată, am adăugat
și butoanele pentru aprindere/stingere lumini în layout-ul proiectului.
A doua etapă a fost punerea în funcțiune a servomotoarelor. După conexiunea lor la
plăcuța Arduino, am setat parametrii convenabili în grade, pentru a face rotație exactă. Faptul
acesta duce la blocarea și deblocarea ușilor casei cu succes.
Următoarea etapă a constat în montarea senzorului de gaz și ventilatorului (un cooler
de calculator), care reprezintă aerisirea. Aceasta se poate porni și opri utilizând butonul din
layout, dar are și o funcție automată, care pornește aerisirea imediat ce senzorul de gaz
detectează o concentrație ridicată de gaz. Mai mult, odată cu detectarea gazului, apare și un
nou buton, care, odată apăsat, deblochează ambele uși ale casei (în cazul în care acestea sunt
inițial blocate).
A patra etapă este reprezentată de configurarea sistemului de monitorizare și stropire a
solului. Utilizând un senzor de umiditate a solului, putem afla cât de uscat sau de umed este
solul unei plante. Dacă utilizatorul dorește, poate acționa butonul de „Stropire plantă”, care
va porni pompa de apă aflată într-un bazin plin. În acel moment apa va ajunge în solul plantei
până când utilizatorul oprește pompa din site sau până când resursele de apă se vor epuiza.
Ultima etapă în ceea ce privește conexiunile senzorilor se referă la senzorul de
temperatură și de umiditate. Rolul acestuia este simpla informare a utilizatorului cu privire la
temperatura interioară a casei, dar și a umidității locuinței.
Pentru realizarea obiectivelor mai sus menționate, am folosit tehnologii precum C,
HTML, CSS, însumând peste 300 de linii de cod scrise.

1. ASPECTE TEORETICE REFERITOARE LA


„Monitorizare inteligentă a locuinței de la distanță”

1.1 Conceptul de clădire inteligentă

Conceptul de clădire inteligentă reprezintă rezultatul unui mix între proiectarea și


construcția unei clădiri, arhitectura interioară și exterioară, tehnologiile de construcție folosite
în mod general, tehnologiile de ventilație, de comunicare, de încălzire, informatice, de
securitate, de iluminare etc.

4
În lucrarea de față, clădirea inteligentă va fi folosită pentru o descrie o structură sau un
ansamblu de structuri construite pentru a fi folosite pentru locuire, în scop profesional sau
pentru desfășurarea a diverse activități, de exemplu: blocuri, ansambluri de blocuri, clădiri de
birouri, spitale, clinici, clădiri administrative, bancare, centre culturale, sportive etc.) Excepție
fac clădirile destinate producției industriale.
Factorii care transformă o clădire într-o clădire inteligentă sunt acele facilități care
ușurează viața și sporesc confortul atât proprietarului sau administratorului, cât și locuitorilor
clădirii.
În ceea ce-l privește pe administrator, acesta poate monitoriza mult mai rapid, facil și mai
eficient bunăstarea clădirii (monitorizarea factorilor ambientali, securitatea, alarmarea internă
și externă), în condițiile unor costuri acceptabile.
De cealaltă parte, locuitorii clădirii se bucură de un confort crescut iar productivitatea
muncii acestora crește.
Pentru ambele părți este nevoie, însă, de facilități de comunicare și de acces informatic.
O clădire inteligentă este un sistem alcătuit din mai multe subsisteme diferite, care
interacționează între ele: subsisteme pentru utilități (alimentare cu apă, drenaje, etc),
subsistemul de asigurare a securității și alarmare, subsistemul surselor de alimentare cu
energie electrică (fără înreruperi), infrastructura (cablajele) pentru energia electrică și pentru
telecomunicații, subsistemul de tehnică informațională și telecomunicații, subsistemul de
reglare automată și supraveghere a distribuției diverselor tipuri de energie, centrul de
comandă și supraveghere.

Așadar, o clădire inteligentă este un concept complex, multidimensional, începând de


la proiectare, construcție, dotări, administrație și utilizare.

1.2 Scurt istoric al caselor inteligente

Creșterea complexității realizărilor din domeniul construcţiilor şi amenajării


locuinţelor au dus la transformarea de-a lungul timpului a căminului preistoric în căminul pe
care îl avem astăzi. Pentru perfecționarea acestuia, lipsește un singur element, respectiv
automatizarea căminului. Automatizarea locuinței face, așadar, trecerea de la pasivitatea
locuirii la o comunicare inteligentă între om și casa lui.

5
Locuința automatizată dobândește noi caracteristici, prin prisma centrului inteligent,
adică unitatea centrală, cea care îi controlează majoritatea atributelor. Printre aceste atribute
putem menționa funcţionalitatea (controlul temperaturii, luminilor, jaluzelelor, sistemele hi-
fi, şi orice alt dispozitiv electric sau electronic, atât din interior, cât şi din exterior, fie prin
intermediul internetului (din orice colţ al lumii), fie local utilizând telecomenzi, laptop,
touchscreen.), managementul energetic, prin care se urmărește reducerea consumului de
energie prin optimizarea funcţionării componentelor electrice, electronice, sanitare şi termice
ale locuinţei. Un atribut foarte important pentru asigurarea confortului oricărei persoane este
reprezentat de sistemele de securitate. Acestea permit simularea prezenţei locatarilor în timpul
absenţei lor, permit descoperirea și sesizarea efracţiei către vecini, familie, firmă de pază, cât
şi declanşarea unui plan prestabilit pentru îndepărtarea intruşilor.

În eficientizarea sistemelor de securitatea vine și supravegherea video, care permite


vizualizarea activităţii copiilor, bonelor şi a întregii case în orice moment şi în orice loc, de la
orice distanţă. Printre alte atribute pe care o locuință automatizată le are mai putem menționa:
inteligenţă (touchscreen-ul inteligent, precum Ipad, poate servi ca panou de control pentru
automatizarea casei, fiind în același timp şi interfon sau permiţând accesarea internetului,
chiar şi din afara sistemului), confort (scenariile de iluminare presetate pentru diferite tipuri
de activităţi: petrecere, cină, film, care necesită niveluri diferite de intensitate ale luminii) şi
multiroom audio-video (permite prin intermediul unui server audio-video ascultarea muzicii
sau vizionarea unei emisiuni în fiecare încăpere a casei, în acord cu preferinţele individuale).

În ultimii ani, sistemul de automatizare al caselor a înregistrat evoluții uimitoare în


materie de tehnologie, aplicaţii şi design. Pătrunderea tehnologiei în spaţiul de locuit a
îmbunătăţit nivelul de confort al oamenilor, făcând ca totul să fie mai funcţional. Descoperirea
avantajelor pe care le au sistemele tehnice şi echipamentele electronice în cadrul spaţiu
locuibil este posibilă datorită experienţei şi tehnologiei, precum şi cunoștințelor specifice care
au înlocuit sistemele electronice naturale (caracteristice insectelor) cu sisteme specifice
inteligenţei artificiale (aplicaţii computaţionale).

Dezvoltarea conceptului de casă ecologică inteligentă a pornit din domeniul


cinematografic, mai exact de la comedia hollywoodiană „Smart House”, produsă în 1999, ca
adaptare a nuvelei „The Veldt”, scrisă de Ray Bradbury. O serie de gadgeturi inteligente
transformau viaţa locatarilor casei în scenarii SF aduse la zi, care au avut multă trecere la

6
public. Succesul de care s-a bucurat pelicula a reprezentat un punct de pornire pentru firmele
de automatizări şi astfel au apărut primele elemente specifice casei. Inițial automatizarea casei
îngloba o serie restrânsă de facilități: programarea instalaţiilor de iluminat, udat grădina şi
supraveghere video, dar în scurt timp, lista lucrurilor pe care putea să le facă o casă inteligentă
a crescut în mod considerabil.

Conceptul de „casă inteligentă”, un concept relativ nou pentru România, a apărut în


urmă cu aproximativ 30 de ani şi a fost implementat în majoritatea ţărilor dezvoltate din
Europa. Extinderea fără precedent a calculatorului în toate sferele și domeniile nu putea să nu
afecteze şi domeniul casnic/imobiliar. Astfel a apărut ca şi domeniu de cercetare de sine
stătător domotica care se ocupă cu dezvoltarea aplicaţiilor calculatoarelor şi a roboţilor în
domeniul casnic.

1.3 Avantajele economice ale clădirilor inteligente

Un avantaj economic important al acestui tip de clădire este rețeaua unică de cabluri
pentru toate sistemele, care reduce cu 15% sau chiar 20% costurile instalației inițiale.
Un alt avantaj major al clădirilor inteligente este legat de costurile scăzute de instalare a
sistemului de control al clădirii, reducerea costurilor de modificare, disponibilitatea investiției
în dispozitive de interfață viitoare, reducerea costurilor energetice necesare în funcționarea
clădirii.
În ceea ce privește durata de viață a unei clădiri, structura sa fizică este cea mai
durabilă (peste 40 de ani), hardul și softul au o durabilitate cuprinsă între 5 și 7 ani, iar
birotica 2-3 ani.
Diverse sisteme diferite ale clădirii pot fi interconectate prin rețeaua unică de cabluri (de
exemplu: sistemele de control și protecție împotriva incendiilor, sistemele de securitate).
Acestea sunt cuplate împreună, având la bază infrastructura întregii clădiri.
Persoanele care au un interes sporit pentru clădirile inteligente sunt locatarii multiplii,
care să folosească în comun anumite servicii, lucru care aduce profituri considerabile
proprietarilor. De asemenea, ideea de clădire inteligentă reprezintă o tentație și pentru
locatarii care nu și-ar permite în mod individual astfel de servicii.

7
1.4 AVANTAJELE MONITORIZĂRII DE LA
DISTANȚĂ

1.4.1. Accesibilitate

Spre deosebire de monitorizarea standard a clădirilor inteligente, acționarea de la


distanță de către utilizator are avantajul accesibilității. Principalul avantaj pe care îl are un
sistem de monitorizare al locuinței de la distanță reprezintă posibilitatea de a controla
sistemele inteligente atunci când utilizatorul nu se află acasă. Printre celelalte beneficii ale
unei case inteligente se numără confortul, pentru că toate produsele smart vor fi programate în
funcţie de nevoile utilizatorului cu ajutorul unui smartphone sau unui alt device smart. Astfel,
viaţa proprietarului locuinței va deveni mult mai simplă și mai confortabilă. Aceste sisteme
pot, de asemenea, să fie personalizate, fapt ce îi va permite proprietarului să includă sau să
excludă anumite device-uri sau să le modifice oricând regulile prestabilite după bunul plac.

1.4.2. Ușurința folosirii

Prin accesarea IP-ului aferent site-ului pentru controlul locuinței, utilizatorul se află la
doar un click distanță de monitorizarea diverselor sisteme automatizate din locuință. În plus,
sistemul unei case inteligente este uşor de instalat şi de folosit şi economiseşte timpul pe care
utilizatorul l-ar fi petrecut ducând la bun sfârşit manual treburile gospodăreşti. De cele mai
multe ori, aceste electrocasnice şi dispozitive electronice sunt prietenoase cu mediul
înconjurător și îl protejează, pentru că monitorizează şi țin sub control consumul energetic,
fiind, în esență, realizate astfel încât să funcţioneze eficient, minimizând consumul. Sistemele
automate care fac din locuința noastră o locuință inteligentă ne permit efectiv să ne bucurăm

8
mai mult de timpul nostru, să ne creăm condițiile perfecte de lucru sau de relaxare (prin
controlul luminii, de exemplu) și ne ajută să ne protejăm locuința și pe noi înșine.

1.4.3. Multiutilzare

Orice locatar sau membru al familiei, cu ajutorul unui smartphone și al unei conexiuni
stabile la internet (wi-fi sau date mobile) poate avea acces la sistemul inteligent de
monitorizare al locuinței. Totuși, aici apare un punct slab ce se referă la fiabilitatea casei
inteligente. Aceasta se bazează în mare parte pe conexiunea la internet, care uneori poate avea
probleme. În plus, orice device conectat la internet este vulnerabil atacurilor informatice.
Accesul la internet facilitează şi colectarea mai multor date despre noi, fără să fim conştienţi
şi fără să ştim unde vor ajunge acestea.

1.4.4. Abilitatea de a urmări istoricul

Așa cum am spus și mai sus, utilizatorul poate monitoriza în timp real sau istoric, din
orice locație îndepărtată, statutul casei. O casă inteligentă furnizează date live și statistici
despre majoritatea sistemelor integrate, cum ar fi consumul de energie, consumul de apă,
monitorizarea temperaturii și a umidității, starea sistemului de încălzire, alertele de acces la
securitate etc. Un instrument software accesibil de pe orice dispozitiv procesează aceste date
și oferă urilizatorului statistici.

1.4.5. Riscuri si flexibilitate

9
Creșterea dinamismului vieții actuale și a stresului resimțit ne determină să căutăm soluții,
idei prin care să creăm un echilibu între tensiunea și solicitarea psihică de zi cu zi și
momentele de relaxare. Datorită acestui fapt casa inteligentă a devenit un spaţiu din ce în ce
mai familiar, asigurând un plus de valoare oricărei construcţii. În plus, sistemele
computaţionale ale casei inteligente s-au dezvoltat în aşa fel încât să răspundă aspiraţiilor din
ce în ce mai înalte ale oamenilor în ceea ce priveşte confortul, siguranţa şi controlul casei.

Sistemele IT care fac trecerea de la casa ecologică la casa ecologică inteligentă dau un alt
sens conceptului tradiţional de „sisteme electrice”, percepute ca simple sisteme de corpuri de
iluminat şi prize. Noul concept înseamnă practic dotarea locuinţei cu sisteme electronice
avansate care sunt concepute să satisfacă nevoi specifice, perfect capabile să ofere aplicaţii
utile. Integrarea tuturor acestor funcţiuni individuale creează un sistem avansat, uşor de
folosit, rezistent în timp şi extrem de flexibil, putând fi actualizat, modificat şi extins în orice
moment pentru a satisface noi necesităţi.

O casă inteligentă are proprietatea de a asigura acel sentiment unic de „mă simt bine
acasă” în fiecare zi, transformând casa în „acasă” în adevăratul sens al cuvântului. Instalaţia
inteligentă îmbină controlul tuturor luminilor, prizelor, încălzirii, climatizării, echipamentelor
de umbrire motorizate, echipamentelor audio-video, elementelor de securitate, sistemul de
irigaţii şi multe altele, rezultând o armonie perfectă. Siguranţa copilului, confortul familiei,
economia energiilor, excluderea pericolului de electrocutare la întrerupătoare, funcţiile de
simulare a prezenţei pentru zilele de concediu etc, toate aceste aspecte sunt cu adevărate
avantaje oferite de către locuințele inteligente.

O instalaţie inteligentă trebuie să fie intuitivă şi uşor utilizabilă în viaţa de zi cu zi de către


toate generaţiile, de către toți locatarii imobilului. De asemenea, trebuie să fie adaptabilă în
timp, pentru a satisface noile cerinţe ale încăperilor apărute de-a lungul timpului. De exemplu,
la o anumită vârstă camera copilului devine neîncăpătoare, motiv pentru care va primi o
cameră mai mare, cu o nouă destinație. În această situație, o casă inteligentă va trebui să
asigure toate funcţiile necesare noii camere. Casa inteligentă asigură vizualizarea sau
comanda, controlul echipamentelor din orice zonă a imobilului, inclusiv de la distanţă atunci
când suntem plecaţi .

10
Un alt aspect important și demn de menţionat referitor la casa inteligentă este acela că
sistemul domotic central poate cuprinde cu uşurinţă o multitudine de sisteme distincte,
precum: sistemul de climatizare şi controlul luminilor, sistemul electric de prize, sistemul de
detecţie la incendiu, sistemul de suraveghere audio-video locală şi la distanţă, sistemul de tip
home cinema şi audio multiroom, efracţie sau alte incidente, sistemul de automatizare a
porţilor de intrare şi de la garaj etc.

Toate aceste sisteme pot fi controlate în permanență, manual sau prin stabilirea unor
scenarii predefinite pentru diverse situaţii cotidiene: când pleci sau te întorci de la muncă sau
din vacanţă, când te trezeşti sau te culci, când în casă stă întreaga familie, doar bona cu
copilul etc, sau pentru anumite situații speciale, excepționale, sau de urgență. De asemenea,
flexibilitatea soluţiilor domotice provine şi din multitudinea posibilităților acestora de
implementare şi adaptare la diverse spaţii: apartamente, case, vile, case de vacanţă, hoteluri,
clădiri de birouri etc.

1.4.6. Eficiență

În ceea ce privește eficiența, o casă inteligentă ar trebui să ofere în primul rând rate
scăzute de consum de energie. Prin urmare, software-ul de bază ar trebui să aibă un manager
de procese energetice pentru a monitoriza și analiza continuu datele de la senzorii interiori și
exteriori și a efectua ajustări constante la toate sistemele consumatoare de energie. Condiția
de bază pentru îndeplinirea sarcinilor enumerate mai sus este conexiunea la internet. Este
obligatoriu ca locuința să fie conectată la internet.
Un factor important aduce în discuție câteva caracteristici care transformă o casă
obișnuită într-o casă inteligentă: casa, respectiv sistemul inteligent, trebuie să știe oricând câte
persoane sunt înăuntru și câte persoane sunt în fiecare cameră. Acest aspect este important,
putând fi principalul factor în controlul sistemelor de încălzire, luminilor și, de asemenea,
configurarea perimetrului de securitate și alarmei. Acesta poate fi ușor realizat cu ajutorul
senzorilor de proximitate și a contoarelor magnetice ale ușilor.

11
Având acest beneficiu, casa este capabilă să închidă televizorul, să stingă luminile și
să economisească energia de încălzire în încăperi în care nu există oameni.

2.TEHNOLOGII SI INSTRUMENTE HARDWARE SI


SOFTWARE FOLOSITE IN IMPLEMENTAREA
PROIECTULUI

2.1 Microprocesorul

Conform lui Dănescu, Mureșan și Itu, „Microprocesorul este elementul central al


unui sistem de calcul modern, el încorporând pe un singur circuit integrat toate funcțiile unei
unități centrale de procesare (CPU). CPU are ca sarcină principală execuția unui program,
care este o secvență de instrucțiuni în cod mașină stocate într-o memorie”. (Dănescu,
Mureșan, Itu, 2018) Aceiași autori evidențiază că: „Execuția unei instrucțiuni are de obicei
patru etape: citirea instrucțiunii (fetch), decodificarea ei (decode), execuția aritmetico-logică
(execute), și scrierea rezultatelor (write back).” (Dănescu, Mureșan, Itu, 2018)
Deși dispun de o complexitate ridicată, microprocesoarele nu pot funcționa în lipsa
unor sisteme esențiale, precum memoriile în care sunt stocate instrucțiunile și datele,
interfețele de intrare și ieșire a datelor, sau alte dispozitive periferice pentru primire și
transmitere a datelor, conectate toate la microprocesor prin intermediul magistralelor.
Împreună cu microprocesorul, aceste componente alcătuiesc sistemele cu microprocesor. Un
exemplu de sistem cu microprocesor este placa de bază a unui PC. (Dănescu, Mureșan, Itu,
2018)
Spre deosebire de microprocesoare, care au doar rolul de execuție al instrucțiunilor,
microcontrollerele dispun în mod suplimentar și de memorie pentru program și date, de
porturi de intrare/ieșire (GPIO - General Purpose Input/Output), și de alte componente precum
temporizatoare, interfețe de comunicare, convertoare, etc. Microcontrollerul este deci un
sistem cu microprocesor inclus pe un circuit integrat, care poate fi folosit pentru a controla
diverse procese sau dispozitive. Datorită dimensiunii reduse și al costului de producție scăzut,

12
microcontrollerele sunt utilizate adesea în sisteme de tip „embedded”, unde consumul redus
de resurse are un rol important. (Dănescu, Mureșan, Itu, 2018)

Scurtă istorie
În lucrarea „Proiectare cu Microprocesoare. Îndrumător de laborator”1 este
prezentată sistematic o evoluție a microprocesoarelor. Astfel, în anul 1971 au fost create
microprocesoare pe 4 biți, denumite Intel's 4004, de către Texas Instruments (TI) TMS 1000
și Garrett AiResearch's Central Air Data Computer (CADC).
Un an mai târziu a fost creat primul microprocesor pe 8 biți: 8008. A fost urmat de
Intel 8080, în anul 1974, Zilog Z80, în 1976, și alte procesoare derivate pe 8 biți de la Intel.
Competitorul Motorola a lansat Motorola 6800 în luna august 1974. Arhitectura acestuia a
fost clonată și îmbunătățită în MOS Technology 6502 în 1975, cu popularitate similară lui
Z80 în anii 1980. (Dănescu, Mureșan, Itu, 2018)
În anii următori au apărut microprocesoarele pe 16 biți : Intel 8086, 80186, 80286,
8086 SX, TMS 9900), pe 32 biți: MC68000, Intel 80386DX, 80486DX, Pentium, MIPS
R2000 (1984) și R3000 (1989) etcc, și pe 64 biți (majoritatea procesoarelor moderne).
(Dănescu, Mureșan, Itu, 2018)
Tipuri: RISC: scrie si tu ce inseamna risc si apoi fa categoriile
 MIPS (R2000, R3000, R4000), Motorola 88000, AVR;
 CISC: VAX, PDP-11, Motorola 68000, Intel x86. (Dănescu, Mureșan, Itu,
2018)

2.2 Utilizarea platformei MEGA 2560 R3 (ATMEGA 2560 + ATMEGA


16U2)

Familia de unelte de dezvoltare Arduino include plăci cu microcontroller, accesorii și


componente software open source, care permit utilizatorilor să realizeze proiecte folosind o
abordare unificată, de nivel înalt, care se doreşte a fi independentă de microcontrollerul

13
folosit. Plăcile Arduino sunt echipate în principal cu microcontrollere Atmel AVR, dar există
şi plăci echipate cu microcontrollere de tip ARM, sau din familia x86. În afara plăcilor
Arduino oficiale, există o gamă largă de clone, de obicei cu preț redus (si performanţă
discutabilă), precum XDruino, Freeduino, etc. (Dănescu, Mureșan, Itu, 2018)

Placa de dezvoltare MEGA 2560 R3 (Atmega2560 + Atmega16u2) compatibilă cu Arduino


este o placă ce utilizează microcontroller-ul Atmega2560 și microcontroller-ul Atmega16u2
pentru conectivitate USB. Placa are 54 pini digitali de intrare/ieşire, 4 pini disponibili ca ieşiri
PWM (Pulse width Modulation), 16 intrări analogice, un oscilator cu cristal de 16 MHz, un
jack de putere, un circuit serial de programare (ICSP) şi un buton de resetare (fig. 2.1).

Fig. 2.2 MEGA 2560 R3 (Atmega2560 + Atmega16u2)

Caracteristici tehnice:

 Tensiune de funcționare: 5V;


 Tensiune de alimentare Jack: 7V - 12V;
 Pini I/O: 54;
 Pini PWM: 15 (din cei de I/O);
 Pini analogici: 16;

14
 4 x UART;
 Memorie flash: 256KB, din care 8KB ocupați de bootloader;
 Frecvența de funcționare: 16MHz.
 Dimensiuni: 5.3cm x 10cm

2.3. Utilizarea Shield-ului Ethernet W5100

Conform site-ului oficial Arduino, Shield-ului Ethernet W5100 este bazat pe controller-ul
ethernet W5100 care oferă o implementare a stivei de rețea (IP) cu capacitate TCP și UDP. Cu
ajutorul acestuia de pot conecta cu ușurință circuite conectate la rețea (fig 2.2).

Shield-ul dispune și de o tehnologie cu ajutorul căreia se poate alimenta din tensiunea de


pe cablul de internet. Are viteza de conexiune de 10/100Mbps și comunică cu Arduino Uno
prin protocolul SPI.

Placa se poate conecta la o rețea prin cablu prin intermediul rețelei Ethernet. Când placa
se conectează la rețea, utilizatorul trebuie să furnizeze o adresă IP și o adresă MAC.

Fig. 2.3 Shield Ethernet pentru Arduino W5100

15
Caracteristici tehnice:
 Microcontroller: Wiznet W5100;
 Tensiune de operare : 5V;
 Tensiunea de intrare (limite): 6-18V;
 Tensiunea de intrare PoE (limite): 36-57V;
 Ieșiri digitale I / O: 14 (din care 4 asigură ieșire PWM);
 Pini rezervați: de la 10 la 13 utilizați pentru SPI;
 4 pini utilizați pentru cardul SD;
 Pini de intrare analogică: 6;
 DC intensitate pe pin I / O 40 mA;
 Memorie flash 32 KB (ATmega328) din care 0,5 KB utilizat de bootloader;
 SRAM 2 KB (ATmega328);
 EEPROM 1 KB (ATmega328);
 Ceas de viteză 16 MHz;
 W5100 Ethernet încorporat TCP / IP;
 Micro SD card, cu tensiune activă.

2.4 Senzori utilizați

2.4.1. Modul senzor de gaz MQ-2

Modulul este folosit cu scopul de a detecta scurgerile de gaze în încăperi de diverse


dimensiuni și reprezintă o metodă de precauție în caz de incendii sau de intoxicații. Senzorul
are o sensibilitate ridicată, principalele gaze pe care le vizează fiind: GPL-ul, izobutan,
propan, metan, alcool, hidrogen și fum. (Moldovan, Zaharia, 2019)

Senzorul dispune de un comparator, astfel că utilizatorul poate citi date analogice în


timp real sau poate afla dacă concentrația de gaz a depășit o anumita limită. (Moldovan,
Zaharia, 2019)

(http://www.fih.upt.ro/jla/images/articole/ST02/st02-06.pdf)

16
Fig. 2.5 Shield Ethernet pentru Arduino W5100

Caracteristici tehnice:
Conform autorilor Moldovan și Zaharia (2019), caracteristicile tehnice ale
SENZORULUI/MODULULUI DE SENZOR sunt:
 Tensiune de funcționare: 5V;
 Curent: 150mA
 Rezistență heater: 33R
 Temperatura de lucru: 20oC - 50oC;
 Output digital sau analogic.

2.4.2.Modul cu senzor de umiditate a solului

Senzorul de umiditate pentru sol este format din 2 părți componente: circuitul PCB ce
conține comparatorul (fig 2.4) și partea care se înfige în pământ. Cea din urmă se conectează
la circuit și, mai departe, conexiunea se realizează cu circuitul. Se pot culege date analogice
sau digitale, în funcție de preferințe.

17
Partea care se înfige în pamant este formată din 2 plăcuțe care funcționează ca probe
pentru senzor, acționând ca un rezistor variabil. Cu cât este mai multă apă în sol, cu atât
conductivitatea dintre plăcuțe va fi mai mare și rezistența mai mică (fig. 2.5).

Fig. 2.6 Circuitul PCB al senzorului de umiditate al solului

18
Fig. 2.7 Cele 2 placute, parte a senzorului de umiditate a solului

2.4.3.Modul cu senzor de temperatură și umiditate

DHT11 este un senzor digital de temperatură și umiditate, care are încorporat un


senzor de umiditate capacitiv și un termistor, pentru a măsura aerul din jur și dă un semnal
digital pe pinul de date (nu necesită pini de intrare analogici LCD) (fig. 2.5).

Senzorul DHT11 oferă o calibrare extrem de precisă a camerei de calibrare a


umidității. Coeficienții de calibrare sunt stocați în memoria programului OTP, senzorii interni
detectează semnalele în proces. Sistemul de interfață serială cu un singur fir este integrat
pentru a fi rapid și ușor. Are dimensiuni reduse, cu o putere redusă ce pot transmite semnalul
de până la 20 de metri.

Senzorul măsoară umiditatea relativă analizând vaporii de apă prin măsurarea


rezistenței electrice dintre doi electrozi. Componenta de detectare a umidității este un substrat
de menținere a umidității cu electrozii aplicați pe suprafață. Când vaporii de apă sunt absorbiți
de substrat, ionii sunt eliberați de substrat, ceea ce mărește conductivitatea dintre electrozi.
Schimbarea rezistenței dintre cei doi electrozi este proporțională cu umiditatea relativă.

19
Umiditatea relativă mai mare scade rezistența dintre electrozi, în timp ce umiditatea relativă
mai mică crește rezistența dintre electrozii.

Pentru măsurarea temperaturii, este folosit un termistor. Denumirea de „termistor” este


o combinare a cuvintelor englezești „thermally sensitive resistor” (rezistența sensibilă termic).
Această denumire descrie cu exactitate funcția de bază a dispozitivului, și anume aceea de a
avea o schimbare de rezistență electrică predictibilă în funcție de orice schimbare a
temperaturii absolute.

Termistorul NTC (Negative Temperature Coefficient, coeficient negativ de


temperatură) este un dispozitiv semiconductor cu două terminale relativ simplu, realizat din
amestecuri sintetizate din oxizi ai metalelor de tranziție cu manganul, cobaltul, nichelul, fierul
si cuprul.

Fig. 2.8 Senzor ditigal de temperatura si umiditate DHT11

20
2.5 Alte componente ale proiectului

2.5.1 Led-uri

Un LED (din engleză light-emitting diode, însemnând diodă emițătoare de lumină)


este o diodă semiconductoare ce emite lumină la polarizarea directă a joncțiunii p-n. Efectul
este o formă de electroluminescență (fig. 2.6).
Diferenţa este că în diodele obişnuite, această recombinare eliberează energie sub
formă de căldură - nu sub formă de lumină (adică într-un alt domeniu al spectrului). Într-un
LED, aceste recombinări eliberează energie sub formă de lumină. Recombinarea generatoare
de caldură se numeşte neradiativă, în timp ce recombinarea generatoare de lumină se numeşte
radiativă. În realitate, în orice diodă au loc ambele tipuri de recombinări. Când majoritatea
recombinărilor sunt radiative, avem un LED.
Curentul direct injectează electroni în regiunea sărăcită de purtători, unde ei se
recombină cu golurile în mod radiativ sau neradiativ. Prin urmare, recombinările neradiative
„consumă” din electronii excitaţi necesari recombinării radiative, ceea ce scade eficienţa
procesului. Acest fapt este caracterizat prin eficienţa cuantică internă, η int , parametru care
arată ce fracţie din numărut total de electroni excitaţi produce fotoni.

Fig. 2.9 LED-uri

21
Avantajele  unui LED

• Durata mare de viaţă, de cel puţin 50.000 de ore. La o medie de cel mult 8 ore de
utilizare pe zi, aceasta înseamnă vreo 17 ani de zile. Spre deosebire, becul incandescent are o
durată de viaţă de 50 de ori mai mică;
• Facturi la electricitate reduse de aproape 10 ori;
• Nu se încălzeşte, deci nu deteriorează corpul de iluminat în care se află;
• Nu emite raze ultraviolete, deci nu este dăunător sănătăţii;
• Este rezistent la şocuri şi vibraţii, spre deosebire de becul cu incandescenţă, care se
„scutură”;
• Nu atrage insectele;
• Nu conţine substanţe poluante în compoziţia sa. Ne amintim că becurile
incandescente au în bulbul de sticlă gaze rare, iar neonul are mercur;
• Are dimensiuni mici, deci poate fi folosit în enorm de multe locuri şi situaţii.

Dezavantajele unui LED

• Lumina emisă de LED se propagă pe o singură direcţie. Acest dezavantaj a fost,


însă, înlăturat prin cuplarea mai multor LED-uri, care „ţintesc” în direcţii diferite. Deci
trebuie să fiţi atenţi când cumpăraţi.
• Deocamdată, preţul unui dispozitiv cu LED-uri este mult mai mare decât al unui
bec cu incandescenţă. Investiţia se amortizează în timp, însă trebuie sa fiţi dispuşi să faceţi
cheltuiala iniţială.

2.5.2 Servomotor 9V

În literatură sub denumirea de servomotoare sunt incluse motoarele electrice executate


special pentru a fi utilizate în sistemele automate de poziţionare şi care în general sunt de
puteri reduse (până la puteri de ordinul câtorva [kW]) (fig. 2.7). (Dănescu, 2018)
Pentru puteri mai mari se folosesc motoarele electrice convenţionale, care sunt
elemente de execuţie mai lente, cu constante de timp mai mari dar şi cu randament mai bun.
Servomotoarele sunt motoare electrice speciale, de curent continuu sau curent alternativ cu
viteză de rotaţie reglabilă într-o gamă largă în ambele sensuri având ca scop deplasarea într-

22
un timp prescris a unui sistem mecanic (sarcina) de-a lungul unei traiectorii date, realizând
totodată şi poziţionarea acestuia la sfârşitul cursei cu o anumită precizie. Sistemele de reglare
automată moderne impun servomotoarelor următoarele performanţe: gamă largă de
modificare a vitezei în ambele sensuri, funcţionare stabilă la viteză foarte mică, constante de
timp cât mai reduse, fiabilitate şi robusteţe ridicate, raport cuplu/moment de inerţie cât mai
mare, suprasarcină dinamică admisibilă mare și caracteristici de reglare liniare. (Dănescu,
2018)
Servomotorul foloseşte un mecanism de feedback (reacţie negativă) pentru a menţine
o poziţie dată printr-un semnal de control (analog sau digital). Acesta conţine un motor DC,
un angrenaj de roţi dinţate şi un circuit de control. (Dănescu, 2018)
Biblioteca Servo se caracterizează prin următoarele aspecte: poate controla până la 12
motoare pe majoritatea plăcilor Arduino, respectiv 48 de motoare pe placa Arduino Mega.
Folosirea bibliotecii va dezactiva analogWrite() (PWM) pe pinii 9 si 10, indiferent dacă există
sau nu motor servo conectat la aceşti pini (exceptand placa Arduino Mega). La Arduino Mega
Mega, se pot utiliza până la 12 motoare servo fără a afecta funcţionarea PWM. Folosirea mai
multor motoare va dezactiva PWM pe pinii 11 si 12. (Dănescu, 2018)
Conectarea Servo la Arduino prin 3 fire (Vcc, Gnd, semnal) se face astfel: Vcc
conectat la pinul de 5V al plăcii, Gnd (negru sau maro) conectat la GND de pe Arduino, iar
Pinul de semnal (galben, portocaliu sau alb) conectat la un pin digital. (Dănescu, 2018)

23
Fig. 2.10 Micro Servomotor

Servomotoarele electrice se folosesc în cele mai diverse aplicaţii, cum ar fi: acţionarea
roboţilor industriali universali, a maşinilor unelte cu comandă numerică, a perifericelor de
calculator, în acţionarea imprimantelor rapide, în tehnica aerospaţială, instalaţii medicale etc.
În aplicaţiile enumerate, cuplul dezvoltat de servomotoare variază într-o plajă largă de valori,
0,1 ÷ 100 [Nm], cu puteri nominale ce variază în intervalul 100 [W] şi 20 [kW].(Sabou, 2018)
Conform principiului lor de funcţionare, servomotoarele electrice pot fi clasificate în:
servomotoare de curent continuu, servomotoare asincrone şi servomotoare sincrone, în
această ultimă categorie fiind incluse atât servomotoarele de curent continuu fără perii cât şi
servomotoarele pas cu pas. (Sabou, 2018)
Servomotoarele de curent continuu se caracterizează prin posibilitatea de reglare a
vitezei în limite largi, 1:10.000 şi chiar mai mult, prin intermediul unei părţi de comandă
electronică relativ simplă. Servomotoarele de curent continuu au caracteristici mecanice şi de
reglaj practic liniare, cuplu de supraîncărcare mare, greutate specifică mică, moment de inerţie
redus etc. Dezavantajele sunt legate de colector, fenomene de comutaţie, uzură şi scânteiere.
(Sabou, 2018)

24
Servomotoarele asincrone, în prezent răspândite în tot mai mare măsură, elimină
dezavantajele servomotoarelor de curent continuu legate de sistemul colector-perii, fiind de
asemenea atractive prin robusteţea, simplitatea şi preţul lor. Există însă şi o serie de
dezavantaje legate de randament, factor de putere, greutate şi nu în ultimul rând procedee de
comandă mai complicate decât cele ale servomotorului de curent continuu. (Sabou, 2018)
Spre deosebire de motoarele DC, care produc rotaţie continuă cât timp sunt conectate
la o sursă de tensiune, motoarele servo sunt folosite pentru a obţine rotaţii parţiale, stabile şi
controlate, pentru efectuarea unor operaţii cu amplitudine. (Sabou, 2018)
(Îndrumător laborator microcontrolere ARDUINO, Sebastian Petru Sabou).

2.5.3 Pompa de apă

Pompade apă  este esențială pentru grădină, dar poate contribui și la îmbunătățirea
confortului din locuință. (Dogaru, 2016)
În general, în această categorie intră echipamentul folosit la transportul apei din puțuri,
lacuri, fântâni în scopul alimentării diverșilor consumatori. (Dogaru, 2016)
Din punct de vedere constructiv, pompa are trei componente principale: motorul,
unitatea de pompare și carcasa. (Dogaru, 2016)
În funcție de poziționare, pompele pot fi pompe de apă de suprafață („trag” lichidul
dintr-un puț/rezervor) sau pompe de apă submersibile (imersate în lichid, pe care il „împing”
către consumator) (fig.2.8). (Dogaru, 2016)

Caracteristici tehnice:
 Tensiune: DC3-5V
 Curent: 100-200mA
 Debit: 1,2-1,6 L / min
 Greutate: 28 grame
 Material: plastic
 Diametrul exterior al duzei: 7.5mm
 Diametrul interior al duzei: 4.7mm
 Diametru: aproximativ: 24mm
25
 Lungime: aproximativ 45mm
 Înălțime: aproximativ 33mm

Fig. 2.11 Pompa de apă submersibilă

2.5.4 Releu

Releele reprezintă categoria cea mai importantă de aparate din cuprinsul unei instalații
de protecție și comandă automată (fig.2.8).
Un releu este un dispozitiv de comutare prevăzut cu unul sau mai multe contacte,
acționat de un semnal electric. Releele sunt utilizate pentru comutarea unei valori mari a
tensiunii cu ajutorul unei valori mici de tensiune.
Releul este format dintr-o bobină, unul sau mai multe contacte și un mecanism cu arc.
Prin alimentarea bobinei, curentul electric se propagă și se creează un câmp magnetic, pârghia
este antrenată iar poziția contactelor se schimbă.

Releele electronice reprezintă ansambluri cuprinzând o parte electronică şi un releu


electromagnetic obişnuit (figura 2.9). I reprezintă mărimea de intrare, care poate fi tensiune,
curent, frecvenţă, timp, trenuri de impulsuri etc., M reprezintă un ansamblu electronic care

26
converteşte un anumit parametru al mărimilor de intrare în curent electric cu două valori
prestabilite, în funcţie de care releul va avea poziţia atras sau căzut. Prin urmare, releul
electronic este tot un element bipoziţional. Avantajele utilizării părţii electronice de prelucrare
a mărimii de intrare rezultă din: posibilitatea amplificării mărimii de intrare, creşterea
sensibilităţii releului electromagnetic şi eventual modificarea histerezisului acestuia, creşterea
siguranţei în funcţionare prin introducerea unor scheme cu fiabilitate funcţională ridicată,
consum redus din sursa care livrează mărimea I, influenţă minimă asupra sursei care livrează
mărimea I etc.

Fig.2.12 Modul releu cu un canal

27
Fig.2.9 Releu electronic

Caracteristici tehnice :

 Tensiune de comandă: 5V;


 Tensiune partea de putere: 250VAC, 125VAC, 28VDC, 30VDC;
 Curent suportat, conform tensiunilor: 10A, 10A, 10A, 10A;
 LED-uri indicatoare pentru alimentare și comandă;
 Releul este comandat de tranzistor.

Fig. 2.13 Mod de conectare a unui consumator la rele

28
Materialele utilizate în realizarea contactelor sunt: Ag (este materialul cu
conductivitatea electrică și termică cele mai înalte dintre toate metalele; manifestă o rezistență
scăzută de contact, ieftin și des utilizat), AgCu (prezintă rezistență ridicată la uzură și o
tendință mică de topire, dar în schimb prezintă o rezistență de contact mai mare), AgCdO (are
o rezistență la topire mai ridicată, rezistență la uzură și proprietăți de stingere a arcului
electric) și AgW (duritate și punct de topire ridicat, rezistența la arc electric este foarte bună,
dar în schimb necesită o forță de apăsare mare; rezistența de contact este mare și, de
asemenea, prezintă o rezistență slabă la coroziune.

3. Elaborarea temei de proiectare

Declararea bibleotecilor si a variabilelor reprezinta primul pas pentru a crea


codul ce urmeaza sa fie rulat(fig.4.3).

Fig. 4.3 Declararea


bibleotecilor

 Odata inclusa, bibleoteca SPI.h va permite placutei sa comunica cu dispozitivele de tip


SPI, placuta Arduino reprezentand dispozitivul principal;

 Folosind un shield de Ethernet, bibleoteca Ethernet.h va permite placutei Arduino


conexiunea la internet;

 Libraria Servo.h va permite controlul servomotoarelor de catre placa Arduino;

29
 Dht.h este o librarie ce va permite comunicarea intre placuta Arduino si senzorii
DHT11 si DHT22, senzori de umiditate si temepratura;

 Senzorul de temperature DHT11 a fost denumit DHT_PIN si este conectat la pin-ul


A0 in timp ce senzorul de umiditate a solului este conectat la pin-ul A2.

Urmatorul pas reprezinta initializarea seonzorilor si al dispozitivelor care


urmeaza sa fie utilizati in proiect. In figura 4.4 avem declararea celor doua
servomotoare, seonzorului de temperature si umiditate, cele 4 led-uri, aerisirea, releul
si senzorul de gaz. Valoarea fiecaruia reprezinta pin-ul la care este conectat.

Fig. 4.2 Initializarea senzorilor si al dispozitivelor

Urmeaza sa adaugam variabila de tip byte numita mac, care va fi o adresa


MAC predefinita pentru shield-ul Ethernet. Mai departe adaugam o clasa de Ethernet
din bibleoteca Ethernet.h, care va crea un server care va fi conectat la portul 80. Portul
80 reperezinta un standart dar si un port TCP foarte utilizat(fig. 4.3).
In void setup () am initializat functia Serial.begin(9600), functia ce ne ajuta in
trimiterea de date catre portul serial al calculatorului. Prin acest port se trimit caractere
unul dupa altul. Viteza la care se realizeaza comunicarea se masoara in baud (indica
numarul de coduri ce pot fi transmise intr-o secunda). Cu cat valoarea vitezei este mai
mare, cu atat comunicarea este mai rapida. Eu am folosit un baud de 9600(fig. 4.3).
In continuare am definit led-urile, releul si cooler-ul ca pinMode,
servomotoarele au fost conectate la pinii 6 si 7. Shield-ul Ethernet va fi initializat

30
folosind Ethernet.begin(mac). Acesta va obtine, in urma executiei acestei comenzi, o
adresa IP, urmand apoi sa porneasca serverul folosind comanda server.begin(). Acesta
va avea o adresa IP locala atribuita shield-ului Ethernet(fig. 4.3).

Fig. 4.3 Definirea dispozitivelor si a adresei MAC


Instructiunile din void loop () se vor executa intr-o bucla, este reluata iarasi prima
instructiune dupa finalizarea celei din urma. Bucla se va opri odata cu intreruperea alimentarii
placutei Arduino. Utilizant comanda “Serial.print”, se va afisa in interfata seriala string-ul
dintre paranteze, iar comanda “Serial.println” ne va afisa valoarea valoarea generate de
fiecare sensor(fig. 4.4). De asemenea am creat un client cu ajutorul caruia vom verifica daca
serverul este pornit(fig. 4.5).

Fig. 4.3 Comenzile prin care se vor afisa valori in interfata seriala

31
Fig. 4.3 Valorile afisat in interfata seriala

Verificarea conectivitatii lui client si a valabilitatii acestuia se va face folosind o


bucla while si doua structure if. Ultima dintre ele, in cazul in care este conditia este
satisfacuta, va stoca ceea ce citeste din client intr-o variabila c. Aceasta variabila urmeaza sa
fie printata in interfata serial(fig. 4.5).

Fig. 4.5 Valorile afisat in interfata serial

32
Inainte de a face primul request de tip HTTP si de a stabili tipul conexiunii, atribuim
valoarea din variabila c in readString (atunci cand lungimea lui readString este mai mica decat
200 de caractere). Toate valorile din c se vor concatena in variabila readString. Fiecare
request HTTP incheiat va genera o linie noua (un new line), motiv pentru care urmeaza sa
verificam daca variabila c este egala cu un new line (‘\n’), daca exista acest new line. In caz
afirmativ, printam ce se afla in readString si stabilim tipul de conexiune ca fiind text/html(fig.
4.6).

Fig. 4.6 Atribuirea valorilor lui c variabilei readString

Incepand din acest moment putem adauga primele linii de cod HTML. Tagul de
DOCTYPE html reprezinta colectia de taguri ce urmeaza sa fie folosite in vederea crearii
paginii web(fig. 4.7). Intre tag-urile de head am adaugat titlul paginii si un tag meta care
genereaza un refresh paginii web la fiecare doua secunde(fig. 4.7). Acest lucru va ajuta la
innoirea datelor cu privire la temperatura, la umiditatea din aer si din sol din locuinta.

33
Intre tagurile de body vom include tot continutul site-ului web, atat butoanele cat
si partea scrisa, inclusiv titlul care va fi afisat in pagina(fig. 4.7).

Fig. 4.7 Head si body

Pentru inceput, am creat butoanele aferente luminilor. Aceste butoane vor aprinde,
respective stinge luminile din locuinta in totalitate.Aprinderea acestor led-uri se va realiza
folosind comanda digitalWrite(fig.4.8). Valoarea acestei comenzi va avea valoarea LOW pt
stingerea becurilor si valoarea HIGH pentru aprinderea lor.

Butoanele sunt scrise sub forma unor link-uri, care au referinta “button1on” pentru
aprinderea luminir si “button2off” pentru stingerea lor. Odata apasate, aceste butoane vor
genera si un mesaj pentru informarea utilizatorului cu privire la eventimentul produs(fig.4.9)

34
Fig. 4.7 Comanda digitalWrite

Fig. 4.8 Mesajele aferente starii luminilor

Daca nu dorim aprinderea simultana a tuturor luminilor, exista posibilitatea de a


aprinde luminile pe rand, una. In locuinta prezentata exista patru incaperi: un dormitor, un
living, o baie si o bucatarie. Exista cate un buton pentru aprinderea sau stingerea fiecarei
lumini din fiecare camera enumerata. Modalitatea crearii acestor linkuri pentru fiecare led in
parte este asemanatoare metodei aplicate pentru toate luminile casei.

35
Fig. 4.9 Lumini dormitor

Fig. 4.10 Lumini LIVING

36
Fig. 4.11 Lumini baie

Fig. 4.12 Lumini bucatarie

Trebuie mentionat ca inainte de printarea fiecarui mesaj, am adaugat un tag <br>.


Acesta se numeste break row va pozitiona textul cu privire la starea luminilor pe urmatorul
rand. In acest fel, mesajul nu va fi in aceeasi linie cu butoanele, ceea ce va face pagine web
mai usor de inteles. Totodata, fiecare mesaj generat primeste doua stilizari de tip CSS, prima
se refera la font-size, marind fontul la valoarea 20, a doua la culoarea fontului. Culoarea este
rosie, in cazul in care luminile sunt inchise si verde daca acestea s-au deschis(fig. 4.13 si fig.
4.14).

37
Fig. 4.13 Mesaj lumini aprinse

Fig. 4.14 Mesaj lumini stinse

Usa din fata a locuintei afiseaza de asemenea un mesaj asemanator luminilor, dar, in
ceea ce priveste controlul, blocarea si deblocarea acestia se face cu ajutorul unui
servomotor(fig. 4.15). Acesta executa doua rotatii, astfel incat elicea mini-servomotorului va
actiona zavorul pentru blocarea sau deblocarea usii. Pentru a securiza usa, acesta va face o
rotatie de 80 de grade, in timp ce, pentru a facilita deschiderea acesteia, rotatia va fi de 145 de
grade(fig. 4.16).

Fig. 4.15 Crearea celor doua butoane pentru usa din fata

38
Fig. 4.16 Miscarile de rotatie ale servomotoarelor pentru usa din fata

Linkurile pentru blocarea si deblocarea usii din spate sunt asemanatoare celor
pentru usa din fata. Singurele diferente sunt referintele tag-urilor <a> (“href=\"/?
button5on\"\">” pentru deblocare , respectiv “href=\"/?button6off\"\">” pentru blocare ) dar si
rotatiile efectuale de servomotor. Pentru securizare, rotatia acestuia va fi de 120 de grade, iar
pentru sens invers, de 40 de grade(fig. 4.17).
De mentional faptul ca acest mini-servomotor este diferit fata de cel utilizat pentru
usa din fata. Aceste poate efectua roatatii de maxim 120 de grade, in comparative cu celalalt,
capabil sa produca o rotire de 180 de grade.

Fig. 4.17 Miscarile de rotatie ale servomotoarelor pentru usa din spate

39
Fig. 4.18 Crearea celor doua butoane pentru usa din fata

Metoda prin care am creat butoanele pentru controlul aerisirii din locuinta este
identica celor precedente, pentru lumini si usi(fig. 4.19). Daca butonul pentru pornirea
aerisirii este apasat, pe langa faptul ca aceasta se va porni, se va opri executia acelui tag meta,
care avea rolul reincarcarii automate a paginii. Acest lucru reprezinta un inconvenient
utilizatorului, motiv pentru care, va aparea in josul paginii, un nou buton. (fig. 4.20).
Butonul nou aparut are asociat un script, care are rolul de a incarca pagina manual.
Odata apasat, pagina se va incarca, evitand astfel lipsa update-urilor cu privire la temperature
si la umiditatea din locuinta. Noul link va disparea odata cu oprirea aerisirii, urmand ca tag-ul
meta sa se execute in continuare la fiecare 2 secunde.

Fig. 4.19 Crearea celor doua butoane pentru aerisire

40
Fig. 4.20 Butonul pentru reincarcare pagina

Butonul nou aparut are asociat un script, care are rolul de a incarca pagina
manual(fig. 4.21). Odata apasat, pagina se va incarca, evitand astfel lipsa update-urilor cu
privire la temperature si la umiditatea din locuinta. Noul link va disparea odata cu oprirea
aerisirii, urmand ca tag-ul meta sa se execute in continuare la fiecare 2 secunde.
Cooler-ul folosit ca si aerisire va porni folosind, de asemenea, digitalWrite, cu
valoarea HIGH, iar pentru oprire, valoarea LOW(fig. 4.21).

Fig. 4.21 Script-ul pentru reload si valorile comenzii digitalWrite pentru aerisire

41
Stropirea plantei din sufragerie se realizeaza folosind un releu si o pompa de apa
submersibila. Atat link-urile, cat si mesajele afisate in urma executiei acestora sunt create intr-
un mod identic celorlalte mentionate anterior(fig. 4.22).

Fig. 4.22 Crearea celor doua butoane pentru stropirea plantei

Releul va actiona pompa, utilizand, de asemenea, comanda digitalWrite cu valorile


HIGH, respectiv LOW. Dupa ce pompa este pornita, acel delay(5000) o va mentine in acest
fel pentru 5 secunde(fig. 4.23). Daca nu oprim pompa, aceasta va reporni automat dupa 10
secunde de oprire, in urma executiei comenzii delay(10000).

Fig. 4.23 Controlul releului si delay-urile starii acestuia

Sistemul de monitorizare a concentratiei de gaz din locuinta are si o functie de urgenta. In


care este detectata o concentratie mare de gaz in locuinta, se va afisa un mesaj corespunzator

42
de informare a utilizatorului(fig. 4.25). Acest mesaj il informeaza cu privire la prezenta unei
concentratii mari de gaz in bucatarie, dar si ca aerisirea s-a activat automat.
Pe langa aceste atentionari, va aparea si un buton de urgenta pentru deblocarea usilor(fig.
4.25). In cazul in care utilizatorul il apasa, servomotoarele vor executa rotatia aferenta
deblocarii usilor, iar acestea de vor debloca in mod automat pentru a facilitate o intrare rapida
in locuinta.

Fig. 4.25 Mesajul de urgenta si butonul pentru deblocarea usilor

Fig. 4.26 Secventa de creare a functiei de urgenta a locuintei

Temperatura din locuinta va fi afisata pe pagina web in urma executiei secventei din
figura 4.27. Senzorul de umiditate a solului informeaza utilizatorul cu privire la gradul de

43
umiditate din pamantul plantei din living. Valoarea generate de acesta se va modifica daca
functia de stropire planta este pornita. Acel delay de 10 secunde al pompei este benefic si in
acest caz, deoarece ii ofera proprietarului casei mai mult timp in care poate lua la cunostinta
valorile umiditatii din sol, si, in consecinta, poate opri sau nu pompa de apa.
De asemenea, in figura 4.27, putem observa inchiderea body-ul paginii web, orice
tip de continut adaugandu-se dupa body, nu va mai aparea in site.

Fig. 4.27 Afisarea valorilor senzorilor si inchiderea body-ului

44
3.Diagrame

3.1 Diagrama clase

45
3.2 Diagrama de secventa

46
3.3 Diagrama starilor

3.4 Diagrama cazurilor de utilizare

47
3.5 Diagrama de activitate

Concluzie
48
În deschiderea proiectului meu am avut în vedere o scurtă introducere care motivează
decizia temei proiectului meu.
Începând cu capitolul 1, s-a început o analiză generală care include şi tema aleasă de
mine; astfel s-a avut în vedere prezentarea conceptului de clădire inteligentă si avantajele
utilizării.
Capitolul 2 se conturează în baza temei alese şi se concentrează mai mult pe analiza
sistemelor automate, atât cele implementate în cadrul proiectului, cât şi posibilităţi de upgrade
şi îmbunătăţiri aduse unor sisteme inteligente utilizate intr-o cladire smart. Am prezentat, pe
scurt, tehnologiile web utilizate, felul in care acestea se imbina cu limbajul C utilizat in cadrul
Arduino IDE urmand sa detaliez in capitolul 4.
Totodata, am realizat o detaliere mai ampla al platformelor Arduino, mai ales Arduino
MEGA, platforma utilizata de mine in proiect, alaturi de Shield-ul Ethernet W5100.
Tot în acest capitol trebuie prezentate standardele de urmat în cadrul proiectării
sistemelor inteligente din locuinta, impreuna cu senzorii ce stau la baza acestora. Am conturat
cate o scurta prezentare pentur fiecare senzor in parte, in care am avut in vedere scoaterea in
evidenta a importantei sale in proiect.
Finalul capitolului s-a concentrate pe descrierea scurta a celorlalte componente ale
sistemelor locuintei, in special servomotoarele.
În capitolul 3 s-a prezentat în întregime modul de lucru şi paşii de urmat în proiectarea
machetei finale pentru demonstraţie. Aşadar am realizat o descriere a controlului efectiv prin
interfaţa Web, am avut în vedere prezentarea in amanunt a codului rulat de Arduino IDE, o
analiză asupra temei de proiectare şi proiectarea propriu-zisă a sistemului ingeligent de
monitorizare si control al locuintei existent în proiectul practic. Explicatiile cu privire la liniile
de cod s-au realizat printr-o succesiune de imagini demonstrative alaturi de explicatiile lor in
limbaj natural.

49
Bibliografie

1. https://tettu.ro/casa-inteligenta-cum-te-ajuta-electronicele-smart-sa-iti-simplifici-viata/

2. https://www.lighting.philips.ro/educatie/viitorul-iluminatului/hue/casa-inteligenta-
sistemele-de-automatizare-a-locuintei

3. https://tettu.ro/casa-inteligenta-cum-te-ajuta-electronicele-smart-sa-iti-simplifici-
viata/.

4. https://publimix.ro/blog/imobiliare/smart-house

5. https://casaecologicaintrevissirealitate.wordpress.com/2017/04/18/casa-ecologica-din-
perspectiva-sistemelor-inteligente-si-a-scenariilor-functionale-actuale/

6. https://publimix.ro/blog/imobiliare/smart-house

7. http://www.fih.upt.ro/jla/images/articole/ST02/st02-03.pdf

8. https://biblioteca.utcluj.ro/files/carti-online-cu-coperta/336-3.pdf

9. http://users.utcluj.ro/~rdanescu/pmp_c01.pdf

10. http://www.mantech.co.za/datasheets/products/A000047.pdf

11. https://store.arduino.cc/arduino-ethernet-shield-2

12. http://www.fih.upt.ro/jla/images/articole/ST02/st02-06.pdf

13. https://www.optimusdigital.ro/ro/senzori-senzori-de-umiditate/73-senzor-de-
umiditate-a-solului.html?search_query=senzor+pentru+umiditatea+solului&results=2

14. https://profs.info.uaic.ro/~arduino/index.php/Temperatura_%26_Umiditate

50
15. http://rf-opto.etti.tuiasi.ro/docs/files/LED.pdf

16. http://users.utcluj.ro/~rdanescu/pmp_c08.pdf

17. https://www.pestre.ro/blog/pompa-de-apa-cum-o-alegem/

18. http://tet.pub.ro/pages/SDTF/Lab3.pdf

19. https://ro.scribd.com/doc/23824437/relee-prezentare

51
ANEXA 1.PREZENTAREA CODULUI SURSĂ DE
PROGRAMARE

A.1.1 Programarea de execuţie

#include<SPI.h>
#include<Ethernet.h>
#include <Servo.h>
#include <dht.h>
#define DHT11_PIN A0
#define soilMosture A2

Servo first_servo;
Servo second_servo;
dht DHT;
int led1 = 2;//led
int led2 = 3;//led
int led3 = 4;//led
int led4 = 5;//led
int fan = 8;//fan
int relayPin = 9;
int gasSensor = A1;//gas

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xEF, 0xED};


EthernetServer server(80);
String readString;

void setup() {
Serial.begin(9600);
Serial.println("DHT11 Humidity & temperatura Senzor \n\n");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(fan, OUTPUT);
pinMode(relayPin, OUTPUT);
first_servo.attach(6);
second_servo.attach(7);

52
Ethernet.begin(mac);
Serial.print("Server is at ");
Serial.println(Ethernet.localIP());
}

void loop() {

int chk = DHT.read11(DHT11_PIN);


Serial.print("Temperatura = ");
Serial.println(DHT.temperature);
Serial.print("Umiditatea = ");
Serial.println(DHT.humidity);
Serial.print("Concentratia de gaz = ");
Serial.println(analogRead(gasSensor));
Serial.print("Umiditatea din sol = ");
Serial.println(analogRead(soilMosture));
delay(2000);

EthernetClient client = server.available();

if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.print(c);

if (readString.length() < 200) {


readString += c;
}

if (c == '\n') {
Serial.print(readString);
client.println("<HTTP/1.1 200 0K>");
client.print("<Connection-Type: text/html>");
client.println("<Connection: close>");
client.println();

client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<title>Licenta Paun Petre</title>");

53
client.println("<meta http-equiv='refresh' content='2'>");
client.println("</head>");

client.println("<body style='font-size: 45px;background-color:powderblue;text-


align:center'>");
client.println("<h2>Monitorizare locuinta</h2>");

//LUMINI
client.println("<a href=\"/?button1on\"\"><button style='font-size:40px;'>Lumini
aprinse</button></a>");
client.println("<a href=\"/?button2off\"\"><button style='font-size:40px;'>Lumini
stinse</button></a>");

//MESAJ LUMINI
if (readString.indexOf("?button1on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Luminile sunt
aprinse</span>");
}
if (readString.indexOf("?button2off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Luminile sunt stinse</span>");
}

client.println("<br>");

//LUMINI LIVING
client.println("<a href=\"/?button1.1on\"\"><button style='font-size:40px;'>Aprinde
lumina LIVING</button></a>");
client.println("<a href=\"/?button1.1off\"\"><button style='font-size:40px;'>Stinge
lumina LIVING</button></a>");

//MESAJ LUMINI LIVING

if (readString.indexOf("?button1.1on") > 0) {
client.println("<br>");

54
client.println("<span style='font-size:20px;color:green;'>Lumina LIVING
aprinsa</span>");
digitalWrite(led1,HIGH);
}

if (readString.indexOf("?button1.1off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Lumina LIVING
stinsa</span>");
digitalWrite(led1,LOW);
}

client.println("<br>");

//LUMINI DORMITOR
client.println("<a href=\"/?button2.1on\"\"><button style='font-size:40px;'>Aprinde
lumina dormitor</button></a>");
client.println("<a href=\"/?button2.1off\"\"><button style='font-size:40px;'>Stinge
lumina dormitor</button></a>");

//MESAJ LUMINI DORMITOR


if (readString.indexOf("?button2.1off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Lumina dormitor
stinsa</span>");
digitalWrite(led4,LOW);
}

if (readString.indexOf("?button2.1on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Lumina dormitor
aprinsa</span>");
digitalWrite(led4,HIGH);
}

client.println("<br>");

55
//LUMINI BUCATARIE
client.println("<a href=\"/?button3.1on\"\"><button style='font-size:40px;'>Aprinde
lumina bucatarie</button></a>");
client.println("<a href=\"/?button3.1off\"\"><button style='font-size:40px;'>Stinge
lumina bucatarie</button></a>");

//MESAJ LUMINI BUCATARIE


if (readString.indexOf("?button3.1off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Lumina bucatarie
stinsa</span>");
digitalWrite(led2,LOW);
}

if (readString.indexOf("?button3.1on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Lumina bucatarie
aprinsa</span>");
digitalWrite(led2,HIGH);
}

client.println("<br>");

//LUMINI BAIE
client.println("<a href=\"/?button4.1on\"\"><button style='font-size:40px;'>Aprinde
lumina baie</button></a>");
client.println("<a href=\"/?button4.1off\"\"><button style='font-size:40px;'>Stinge
lumina baie</button></a>");

//MESAJ LUMINI BAIE


if (readString.indexOf("?button4.1off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Lumina baie stinsa</span>");
digitalWrite(led3,LOW);

56
if (readString.indexOf("?button4.1on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Lumina baie
aprinsa</span>");
digitalWrite(led3,HIGH);
}

client.println("<br>");

//USA DIN FATA


client.println("<a style='margin-left:-20px;' href=\"/?button3on\"\"><button style='font-
size:40px;'>Deblocheaza usa fata</button></a>");
client.println("<a href=\"/?button4off\"\"><button style='font-size:40px;'>Blocheaza
usa fata</button></a>");

//MESAJ USA FATA


if (readString.indexOf("?button3on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Usa fata a fost
deblocata</span>");
}
if (readString.indexOf("?button4off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Usa fata a fost
blocata</span>");
}

client.println("<br>");

//USA DIN SPATE


client.println("<a style='margin-left:-20px;' href=\"/?button5on\"\"><button style='font-
size:40px;'>Deblocheaza usa spate</button></a>");
client.println("<a href=\"/?button6off\"\"><button style='font-size:40px;'>Blocheaza
usa spate</button></a>");

//MESAJ USA SPATE

57
if (readString.indexOf("?button5on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Usa spate a fost
deblocata</span>");
}
if (readString.indexOf("?button6off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Usa spate a fost
blocata</span>");
}

client.println("<br>");

//AERISIRE
client.println("<a style='margin-left:10px;' href=\"/?button7on\"\"><button style='font-
size:40px;'>Porneste aerisirea</button></a>");
client.println("<a href=\"/?button8off\"\"><button style='font-size:40px;'>Opreste
aerisirea</button></a>");
if (readString.indexOf("?button7on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Aerisire pornita</span>");

}
if (readString.indexOf("?button8off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Aerisire oprita</span>");
}

client.println("<br>");

//stropire planta
client.println("<a href=\"/?button11on\"\"><button style='font-size:40px;'>Porneste
pompa de apa</button></a>");
client.println("<a href=\"/?button12off\"\"><button style='font-size:40px;'>Opreste
pompa de apa</button></a>");
if (readString.indexOf("?button11on") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:green;'>Stropire planta
pornita</span>");

58
}
if (readString.indexOf("?button12off") > 0) {
client.println("<br>");
client.println("<span style='font-size:20px;color:red;'>Stropire planta oprita</span>");
}

client.println("<br>");
client.println("<br>");

client.println("<span>Temperatura: </span>");
client.println(DHT.temperature); client.println("grade Celsius");
client.println("<br>");
client.println("<span>Umiditatea: </span>");
client.println(DHT.humidity); client.println("%"); client.println("<br>");
client.println("<span>Umiditatea din sol: </span>");
client.println(analogRead(soilMosture));

client.println("</body>");

delay(1);

if (readString.indexOf("?button1on") > 0) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);

if (readString.indexOf("?button2off") > 0) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}

if (analogRead(gasSensor) > 250) {


digitalWrite(fan, HIGH);

59
client.println("<p style='font-size:30px; color:red; font-weight:bold;'>A fost detectat
gaz in casa, AERISIRE ACTIVA</p>");
client.println("<a href=\"/?button9on\"\"><button style='font-
size:40px;'>DEBLOCHEAZA USILE!</button></a>");
if (readString.indexOf("?button9on") > 0) {

first_servo.write(145);
second_servo.write(40);

client.println("<br>");

client.println("<span style='color:green;'>Usile au fost deblocate</span>");

} else {

digitalWrite(fan, LOW);

if (readString.indexOf("?button3on") > 0) {

first_servo.write(145);

if (readString.indexOf("?button4off") > 0) {

first_servo.write(80);

if (readString.indexOf("?button5on") > 0) {

second_servo.write(40);

60
}

if (readString.indexOf("?button6off") > 0) {

second_servo.write(120);

if (readString.indexOf("?button7on") > 0) {

digitalWrite(fan, HIGH);
client.println("<br>");
client.println("<a href=\"/?button7on\"\"><button style='font-size:50px;'>Reincarca
pagina</button></a>");
client.println("<script>window.stop()</script>");

if (readString.indexOf("?button7on") > 0) {

digitalWrite(fan, HIGH);
client.println("<script>window.reload()</script>");

if (readString.indexOf("?button8off") > 0) {

digitalWrite(fan, LOW);

if (readString.indexOf("?button11on") > 0) {
digitalWrite(relayPin, HIGH);
delay(5000);
digitalWrite(relayPin, LOW);
delay(10000);

}
if (readString.indexOf("?button12off") > 0) {

61
digitalWrite(relayPin, LOW);
}

client.stop();

readString = "";
}

}
}

62

S-ar putea să vă placă și