Sunteți pe pagina 1din 49

UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIE ELECTRICĂ ŞI


TEHNOLOGIA INFORMAŢIEI
DOMENIUL / PROGRAMUL DE STUDIU: ELECTRONICĂ APLICATĂ
FORMA DE ÎNVĂŢĂMÂNT: ZI

PROIECT DE DIPLOMĂ

COORDONATOR ŞTIINŢIFIC
Ş.l. dr. ing. GAVRILUŢ IOAN

ABSOLVENT
CIATĂU MĂDĂLIN ȘERBAN

ORADEA
2020
UNIVERSITATEA DIN ORADEA
FACULTATEA DE INGINERIE ELECTRICĂ ŞI
TEHNOLOGIA INFORMAŢIEI
DOMENIUL / PROGRAMUL DE STUDIU: ELECTRONICĂ APLICATĂ
FORMA DE ÎNVĂŢĂMÂNT: ZI

Automatizarea unei centrale termice

COORDONATOR ŞTIINŢIFIC
Ş.l. dr. ing. GAVRILUŢ IOAN

ABSOLVENT
CIATĂU MĂDĂLIN ȘERBAN

ORADEA
2020
1
Cuprins

Cuprins....................................................................................................................2.
1.Automatizarea centralelor termice....................................................................3.
2.Arduino...............................................................................................................12.
2.1.Generalități.................................................................................................13.

2.2.Mediul de lucru Arduino IDE...................................................................17.

2.3.Intrări-Ieșiri digitale..................................................................................23.

2.4.Modulația în durată a impulsurilor – PWM...........................................26.

2.5.Senzori Arduino-Principiul de funcționare.............................................29.

3.Termostat centrală termică cu control Web....................................................32.

3.1.Prezentare..................................................................................................32.

3.2.Componentele proiectului........................................................................32.

3.4.Asamblarea proiectului............................................................................35.

3.5.Rezultatul final..........................................................................................42.

Concluzii...............................................................................................................43.

Bibliografie...........................................................................................................44.

Anexe.....................................................................................................................45.

2
Cap.1. Automatizarea centralelor termice

Centralele termice au un rol esențial în viața noastră de zi cu zi, acestea asigurând


temperatura optimă în încăperile locuințelor noastre, dar și a apei de uz casnic. Pentru a îndeplini
în totalitate aceste nevoi, centralele termice trebuie să funcționeze în permanență, dar și să se
adapteze schimbărilor climatice naturale. În acest caz o centrală termică necesită o automatizare
pentru a îndeplini nevoile menționate.

În funcție de ce tip este centrala termică, o automatizare cuprinde:

• termostat - un dispozitiv cu ajutorul căruia va funcționa centrala termică în


funcție de temperatura setată;

• regulator de presiune (în cazul centralelor pe gaz) – acesta permite trecerea


gazului în funcție de necesitatea centralei;

• senzor de flacără (în cazul centralelor pe gaz) – acesta va detecta stingerea


focului din arzător ca urmare, modulul de control va opri alimentarea cu gaz;

• supapa de siguranță – la o anumită presiune aceasta va deschide circuitul de


lichid pentru a evita distrugerea circuitului;

• modul de control (programator) – acesta va permite programarea centralei la


anumite ore sau zile.

Aceste automatizări au și rolul de a proteja centrala de degradări critice cu ajutorul


senzorilor care vor detecta fiecare avarie, in final semnalizând printr-un semnal sonor și/sau
vizual, dar si de alte daune cum ar fi: incendii, inundații, explozii, senzorii citind avariile care duc
la aceste daune, automatizarea va opri alimentarea cu lichid termic sau combustibil.

3
Fig. 1. Schemă centrală termică [1]

O centrală termică de perete, cunoscută și sub denumirea de centrală termică


murală sau cazan mural, este montat pe un perete sau într-o nișă puțin adâncă din perete, destinat
producerii de agent termic necesar încălzirii și a apei calde de consum pentru o locuință
individuală. Dacă aceste cazane sunt destinate numai producerii de apă caldă de consum li se
spune boilere.

Combustibilul folosit este de obicei gazul natural, dar există construcții care utilizează
combustibil lichid (GPL). Pot fi cu cameră de ardere deschisă sau închisă (etanșă). În ultimul
timp sunt realizate sub forma cazanelor cu condensare, care au performanțe superioare.
Prepararea apei calde de consum se poate face în momentul cererii (instantaneu), sau în prealabil
(cu acumulare). De obicei sunt montate în interiorul clădirilor, dar pot fi montate și în exterior.

Centralele termice de perete produc agent termic (format din apă și, eventual, antigel)
destinat încălzirii, cu o presiune de cel mult 6 bar și o temperatură de cel mult 95 °C.
Randamentul lor termic brut trebuie să fie de cel puțin 90 % în cazul centralelor fără
condensare (cele cu condensare au randament termic brut superior).

Majoritatea constructorilor oferă puteri cuprinse între 5 – 100 kW, însă valoarea cea mai
frecventă este de 20 000 kcal/h, adică cca. 24 kW. Deoarece gazul natural are o putere calo
rifică inferioară de aproape 36,00 MJ/m3N, consumul orar maxim în cazul acestor centrale este
de 2,4 m3N/h, care este cota de gaz obișnuită alocată de distribuitorii de gaz din România
utilizatorilor individuali de astfel de centrale termice. Această cotă asigură încălzirea unei
locuințe de 480 m2. La centralele pe gaz, alimentarea cu gaz se face din rețele de presiune joasă,
adică la suprapresiunea nominală de 2000 Pa, cu toleranță între 1500 și 5000 Pa.

4
În România o centrală cu o putere termică sub 0,1 Gcal/h (116,3 kW) poate fi amplasată și
în încăperi care nu sunt considerate săli ale cazanelor.

Centrala este formată în principiu dintr-o carcasă fixată pe perete, în care se găsesc:
un arzător, o cameră de ardere, un sistem de evacuare al gazului ars, un schimbător de
căldură principal, o pompă de circulație, un sistem de preparare a apei calde de consum, un
robinet cu trei căi, un vas de expansiune, armături (supape, robinete de umplere, golire și
aerisire), senzori și electronică de comandă.

Din punct de vedere al preparării apei calde de consum (= apă caldă menajeră, apă caldă
sanitară) ele pot fi cu prepararea instantanee a apei sau cu acumulare (cu prepararea apei în
prealabil). Prepararea apei calde de consum se face cu ajutorul agentului termic produs de
centrală.

În cazul preparării instantanee apa caldă este produsă în momentul apariției cererii de consum.
Prepararea se face comutând agentul termic de la instalația de încălzire la un schimbător de
căldură cu plăci. Corelarea fluxului termic necesar producerii apei calde cu cel produs prin ardere
este dificilă. Există două soluții:

Se optează pentru un debit de apă fix (cât curge la un robinet) cu o diferență de temperatură fixă,
caz în care automatizarea arzătorului este simplă, dar centrala nu este flexibilă la cererea de apă
caldă: poate servi doar un robinet, care nu poate avea debit mic, nu se poate face economie de apă
caldă. Soluția este însă ieftină.

Se optează pentru flexibilitate, ceea ce necesită modularea flăcării (reglarea puterii flăcării prin


cantitățile de gaz și aer introduse în camera de ardere), ceea ce conduce la o soluție mai scumpă.

În cazul preparării apei calde în prealabil, aceasta se face într-un vas, încălzit de agentul termic.
Soluția este flexibilă, simplă, dar mai voluminoasă și mai scumpă, datorită vasului de acumulare.
În plus, din vasul de acumulare căldura se pierde puțin câte puțin în mediul ambiant, așa că
centrala consumă combustibil și în absența solicitării de apă caldă.

Din punct de vedere al tirajului, centralele de perete pot fi cu tiraj natural sau forțat. În cazul celor
cu tiraj natural (zise și cu arzător cu aer autoaspirat) aerul necesar arderii este preluat la fel ca la
o sobă obișnuită, din incinta în care se află centrala, iar gazele de ardere sunt evacuate în exterior
printr-un coș de fum, cu ajutorul tirajului realizat de acesta. Camera de ardere este deschisă, adică
5
comunică cu incinta în care este amplasată centrala. Centralele cu tiraj natural sunt mai simple,
mai fiabile, mai silențioase și mai ieftine, însă pot fi amplasate doar în spații care îndeplinesc
condiții foarte restrictive.

La centralele cu tiraj forțat (zise și cu arzător cu aer insuflat sau cu arzător cu introducere forțată
a aerului), tirajul este realizat de un ventilator incorporat. În acest caz aerul necesar arderii este
preluat din exteriorul incintei în care este montată centrala, iar gazele produse prin ardere sunt
evacuate tot în exterior, de obicei prin racorduri concentrice (coș ventuză). Camera de ardere
este închisă (etanșă), adică nu comunică cu incinta în care este montată centrala. Ventilatorul este
o componentă suplimentară, care scumpește construcția și care se poate defecta destul de ușor.
Condițiile de amplasare ale centralei sunt însă mult mai puțin restrictive.

Într-un proces de încălzire a apei calde si prepararea a agentului termic, obiectivul reglării
consta în menținerea mărimii reglate la valoarea presetată, în condițiile unor costuri reduse și
respectării confortului optim.

Văzute prin prisma optimizării, procesele de încălzire a apei calde si prepararea agentului
termic trebuie să respecte o serie de cerințe:

• menținerea unei temperaturi interioare constante in încăperile clădirii, cu


posibilitatea modificării in funcție de: destinația încăperii, regimul de utilizare, perioada
de zi sau noapte; ca urmare este necesar sa se controleze procesul de încălzire în fiecare
încăpere..

• coordonarea regimului hidraulic al instalațiilor de încălzire cu caracteristică de


pompare debit – presiune.

• coordonarea regimului hidraulic al punctelor termice și al rețelei de apa fierbinte


cu caracteristicile funcționale ale pompelor de circulație.

• menținerea temperaturii apei calde de consum în locuința, constant; această


cerință fiind influențată de variația consumului de apă caldă și a temperaturii agentului
termic primar.

• livrarea agentului termic primar în rețea și la punctele termice, la nivelul de


temperatură apropiat de cel presetat.

6
În funcție de cerințe și costul soluțiilor , automatizarea centralelor termice poate fi de la o
instalație ușoară până la o complexitate superioară, cum ar fi: automatizare locală, centralizată,
ierarhizată si distribuită.

O buclă locală de reglare funcționează independent față de celelalte bucle de reglare, nu


necesită alte conexiuni și are multe dezavantaje: parametri ficși ai regulatorului si imposibilitatea
de comunicare (Fig.3.). Când domeniul de reglare este mare, rezultatul reglării cu astfel de bucle
poate fi nesatisfăcător.

Fig.2. Sisteme de conducere locală [2].

Conceptul pe care se bazează arhitectura sistemelor centralizate este camera de comandă,


în care se află regulatoarele, acestea fiind un avantaj important din punctul de vedere al
operatorului, care poate urmări evoluția diferiților parametrii și interveni în comanda instalației
(Fig.4). Aparatele locale sunt complet dependente de comenzile venite de la centrul de control,
ele neputând lucra independent, iar parametrii de acord al regulatoarelor rămân ficși.

7
Fig. 3. Sisteme de conducere centralizată [3].

Implementarea acestor sisteme se face cu aparate analogice sau numerice. În sistemele


analogice, transmiterea se face prin semnal unificat pneumatic sau electric, cel mai întâlnit fiind
cel electric. Implementarea cu aparatura numerică a conducerii centralizate reprezintă avantajul
posibilității de modificare a parametrilor de acord ai regulatoarelor pentru a optimiza
funcționarea instalației, precum și o urmărire selectiva a parametrilor din instalație.
Traducătoarele și elementele de execuție sunt comandate de semnal electric analogic.

Principalele dezavantaje ale acestor arhitecturi sunt date de traseele lungi de semnal mic și
de dependența sistemului de aparatură centrală (aparatele locale sunt complet dependente de
comenzile venite de la centru, ele neputând lucra independent).

Conducerea ierarhizată are o structură piramidală, în care primul nivel, realizat cu


regulatoare distincte, asigură conducerea subprocecselor, cu menținerea regimurilor de
funcționare optime, atât timp cât sunt respectate restricțiile locale. Al doilea nivel, format din
blocuri de automatizare, modifică restricțiile locale și criteriile de performanță ale regulatoarelor
și transmite informația la un calculator central sau modul de control. Nivelul ierarhic cel mai înalt
coordonează nivelurile inferioare, pentru a optimiza întregul sistem.

8
Conducerea distribuită îmbină avantajele arhitecturilor precedente, principiul pe care se
bazează fiind cel al conlucrării: fiecare buclă de reglare lucrează independent, dar comunică cu
celelalte sisteme pentru a optimiza întreaga instalație. Tendința este ca reglarea să se facă local,
prin bucle simple de reglare care comunică cu restul sistemului (Fig. 5). Traducătoarele de
construcție recentă sunt echipate cu un microsistem de calcul care realizează anumite funcții,
precum liniarizarea semnalului de ieșire.

Integratorul sistemului de conducere este rețeaua de comunicație, care-l face sa lucreze


unitar. Acesta face ca toate mărimile măsurate din instalație sau parametrii de reglare să fie
accesibili pentru programare orare, estimarea tendinței, afișare și monitorizare în orice punct al
rețelei. Sistemul de comunicație trebuie să fie capabil să transmită informația cerută automat, fără
ca operatorul să fie obligat să modifice setările.

Fig. 4. Sistem de conducere distribuită [4].

Până recent, aproape toate sistemele de conducere numerice utilizau comunicația serială
pe standardul RS232, cu o viteză de 9600 baud. Cu excepția unor aplicații mici, o astfel de viteza
este prea mică pentru conducerea distribuită. Rețelele de comunicație actuale realizează viteze de
comunicație de ordinul megabaud, care îmbunătățesc semnificativ performanțele sistemului de
conducere.

9
Sistemele distribuite de conducere necesită un limbaj de programare dedicat conducerii
automate, care trebuie să asigure:

• controlul automat al fiecărei mărimi din instalație, printr-un singur program, fără
a intra în conflict cu alte module de control;

• facilități de editare, de modificare a unui program de control al unei mărimi,


precum și de modificare rapidă a bazei de date;

• funcții matematice și logice, calcule de optimizare;

• posibilitatea de a da valori mărimilor din sistem, în cazul defectării unor


traducătoare;

• afișarea în timp real a datelor și graficelor de evoluție și de tendință.

Schimbările majore tehnologice actuale sunt legate de comunicare, de la mass-media la


rețelele de calculatoare, afectată fiind și aparatura de automatizare. Acest impact a condus la
elaborarea unui standard pentru o rețea dedicată automatizării clădirilor, numita BAC-Net, care a
devenit ghid pentru producătorii de aparatură numerică de automatizare. [5]

Modul de control (programator) al centralei termice

Achiziționarea unui modul de control pentru centrala termică este prima și cea mai
eficienta soluție de automatizare pe care o ai la îndemână. Acest dispozitiv comandă centrala
termică pentru a stabili temperatura setată în încăpere și prin obținerea de date de la alți senzori.
Există o sumedenie de tipuri de programatoare, de la comandă wired pana la comandă wireless.
Cele wired putându-le accesa doar la locul unde sunt montate pe când cele wireless permit
controlul de la distanță prin intermediul telefoanelor sau chiar a comenzilor vocale.

În anumite cazuri nu este suficient să fie folosit doar termostatul, iar pentru a avea o
eficiență cât mai sporită și costuri cât mai mici este necesar montarea unui senzor de temperatură
extern care va ajuta la reglarea funcționării centralei în funcție de temperaturile exterioare. Asta
înseamnă ca în zilele mai călduroase, centrala va genera mai puțină căldură deși termostatul este
setat pe o anumită valoare.

10
Termostatele de camera sunt foarte simple și ușor de utilizat, ele permițând setarea unei
temperaturi fixe, iar în funcție de asta centrala va porni și opri după comanda termostatului.
Aceasta soluție de automatizare nu este tocmai flexibilă pentru că funcționează ca și un buton de
on/off automat în prealabil împiedicând creșterea de temperatură și protejând centrala de
supraîncălzire.

Termostatele pentru calorifer se montează pe calorifer în apropierea robineților manuali,


iar acesta ajută la setarea nivelului de căldură generat de calorifer fiind mult mai util decât setarea
robinetului manual pe trepte.

Termostatele zonale sunt foarte eficiente atunci când se vrea diferențe de temperatura de
la o încăpere la alta, asigurând temperatura dorită pentru fiecare cameră a locuinței. Aceste
echipamente de automatizare sunt mult mai eficiente când sunt combinate cu tehnologii
termostatice inteligente. Acest tip de automatizare este mai costisitoare în funcție de numărul
încăperilor și tipul centralei termice. Este mult mai rentabil încadrarea in planul unei locuințe nou
proiectate decât într-o locuință veche.

11
Cap.2. Arduino

O placă de dezvoltare este o placă cu circuite printate din care face parte un
microcontroler și un minim de suport cerebral din partea unui inginer calculatoare sau chiar un
începător în acest domeniu. Aceste plăci de dezvoltare servesc și la proiectarea unor aplicații in
industrie.

Principalul motiv pentru care există aceste plăci de dezvoltare este acela de a oferi sprijin
la învățarea unui nou microcontroler, nu doar pentru distracție. Plăcile de dezvoltare, în general,
vin fără o carcasă sau un alimentator, de aceea trebuie să fie asigurat stocul cu cele necesare.
Acest fapt îl datorează scopul proiectării unei plăci de dezvoltare: acela de a fi folosite doar în
laborator; așa că placa poate fi alimentată de o sursă de laborator.

Kiturile de dezvoltare, care pot fi achiziționate pentru diversificarea domeniilor de


practicare nu sunt mereu produse de producătorul plăci de dezvoltare.

Deși aceste plăci de dezvoltare nu au fost făcute pentru hobby, ele sunt ușor de cumpărat
deoarece sunt cele mai noi și ieftine microcontrolere de pe piață. Cea mai populară placă de
dezvoltare este KIM-1. Aceasta a primit cea mai mare atenție din partea comunități de hobby,
deoarece a fost cea mai ieftină placă de dezvoltare și puteai să achiziționezi multe programe și
module ieftine pentru extinderea memoriei sau a altor funcții.

Cea mai importantă caracteristică a plăcilor de dezvoltare a fost monitorul de limbaj


integrat bazat pe ROM or “debugger”.

Scurtistoric cu plăci de dezvoltare:

-Intel 8085 microcontroler

-CDP18S020

-JOLT

-KIM-1

-LC80

-MicroChroma 68

12
2.1. Arduino Generalități[6]

Arduino este o platformă electronică “open-source” bazat pe un software și hardware


foarte ușor de folosit. Plăcile de dezvoltare Arduino sunt capabile să citească intrări cum ar fi:
lumina de la un senzor, un buton apăsat, un e-mail, acestea putând fi transformate în ieșiri:
activarea unui releu, pornirea unui motor, pornirea unui led pana la trimiterea unui e-mail. Practic
poți să-i spui plăcii ce să facă, iar ea va executa secvența de cod dată. Pentru a putea utiliza placa
este nevoie de folosirea limbajului Arduino și de programul IDE al acestuia. Odată cu trecerea
anilor, plăcile Arduino au dat naștere la sute de proiecte, de la proiecte banale folosite zi de zi
până la proiecte științifice.

Fig. 1. Placa de dezvoltare Arduino[7].

Această placă de dezvoltare este bazată pe designul plăcilor cu microcontroler produse de


câțiva furnizori, folosind diverse tipuri de microcontrolere. Aceste plăci pun la dispoziția
utilizatorului pini I/O, digitali și analogici, care pot fi interfațați cu o gamă foarte largă de shield-
uri(scuturi) și/sau cu alte circuite. Placa comunică prin interfețe de comunicații seriale, inclusiv
USB pe anumite modele, pentru încărcarea programelor de pe calculator. Limbajul de
programare folosit pentru Arduino este C și C++.

Primul Arduino a fost lansat în 2005, țintind asigurarea de soluții ieftine și simple pentru
începători și profesioniști pentru a crea dispozitive capabile să interacționeze cu mediul, folosind

13
senzori și sisteme de acționare. Cele mai comune exemple sunt dispozitivele pentru utilizatorii
începători precum: roboți simplii, termostate sau detectoare de mișcare (Fig. 2.).

Plăcuțele Arduino sunt disponibile pe piață sub forma preasamblată sau sub forma unor
kituri de asamblare de acasă. Specificațiile schemelor sunt disponibile pentru orice utilizator,
permițând oricărui să fabrice plăcuțe Arduino.

Adafruit Industries a estimat în 2011 că peste 300.000 de plăcuțe au fost produse, iar în 2013
700.00 de plăcuțe oficiale erau în posesia utilizatorilor.

Fig. 2. Robot 2WD cu Arduino UNO r3 și senzor ultrasonic[8]

Arduino a început în 2005 ca și un proiect al unui student al Institulului de Interacțiune a


Designului din Ivrea, Italia. La acea vreme stundenții foloseau o plăcuța de dezvoltare BASIC
Stamp care costau 100 de dolari, ceea ce era considerat foarte scump pentru studenți. Massimo
Banzi, unul dintre fondatori, era stundent la Ivrea. Numele de Arduino provine de la un bar din
Ivrea, locul unde o parte din fondatori obișnuiau să se întalnească.

Studentul columbian HernandoBarragán a creat platforma de dezvoltare Wiring care a


servit ca bază pentru Arduino. După finalizarea platformei Wiring, mai multe versiuni, mai light
și mai ieftine , au fost create și puse la dispoziția comunităților open-source. Din echipa inițială
Arduino au făcut parte Massimo Banzi, David Cuartielles, Tom Igoe, GianlucaMartino și David
Mellis.

14
O plăcuță Arduino este compusă dintr-un microcontroler Atmel AVR de 8, 16 sau 3 biți
(deși începând cu 2015 s-au folosit microcontrolere de la alți producători) cu componente
complementare care facilitează programarea și încorporarea în alte circuite. Un aspect important
la Arduino este că acesta dispune de conectori standard, care permit utilizatorului să conecteze
plăcuța cu procesorul la diferite module interschimbabile numite shield-uri. Unele shield-uri
comunică cu Arduino direct prin pinii digitali sau analogici, dar altele sunt adresabile individual
prin magistrala serială I2C permițând utilizarea mai multor module în paralel. Până în anul 2015
plăcuțele Arduino oficiale au folosit cipuri Atmel din seria megaAVR, în special ATmega8,
ATmega168, ATmega328, ATmega1280 și ATmega2560, iar în 2015 au fost adăugate cipuri de
la alți producători. O multitudine de alte procesoare au fost folosite de dispozitive compatibile
Arduino. Multe plăcuțe includ un regulator liniar de 5 V și un oscilator cu cuarț de 16 MHz (sau
un rezonator ceramic în unele variante), deși anumite plăcuțe, cum ar fi LilyPad, funcționează la
8 MHz și nu necesită regulator, datorită restricțiilor de formă. Un microcontroler instalat pe
Arduino vine preprogramat cu un bootloader care simplifică încărcarea programelor pe memoria
flash a cipului, în comparație cu alte dispozitive care necesită programatoare externe. Acest
aspect face Arduino o soluție simplă, permițând programarea de pe orice computer ordinar. În
prezent, bootloader-uloptiboot este bootloader-ul implicit instalat pe Arduino UNO.

La nivel conceptual, când se folosește mediul de dezvoltare integrat Arduino,


programarea tuturor plăcuțelor se face prin conexiune serială. Implementarea acesteia diferă în
funcție de versiunea hardware. Unele plăcuțe Arduino au implementate convertoare de nivel logic
pentru a realiza conversia între nivelele logice RS-232 și cele TTL. Plăcuțele Arduino din prezent
sunt programate prin USB, având integrate cipuri de conversie USB-serial, cum ar fi FTDI
FT232. Unele modele UNO, mai noi, folosesc un cip AVR separat programat să funcționeze ca
un convertor USB-serial, care poate fi reprogramat printr-un port ICSP dedicat. Alte variante,
cum ar fi Arduino Mini și versiunea neoficială Boarduino, folosesc adaptoare detașabile USB-
serial, cabluri, Bluetooth sau alte metode.

Plăcuța Arduino are expuși mulți dintre pinii de intrare/ieșire ai microcontrolerului, pentru
ca aceștia să fie folosiți de alte circuite. Diecimila, Duemilanove și UNO oferă 14 pini digitali de
intrare/ieșire, dintre care 6 pot produce semnale PWM și 6 intrări analogice care, de asemenea,

15
pot fi folosite ca intrări/ieșiri digitale. Acești pini sunt accesibili prin partea superioară a plăcuței,
prin intermediul unor barete mamă cu pasul între pini de 2,54 mm.

Plăcuțele originale Arduino erau produse de compania italiană SmartProjects. O parte


dintre plăcuțele cu brandul Arduino au fost proiectate de companiile americane SparkFun
Electronics și Adafruit Industries. 16 versiuni de hardware Arduino au fost produse în scop
comercial până la această dată: ArduinoDecimila in Stoicheia, ArduinoDuemilanove(rev 2009b),
Arduino UNO, Arduino Leonardo, Arduino Mega, Arduino Mega 256 R3, ArduinoNano,
ArduinoDue (procesor ARM Cortex-M3), LilyPadArduino (rev 2007), ArduinoYun.

16
2.2. Mediul de lucru Arduino IDE [9]

Pentru dezvoltarea programelor şi pentru programarea platformelor Arduino se utilizează


mediul de programare Arduino IDE. Acesta se poate descărca de la adresa
https://www.arduino.cc/en/Main/Software şi este distribuit cu titlu gratuit. Există variante pentru
cele mai uzuale sisteme de operare: Windows, Mac OS şi Linux. O altă alternativă este crearea de
programe utilizând platformele software care sunt online https://create.arduino.cc/. Presupunând
că sistemele de operare care sunt, uzual, instalate pe calculatoarele din laborator sunt cele de tip
Windows, în continuare se va face referire la utilizarea acestora. După descărcarea şi instalarea
mediului de porgramare Arduino IDE se rulează aplicaţia şi se obţine imaginea din Fig.3.

Fig.3. Ecran de start Arduino IDE.

Programele scrise pentru platformele Arduino poartă denumirea de „sketch” . Acestea


sunt alcătuite din două funcții importante:

voidsetup () {

// instrucțiunile de aici se execută o singură dată, la pornire

// se utilizează pentru setări și inițializări

17
voidloop() {

// instrucțiunile de aici se execută în buclă, de la ultima instrucțiune se reia bucla

// cu prima instrucțiune din această funcție, aici e programul principal

// se execută în mod repetat până la oprirea alimentării cu energie a sistemului

După cum au fost descrise pe scurt, prima funcție este utilizată pentru inițializarea
variabilelor, a comunicației seriale (de exemplu baud rate), pentru declararea pinilor ca fiind de
ieșire sau de intrare, diverse funcții pentru inițializarea unor senzori, etc. Această funcție este
executată la pornirea (imediat după alimentarea sau după reset) sistemului de dezvoltare
ArduinoUno, fiind rulată o singură dată. A doua funcţie (loop();), este funcția similară cu
„main()” din limbajul de programare „C”, este rulată în buclă, adică la sfârșitul execuției ultimei
instrucțiuni din cadrul funcției este continuată cu execuția primei instrucțiuni din această funcție,
totul fiind un ciclu care se repetă continuu.

Pentru a instala programuArduino IDE trebuie început prin a descărca programul de la


adresa https://www.arduino.cc/en/Main/Software a versiunii dorite. Sunt disponibile și versiuni mai
vechi precum și versiuni care necesită instalarea sau doar dezarhivarea şi rularea programului.
Aceasta ultimă variantă se utilizează în situaţiile în care se utilizează sistemul de operare
Windows la care nu se cunoaşte sau nu se doreşte instalarea programului (sau utilizatorul nu are
drepturile necesare instalării).

Mediul de programare Arduino IDE poate fi instalat pe cele mai uzuale sisteme de
operare: Windows, Linux, Mac OS. În continuare se va presupune instalarea sau utilizarea lui
folosind sistemul de operare Windows.

În momentul descărcării programului este posibilă şi donarea unei sume modice, necesare
pentru finanţarea acestui proiect, donaţia nu este o condiţie obligatorie, se poate descărca
programul şi fără acest act de caritate.

După instalare sau după prima rulare (în cazul variantei care nu necesită instalare),
programul va crea în folderul Documents un folder Arduino unde va salva bibliotecille de funcţii

18
care vor fi instalate ulterior precum şi programele nou create vor fi salvate acolo în mod implicit
(dacă nu se specifică altă cale).

La rularea Arduino IDE va apărea ecranul de start din Fig.3. Dupa lansarea în execuţie a
programului va fi necesară configurarea lui. De menţionat că aceasta configurare, a portului de
comunicaţie, va trebui repetată de fiecare dată când se schimbă portul USB din calculator la care
este conectată platforma Arduino, de fiecare dată când se va utiliza alt sistem Arduino şi la
fiecare pornire a calculatorului. Este (Îndrumător laborator microcontrolere - Arduino Pagina 6)
necesar acest lucru deoarece, teoretic, la fiecare conectare a Arduino la calculator, sistemul de
operare va atribui acestei conexiuni virtuale seriale un nume, acest nume poate să difere dacă se
schimba sistemul sau dacă trece un anumit timp în care Arduino nu a fost conectat la calculator.

Fig.4. Configurare Arduino IDE.

În Fig. 4 se poate observa meniul în care se pot face setările menționate anterior, în
meniul Board se alege platforma Arduino pentru care se va realiza programul sau care va fi

19
programat, iar în meniul Port se alege portul serial prin intermediul căruia calculatorul va
comunica cu platforma (Fig.5).

Fig.5. Configurarea tipului de Arduino precum și portul de comunicare.

După finalizarea acestor configurări, se poate trece la următoarea etapă, cea de scriere a
programului pentru microcontroler. Pentru un începător este recomandat utilizarea exemplelor,
pentru a descoperi fiecare facilitate oferită de Arduino. Aceste exemple se găsesc în meniul File –
Examples, fiind grupate în categorii.

Pentru fiecare bibliotecă nou introdusă în mediul de programare al aplicației, în mod


uzual, vine însoțită și de exemple care să ajute la înțelegerea modului de lucru cu aceste funcții.

Fig.6. Exemple de programe Arduino IDE.

20
Pentru început se poate deschide programul din 01.Basics, pentru a verifica dacă
programul se compilează, iar portul selectat este corect pentru continuarea operațiunilor. După
deschiderea exemplului urmează ca programul să fie compilat și trimis spre microcontroler.
Aceasta se poate face prin accesarea unui meniu sau prin intermediul celor două butoane
prezentate în Fig.7.

Fig.7. Localizarea butoanelor de compilare

și programare.

După cum se poate observa în Fig.7, cele două butoane sunt prezente în partea stângă-sus,
iar butonul 1 este responsabil cu compilarea programului, verificând dacă sunt erori de sintaxă
sau de utilizare a unor funcții, pe când butonul 2 va executa o compilare, iar în caz de reușită
programul va fi încărcat în microcontroler.

Un plus care vine la fiecare utilizare a unei componente sau unui modul nou, este
adăugarea de biblioteci/librării care conțin funcții permițând conectarea, accesul la date, comenzi
care permit utilizarea noilor componente sau module.

Atunci când sunt adăugate bibliotecile, acestea rămân salvate în folderul


Documents/Arduino. De asemenea, este de reținut faptul că fiecare bibliotecă de funcții conțin și
exemple de utilizare a funcțiilor. Aceste exemple vor fi listate în meniul File-Examples-Numele
bibliotecii.

Pentru a adăuga noi biblioteci în Arduino IDE accesăm meniul Sketch-IcludeLibrary-Add


.ZIP Library..., calea este prezentată și în Fig.8. După selectarea acelui meniu se va deschide o
fereastră de unde selectați noua librăriev(Fig.9).

21
Fig.8. Adăugarea unei librării noi din meniu.

Fig.9. Fereastra de selecție a noi librării.

22
2.3. Intrări-Ieșiri digitale [9]

Pentru microcontrolerul Atmega328 (prezent nu doar pe Arduino UNO), pinii pot fi


configurați ca și intrări sau ieșiri digitale, adică cu nivele logice. Înainte de a fi utilizați în cadrul
unui program, este necesar să fie configurați pinii ca fiind de intrare sau ieșire. În cazul plăcii de
dezvoltare Arduino, la pornirea sistemului, pinii digitali sunt configurați ca fiind de intrare, ceea
ce înseamnă că sunt în stare de înaltă impedanță. Menționăm faptul că dacă se utilizează pinii
astfel configurați și nu au contact alte componente care să le stabilească un nivel logic, există
posibilitatea ca nivelele logice ale pinilor să fie influențate de către mediul ambiant și să genereze
modificări ale nivelelor logice „citite”, rezistența lor echivalentă de intrare fiind de ordinul
sutelor de Mohm. Prin urmare este necesară stabilirea unui nivel logic stabil prin intermediul
unor componente electronice externe, pentru a fi siguri că nu se obțin valori influențate de către
mediu. Dacă pinii respectivi nu sunt utilizați în cadrul programului ca fiind intrări, adică nefiind
citiți de program, atunci nu e necesară conectarea altor componente la acei pini.

La inițializare toți pinii sunt în starea de înaltă impedanță și din motive de consum de
energie electrică, având o rezistență electrică echivalentă de valoare mare practic curentul prin
circuitul electric al respectivului pin este de valoare foarte mică și implicit rezultă un consum
redus de energie electrică. Atunci când sunt utilizați ca și pini de intrare este recomandată
utilizarea unor rezistențe externe, de valori de ordinul 10k, conectate la VCC sau la GND („pull-
up” sau „pull-down”).

Microcontrolerul Atmega328 din componența platformei ArduinoUno are integrate


rezistențe electrice de „pull-up”, care pot fi activate utilizând parametrul INPUT_PULLUP în
cadrul instrucțiunii de setare a tipului de pin (de intrare sau de ieșire). Activarea acestor rezistențe
interne de pull-up are ca efect, oarecum, inversarea comportamentului pinilor de intrare, în sensul
în care dacă nu este activ senzorul de la intrare (de exemplu un comutator) se va citi valoarea
HIGH, iar când senzorul este activat se va citi valoarea LOW. Uzual valoarea rezistențelor
interne de pull-up este de ordinul 20k-50k, dar diferă și funcție de tipul microcontrolerului.
Conectând un led la GND și la un pin digital (având activă rezistența de pull-up) este foarte
probabil ca ledul să lumineze suficient cât să fie vizibil.

În cazul în care se activează rezistențele de pull-up, senzorii sau comutatoarele care se


conectează la intrare ar trebui să fie active (să comute la activarea lor) pe starea logică de LOW.

23
Un alt efect al utilizării rezistențelor interne de pull-up, datorită faptului că registrele care
configurează activarea lor sunt aceleași care controlează și starea logică a ieșirilor pinilor, când
sunt configurați ca ieșiri, având activate rezistențele interne de pull-up în momentul în care se
configurează pinul ca fiind de ieșire, starea pinului va fi HIGH ! Acest comportament este valabil
și în sens invers, având setat pinul de ieșire pe nivelul HIGH și comutând respectivul pin ca fiind
de intrare se va activa automat rezistența internă de pull-up !

Utilizarea pinilor ca ieșire digitală implică utilizarea parametrului OUTPUT în


instrucțiunea pinMode(). Pinul configurat ca fiind de ieșire poate furniza curent de maxim 40mA,
fie în starea LOW fie în starea HIGH. Ca urmare pot alimenta sau comanda diverse circuite
electrice pentru care este suficientă valoarea maximă (Îndrumător laborator microcontrolere -
Arduino Pagina 10) suportată de circuitul intern al pinului respectiv. Uzual se pot comanda direct
leduri (cu utilizarea unei rezistente de limitare a curentului), dar nu se pot comanda direct relee
sau motoare care necesită curenți mai mari pentru funcționarea lor.

Scurtcircuitarea pinilor între ei sau conectarea la GND sau VCC poate duce inclusiv la
distrugerea integratului deși de obicei are ca efect distrugerea circuitului intern corespunzător
acelui pin. Unul din cele mai simple programe utilizate pentru inițierea utilizării mediului de
programare Arduino IDE precum și pentru învățarea programării platformei ArduinoUno este
programul “Blink”, are ca efect comanda unui LED realizând efectul de clipire. Schema electrică
este prezentată în Fig.10.

24
Fig.10. Schema electrică pentru exemplul

„Blink” [10]

Este utilizată o diodă LED care este gata lipită pe cablajul platformei ArduinoUno, fiind
conectată la pinul D13, prin intermediul unei rezistențe de 220 ohmi. Un nivel logic de 5V la
pinul D13 are ca efect aprinderea LED-ului. Programul utilizat se găseste în Arduino IDE, File-
Examples-01.Basics-Blink.

25
2.4. Modulația in durată a impulsurilor – PWM [9]

Termenul de PWM vine din limba engleza de la PulseWidthModulation și înseamnă că


avem un semnal modulat în lățimea impulsurilor de comandă. Ca să fim mai expliciți putem
spune că un astfel de semnal PWM constă în codarea informației în lățimea impulsului obținut.
Factorul de umplere al unui semnal PWM se calculează cu relația D(fu)=Ti/T, unde Ti este durata
impulsului și T perioada semnalului.

Deci, putem astfel să observăm că fiecare procent al unui astfel de semnal reprezintă o
valoare importantă în aplicația pe care o dorim să o implementăm cu un astfel de semnal spre
deosebbire de semnalul TTL care poate să aibă două stări: HIGH și LOW.

Semnalel PWM sunt semnale de comandă a unor tranzistoare de putere, folosite în cadrul
unor convertoare în comutație.

Un modulator PWM are rolul de a comand un comutator și este o parte importantă și


complexă a unui regulator de tensiune în comutație.

Principiul de realizare a unui astfel de modulator PWM constă în alcătuirea unei scheme
electronice care să conțină:

-generator în dinte de fierăstrău

-amplificator de eroare

-comparator

O diagramă simplificată pentru realizarea semnalului PWM este replrezentată în Fig.11.

26
Fig.11. Circuit pentru realizarea semnalului PWM.

Fig.12. Formele de undă pentru circuitul din Fig.11.

27
După cum se poate observa și în Fig.11 acest modulator PWM constă dintr-un generator
în dinte de fierăstrău, un amplificator de eroare și în comparator. Frecvența generatorului este
setată de valoarea constantei de tip RC.

Amplificatorul de eroare compară tensiunile de referință și semnalul de reacție. Semnalul


de reacție este obținut de obicei printr-o divizare a tensiunii de ieșire. Dacă considerăm ca Vf este
semnalul de reacție și Vref este tensiunea de referință și Vf=βV0, deoarece Vf=Vref, V0=Vref/β.

Tensiunea de la ieșirea amplificatorului de eroare este comparată cu valoarea semnalului


în dinte de fierăstrău. Dacă ieșirea acestuia este mai mare decât valoarea dintelui de fierăstrău
atunci la ieșirea comparatorului vom avea 1 logic adica T on. Dacă ieșirea amplificatorului este
mai mică decât valoarea dintelui de fierăstrău, atunci la ieșirea comparatorului vom avea 0 logic,
adică T off.

28
2.5. Senzori Arduino-Principiul de funcționare [11]

Senzorii pasivi nu necesită alimentarea cu energie electrică deoarece, atunci când sunt
exctați de un stimul extern, produc singuri energie electrică. Prin măsurarea cantintății stimulului
aplicat (spre exemplu o celulă fotovoltaică va produce mai mult curent când e soare fașă de când
e înnorat). În unele cazuri, curentul produs este foarte mic și pentru a fi amplificat, și acești
senzori necesită să fie alimentați dar nu pentru a funcționa ci pentru a li se amplifica semnalul
(Emitor IR, Fig.13).

Fig.13. Emitor IR cu schema de funcționare [12].

Senzorii activi necesită alimentarea cu energie electrică deoarece ei au proprietatea de a-


și mări sau micșora rezistența atunci când stimulul extern este aplicat. Un exemplu ideal este
fotorezistorul, care atunci când este luminat, acesta își poate scădea rezistența de la valoarea lui
maximă până la valoarea asociată cu intensitatea luminii. În funcție de cât de mare a fost această
scădere de rezistență, se poate stabili cantitatea de lumină ce cade pe suprafața senzorului. Acest
senzor îl întâlnim la telefoanele mobile smart, iar în funcție de luminozitatea exterioară, acesta își
modifică luminozitatea ecranului.

29
Fig.14. Fotorezistor cu schema de funcționare [13].

Există senzori care se autocalibrează la începutul utilizării, cum ar fi anumiți senzori de


lumină, care pentru a detecta creșterea sau scăderea luminii, este necesar măsurarea luminii
inițiale și să fie considerată drept reper.

Alți senzori au nevoie de „debouncing” deoarece se pot activa chiar și când stimulul nu
este prezent. Senzorul de înclinare este un exemplu foarte bun deoarece dacă acesta este amplasat
într-o mașină care circulă pe un drum de țară, va genera semnal în continuu. În acest caz,
senzorul va fi măsurat de mai multe ori la intervale de timp dorite.

Fig.15. Senzor de înclinare [14].

30
Aceeași problemă poate să apară și la apăsarea unei tastaturi mecanice. La apăsare,
mecanismul nu face un singur contact și din cauza vibrațiilor produse, în timp de o milisecundă,
contactul se închide/deschide de mai multe ori.

Debouncing este mecanismul prin care un senzor este citit de mai multe ori pentru o
perioadă mai îndelungată de timp (de exemplu pentru 2ms) și la sfârșit se decide dacă este ON
sau OFF. Aceasta particularitate apare la senzorii de tip ON/OFF.

31
Cap.3. Termostat centrală termică cu control Web

3.1. Prezentare

După cum am prezentat în prima parte a acestui proiect, pentru buna funcționare a unei
centrale termice, este necesar automatizarea acesteia. Pe lângă controlul automat al centralei vom
face ca acestă operațiune să fie posibilă de la distanță cu ajutorul unui calculator sau telefon smart
cu conectivitate la internet.

Această automatizare va putea funcționa cu ajutor unei plăci de dezvoltare Arduino UNO,
cu care vom comanda mai mulți senzori și module, chiar și un shield(scut). Asmblul final total va
fi format din senzori pasivi și activi, dar și senzor debouncing.

3.2. Componentele proiectului

Pentru controlul opriri și porniri centralei, dar și pentru modul „iarnă” (singurul mod în
care centrala va circula lichid termic pentru unitățile de încălzire din încăperi; adică va porni
pompa de lichid termic), vom folosi un modul Arduino cu relee pe două canale(unul pentru
pompa de apă, iar celălalt pentru funcția de ON/OFF al centralei). Acest modul va fi controlat
implicit de către Arduino UNO.

Fig.1. Modul releu cu 2 canale cu schemă electrică [13]

Acest modul este comandat de către pinii digitali ai plăci Arduino prin semnale de tip
„HIGH” și „LOW”. Conexiunile centralei la relee vor fi făcute la pinii COM și NO (normal open,
adică normal deschis).

32
În acest proiect vom implementa un termostat pentru o centrală termică pe gaz, deci vom
avea nevoie de un circuit de protecție împotriva stingerilor accidentale ale focului din camera de
ardere. Acest lucru va putea fi realizat cu ajutorul unui fototranzistor sub forma unei diode
IR(YG1006). În momentul în care flacăra s-a stins fără ca valva de alimentare să fie oprită,
centrala se va opri automat.

Fig.2. Senzor IR pentru foc.

Acest senzor este un fototranzistor NPN din silicon de mare viteză și înaltă senzitivitate
cu forma unui led normal de 5mm. Este sensibil la radiații infrared înalte. Acestea are o tensiune
Emitor-Colector de 5V(Vec0=5V), iar curentul la colector este de 20 mA(Ic=20mA).
Temperatura de lucru a acestuia este cuprinsă aproximativ între -25 si +85 grade Celsius.

Deoarece vom folosi lichid termic pentru schimbul de căldură dispozitiv-cameră, vom
avea nevoie de senzori pentru măsurarea temperaturi lichidului termic. În aplicație vom vrea să
aflăm temperatura de tur și retur al agentului termic, date care ne vor ajuta în diminuarea
consumul de gaz rezultând o factură mai mică la gaz.

Fig.3. Senzori temperatură DS18B20.

33
Deoarece este un senzor foarte avansat, vom folosi acest senzor la citirea temperaturi
dintr-o încăpere.

Senzorul DS18B20 funcționează între o temperatură de -55°C și +125°C, iar acesta are o
acuratețe de ±0,5°C între -10°C și +85°C. De asemenea, senzorul se poate alimenta direct din
canalul folosit pentru date, ceea ce elimină necesitatea folosirii unei surse de alimentare separate.

Fiecare senzor DS19B20 are un cod serial de 64bit, ceea ce permite mai multor senzori
identici să folosească același circuit. Are aplicare în proiectele ce includ în principal controlul
temperaturii în interiorul unei clădiri. Deoarece este un senzor foarte sofisticat, acesta nu necesită
componente externe și poate fi alimentat direct prin circuitul de date la o tensiune cuprinsă între 3
și 5,5V.

DS18B20 poate fi practic la citirea temperaturilor din diferite aparate electrocasnice sau
chiar pentru utilaje industriale. Are o acuratețe foarte bună, ceea ce înseamnă ca poate fi utilizat
si în industrie.

Conectivitatea la rețeaua de date (internet) va putea fi posibilă prin intermediul shield-ului


Arduino Ethernet W5100 care va putea fi montat simplu direct pe placa Arduino. Acesta
folosește pinii digitali 10,11,12,13,5V,GND ai plăci de dezvoltare, restul pinilor putând fi folosiți
cu ușurință pentru alți senzori sau chiar alte shield-uri.

Fig.4. Shield Ethernet W5100.

34
W5100 este un Ethernet controler single-chip cu funcții complete și cu acces la internet
10/100mbs, construit pentru aplicații incorporate unde ușurează integrarea, stabilitatea,
performanța și costul de sistem necesar. W5100 a fost proiectat ca să faciliteze implementări
ușoare de conectare la internet fără a utiliza un sistem de operare. Acesta are un buffer de internet
de 16Kbytes pentru transmisiunea de date. Acest shield nu necesită abilitați avansate în Ethernet
controler, este suficient un dispozitiv pentru programare.

Pentru a controla acești senzori și acest shield, avem nevoie de placa de dezvoltare
Arduino, care va prelua și transmite semnale pentru a îndeplini scopul principal al acestui proiect
(automatizare unei centrale termice pe gaz-termostat control).

Arduino prin intermediul programului va colecta date de la senzorii de temperatură


DS18B20 și senzorul IR de foc, comandând mai apoi modulul relee cu doua canale. Controlul
datelor de răspuns va fi asigurat într-o interfață web, încărcată online de shieldul Ethernet W5100
care ne va asigura ușurința de lucru cu această automatizare.

Deoarece consumul de curent al acestei automatizări nu este deloc ridicat, vom folosi un
alimentator simplu cu tensiune de 9V și un consum maxim de 1.5A.

3.3. Asamblarea proiectului

Pentru asamblarea tuturor componentelor acestui proiect vom avea nevoie de câteva
ustensile generale:

-un blat de lucru rezistent la temperatură ridicată

-pensetă

-clește

-pistol de lipit

-cositor

-pastă de lipit

-suport clește pentru fixarea plăcii tip test

35
Prima etapă și cea mai simplă este aceea de a monta shieldul Ethrnet W5100 pe placa
Arduino (Fig.5). Pin-layout-ulshield-ului se potrivește perfect cu cel al plăcii Arduino UNO
permițând folosirea pinilor analogici rămași nefolosiți de către shield (pinii folosiți: 10,11,12,13).

Fig.5. Shield Ethernet montat pe Arduino UNO.

Din acest moment putem realiza deja conectivitatea webserverului și setarea adresei IP și
a adresei MAC. Aceasta poate fi de forma:

byte mac[] = {

0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddressip (192.168.1.177);

Mai târziu în sketch, aceste valori vor fi folosite la stabilirea conexiuni de internet astfel:

Ethernet.begin (mac, ip);

A doua etapă este aceea de a conecta senzorii la pinii shield-ului. Primul modul pe care îl
vom conecta va fi cel cu relee cu 2 canale (Fig.6).

36
Fig.6. Schema conectare modul relee cu 2 canale.

După cum se poate observa în schemă, conectarea este foarte simplă, aceasta realizându-
se astfel:

-pinul VCC de la modul la pinul 5V de la shield;

-pinul In2 de la modul la pinul digital 9 al shield-ului;

-pinul In1 de la modul la pinul digital 8 al shield-ului;

-pinul GND de la modul la pinul GND de la shield.

În acest fel, prin intermediul pinilor digitali 8 și 9 vom putea controla starea în care se află
fiecare releu (ON/OFF), la momentul dorit.

Observând schema în partea dreaptă a modului, avem pinii NO, COM, NC. Aceste
terminale vor fi conexiunile pentru centrala termică și implicit pentru pompa agentului termic. Ca
și însemnătate, acestea reprezintă: NO - Normal Open (normal deschis), COM – Common
(comun), NC - Normal Closed (normal închis).

Pentru a controla aceste relee vom folosi o secvență de cod foarte simplă:

#define releu_centrala 8

voidsetup()

37
{

//Aicivom seta pinul ca fiind OUTPUT

pinMode(releu_centrala, OUTPUT);

void loop()

//Ne asiguram ca acestaeste in starea OFF

digitalWrite(releu_centrala, LOW);

delay(2000);

//In acest fel vom comuta releul in starea ON

digitalWrite(releu_centrala, HIGH);

delay(2000);

Pentru acest modul nu va fi nevoie de folosirea altor componente pentru funcționarea


acestuia deoarece toate cele necesare sunt deja proiectate pe placa lui.

Conexiunea la centrală va fi făcută la pinii NO si COM deoarece vrem ca în momentul


opririi termostatului, centrala să nu rămână pornită.

Senzorii care ne vor permite colectarea de date de la agentul termic sunt senzorii de
temperatură (tur, retur). Acești senzori au 3 terminale (VCC, GND și signal/data) care vor putea
fi conectați la Arduino UNO cu ajutorul unei rezistențe cu valoare de 4.7k ohmi conectată în
paralel între terminalele VCC și DATA. Schema de conectare se poate observa în Fig. 7.

38
Fig.7. Schema de conectare a senzorilor de temperatură DS18B20.

Dat fiind faptul că acești senzori sunt de mare precizie, al treilea va fi folosit pentru citirea
datelor temperaturii din ambient, conectarea fiind la fel ca și la cele menționate mai sus.

Pentru citirea datelor de la acești senzori va trebui să folosim o librărie numită OneWire,
acesta putând fi inițializat în voidsetup(), iar cu linia sensor.requestTemperatures() vom citi
datele date de senzor. Codul complet poate să fie astfel:

#include <OneWire.h> //includem fisierele aditionale ale librariei

#include <DallasTemperatures.h>

#define ONE_WIRE_BUS 7

OneWireoneWire(ONE_WIRE_BUS);

DallasTemperaturessensors(&oneWire);

Float Celsius = 0;

voidsetup() {

sensor.begin(); //in acest pas initializam senzorii

Serial.begin(9600);

39
void loop() {

Celsius = sensor.getTempCByIndex(0);

Serial.print(Celsius);

Serial.print(“C “);

delay(1000); //vom astepta o secunda pana la urmatoarea citire

Această librărie poate fi descărcată de pe GitHub.com, unde se pot găsi și exemple.

În final va trebui să conectăm componenta care ne asigură protecție și ne alarmează în


cazul în care se stinge flacăra din camera de ardere. Aceasta componentă este senzorul IR de foc
cu senzitivitate mare. Pentru că acest senzor generează un semnal foarte slab va trebui să
amplificăm semnalul dat de acesta. Amplificare se va face prin conectare pinului + la pinul
Digital A0, care va fi înseriat la 5V cu o rezistență de 250ohmi. Pinul – va urma conectat la GND
al plăci Arduino UNO (Fig.8).

Fig.8. Schema conectări senzorului de foc.

Pentru colectarea datelor și afișarea acestora se poate folosi următorul cod:

const int flameSens = A0; //configuram pinul A0 ca fiind senzorul de foc 


int flameVal; //initializam o variabila pentru datele senzorului

void setup() {

40
  
Serial.begin(9600);//begin the serial monitor
pinMode(flameSens, INPUT);//definim pinul senzorului ca fiind de intrare
}
void loop() {
int flameVal = analogRead(flameSens);//citim valoarea senzorului și o memoram în
variabila setată la început
if (flameVal< 1023){//dacă datele citite sunt mai mari de 1023, vom stii că nu există
flacară
  
  Serial.print(“ALARMA! FOC OPRIT”); //se va printa textul dintre ghilimele
   }
Serial.println(flameVal); //se va printa valoarea citită a senzorului
}

41
3.4. Rezultatul final

După respectarea tuturor pașilor de mai sus, vom avea ca și rezultat o automatizare
performantă pentru o centrală termică (în general), senzorul de foc putând fi adaptat și la o
centrală termică pe lemne sau peleți, unde valorile limită vor fi modificate în funcție de aplicația
practică.

Putem observa in imaginile de mai jos (Fig.9, Fig.10) circuitul electric final, montat pe un
breadboard până la finalizarea testărilor și calibrărilor, urmând mai apoi a le lipi pe o placă cu
trasee integrate.

Fig.9. Circuit final termostat.

Fig.10. Circuit final termostat.


42
Concluzii

În final, după o supraveghere nu foarte îndelungată a centralei, se va putea observa o


diminuare semnificativă a consumului de gaz, datorită automatizării de mai sus prezentate.

În acest mod, riscurile și accidentele, precum scurgerile de gaz sau exploziile cauzate de
anumite defecțiuni, vor putea fi evitate într-o proporție cat mai mare.

Un mare avantaj al acestei automatizări este prețul accesibil al componetelor necesare


pentru realizarea acestui sistem de monitorizare a unei centrale termice. Raportul calitate-preț
este unul ideal: obținând atât siguranță cât și precizie prin cheltuielile minime.

Automatizarea unei centrale termice nu va permite schimbări de temperatură în încăperi,


ceea ce va determina o temperatură ambientală exactă și constantă. Acest lucru va face ca
eficiența acestei centrale să crească cu foarte multe procente.

43
Bibliografie:

[1] https://www.centrale-lemne-liepsnele.ro/instalare/

[2,3,4] https://www.yumpu.com/ro/document/read/15481257/automatizarea-sistemelor-si-instalatiilor-de-
incalzire

[5] https://ro.wikipedia.org/wiki/Central%C4%83_termic%C4%83_de_perete

[6] https://ro.wikipedia.org/wiki/Arduino

[7] https://www.emag.ro/placa-dezvoltare-arduino-uno-smd-r3-cl536/pd/D12VX4BBM/

[8] https://www.emag.ro/kit-robot-smart-car-cu-sasiu-2wd-cu-arduino-uno-r3-si-senzor-ultrasonic-
tri293/pd/DCCKHGBBM/

[9] https://biblioteca.utcluj.ro/files/carti-online-cu-coperta/341-7.pdf

[10] https://www.arduino.cc/en/tutorial/blink

[11] https://profs.info.uaic.ro/~vcosmin/pagini/resurse_arduino/Cursuri_2018/1/Arduino_1.pdf

[12] https://www.raspberrypi.org/forums/viewtopic.php?t=74407 , http://alliexpress.com

[13] http://schemaelectrica.blogspot.com/2017/11/fotorezistorul.html , http://emag.ro

[14] https://cleste.ro/senzor-inclinare.html

[13] http://wiki.sunfounder.cc/index.php?title=2_Channel_5V_Relay_Module

44
i

45
i
Anexa1

Schema electrică a modululuicu relee

Anexa2

Schema electrică a shield-uluiW5100


Anexa3

Schema electrică a circuitului cu senzori

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