Licenţă Carmina [623861]

1

2

Cuprins

Capitolul 1. Introducere ………………………….. ………………………….. ………………………….. …………………….. 5
1.1. Smartmettering. Definire. Aspecte generale ………………………….. ………………………….. …………… 5
1.2. Importanța energiei electrice în societatea actuală ………………………….. ………………………….. …… 6
1.2.1. Modalități de producere a energiei electrice. ………………………….. ………………………….. ……. 6
1.3. Energia ca produs ………………………….. ………………………….. ………………………….. ……………………. 9
1.3.1. Consumul de energie electrică la nivel național ………………………….. ………………………….. . 10
1.4. Reglementări Europene ………………………….. ………………………….. ………………………….. ………….. 11
1.4.1. Costurile și beneficiile măsurării inteligente ………………………….. ………………………….. ……. 11
1.4.2 Beneficii pentru companiile energetice ………………………….. ………………………….. ………….. 15
1.5. Sistemele de măsurare și securitatea informațiilo r ………………………….. ………………………….. …. 16
1.6. Perspective de dezvoltare la nivel European ………………………….. ………………………….. ………….. 16
Capitolul 2. Măsurarea energiei electrice în sistemele Smart mettering ………………………….. …………. 17
2.1. Aspecte generale ………………………….. ………………………….. ………………………….. …………………… 17
2.2. R eglementări de interfațare a sistemelor de măsură ………………………….. ………………………….. . 17
2.2.1. Protocolul de transmitere a datelor ………………………….. ………………………….. ……………….. 19
Capitolul 3. Proiectarea unei solutii pentru smart metering ………………………….. ………………………….. 21
3.1. Speficațiile soluției ………………………….. ………………………….. ………………………….. …………………. 21
3.2. Arhitectura soluției ………………………….. ………………………….. ………………………….. ……………. 21
3.2.1. Componente Hardware ………………………….. ………………………….. ………………………….. . 21
3.2.2 Module software utilizate ………………………….. ………………………….. ………………………….. …. 27
3.3. Proiectarea de detaliu ………………………….. ………………………….. ………………………….. ………… 27
Capitolul 4. Implementarea soluției de smart metering ………………………….. ………………………….. ……. 29

3
4.1. Alegerea componentelor hardware ………………………….. ………………………….. ……………………… 29
4.1. Implementarea modulului de transitere a datelor ………………………….. ………………………….. …. 30
4.2. Recepționarea datelor ………………………….. ………………………….. ………………………….. ……….. 38
Capitolul 5. Concluzii ………………………….. ………………………….. ………………………….. ……………………….. 44
Biblio grafie ………………………….. ………………………….. ………………………….. ………………………….. ………… 45
Anexe ………………………….. ………………………….. ………………………….. ………………………….. ………………… 45
Anexa 1 ………………………….. ………………………….. ………………………….. ………………………….. ………….. 45
Anexa 2 ………………………….. ………………………….. ………………………….. ………………………….. ………….. 53

4

Scopul lucrării

În lucrarea de față se urmărește realizarea unei soluții pentru facilitarea
urmăririi consumurilor de energie electrică înregistrate de un contor inteligent. Ideea
lucrării s -a născut pe perioada desfășurării activității de practică și a fost dezvoltată în
mai multe etape, pornind inițial de la realizarea unei soluț ii de interfațare, care a
reprez entat o lucrare la Sesiunea de Comunicări Științifice a Cercurilor Studenț ești din
cadrul Facultății de Inginerie și mai apoi continuând cu realizarea unui sistem integrat
acceptat și realizat după cerințele SDEE Transilvania Sud S.A. filiala Tg. Mureș,
proiect care a fost prezentat la două sesiuni de comuni cări științifice ale studenților, la
Stâna de Vale și respectiv la Universitatea din Oradea.
Pe baza rezultatelor obținute s -a proiectat și realizat un sistem care permite
urmărirea consumurilor de energie electrică în sectorul rezidențial cu ajutorul
contoarelor inteligente, utiliz ând un dispozitiv dedicat implementat cu microcontro ller
de tip ATMEGA 2560 și respectiv cu ajutorul dispozitivelor mobile ce dispun de
interfață Bluethoot și rulează sistem de operare Android.
Prin lucrarea de față se încearcă r ealizarea unui studiu bibliografic asupra
măsurării inteligente a energiei electrice (smart mettering), viz ându-se tendințele,
principiile și reglementările din domeniu, studiu bibliografic care să reprezinte baza
etapei de proiectare și implementare a sis temului de urmărire a energiei electrice.

5
Capitolul 1. Introducere

La nivelul actual de cunoștințe și dezvolta re tehnologică, se consideră că
universul care ne înconjoară există sub două forme: de substanță și câmp de forțe.
Materia este caracterizată prin două mărimi fundamentale: masa și energia .
Masa este măsura inerției și a gravitației, iar energia este măsura scalară a mișcării
materiei. Cuvântul energie are o răspândire foarte largă, dar, cu toate acestea,
conținutul concret al noți unii nu este la fel de răspândit sau riguros analizat, datorită
îndeosebi unor particularități mai subtile, caracteristice anumitor forme de transfer
energetic. Cea mai generală definiție, prezintă energia ca măsură a mișcării materiei .
Această formulare, deși corectă, prezintă inconvenientul unei exprimări mai puțin
explicite, având în vedere diversitatea mare a formelor de mișcare a materiei.
Energia clasică definește calitatea schimbărilor și proceselor care au loc în
univers, începând cu deplasarea în s pațiu și terminând cu gândirea. Unitatea și legătura
formelor de mișcare a materiei, capacitatea lor de transformare reciprocă a permis
măsurarea diferitelor forme ale materiei printr -o măsură comună: energia.
Energia este unul dintre cele mai importante c oncepte fizice descoperite de
om. Înțelegerea corectă a noțiunii de energie constituie o condiție necesară pentru
analiza sistemelor energet ice și a proceselor energetice.

1.1. Smartmettering . Definire . Aspecte generale

Una din căile prin care se poate avea controlul asupra consumurilor
energetice este reprezentat de monitorizarea și măsurarea eficientă a acestora.
O tehnologie care vine în sprijinul acestui concept este reprezentată de
măsurarea inteligentă M.I. (smart metering).
M.I. reprezintă specificații , hardware, software și sisteme de comunicații
care integrate pot oferi în timp real celor interesați consumurile de energie. Asa numita
'contorizare inteligentă' se referă la o nouă generație de avansate și inteligente de
contorizare dispozitivecare au capacitatea de a înregistra consumul de energie de
unanumit punct de măsurare în intervale de cincisprezece minute sau chiar mai puțin
[1].
Specificațiile sunt reprezentate de reglement ări și standarde naționale , de
exemplu emise de Autoritatea Națională de Reglementare în domeniul Energiei
(ANRE), guvernamentale (HG) și Organismul Național de Standardizare din România.
(SR EN) respectiv internaționale ca de exemplu Comisia Internațională de
electrotehnică / International Electrote chnical Commission (CIE / IEC), Comisia
Europeană etc. [1].
Date fiind aceste reglementări, dezvoltarea unor soluții care să satisfacă
cerințele impuse de către acestea este o oportunitate pentru prezent însă o necesitate
pentru viitor.

6
În această lucrare se propune o soluție constând din hardware, software și
tehnologii de comunicație care vine în sprijinul consumatorilor pentru accesul facil la
datele furnizate de către echipamentele inteligente.

1.2. Importanța energiei electrice în societatea actual ă

Viața modernă nu poate fi concepută fără energie electrică. Astfel, cea mai
mare parte a descoperirilor din ultimul secol nu ar fi fost realizate dacă nu a r fi existat
energia electrica. Aceasta e folosită pretutindeni. Presupunând c ă, brusc, am fi lipsți de
energie, iată ce s -ar întâ mpla [2]:
 lipsa luminii electrice
 căderea sistemelor informatice
 probleme imense cu transporturile (tramvaie, trenuri, avioane, maș ini cu
sistem de apr indere etc.) ; cele care vor rămâne, vor putea fi folosite doar
în timpul zilei la capacitate maximă (lipsa luminii pentru faruri)
 un gol imens în domeniul comunică rii (telefoane de orice fel, aparate radio,
TV, internet)
Și toate acestea doar la o privire fugară asupra importanț ei energiei.

1.2.1. Modalităț i de producere a energiei electrice.

Există numeroase modali tăți de producere a energiei. Dintre acestea vor fi
amint ite cele alternative :
 Energia solară – intens mediatizată ca o sursa de energie nepoluantă și
gratuită, aceasta e departe de a fur niza suficienta putere electrică .
 Energia eoliană – principa lele caracteristici: energie puțină, nu e constantă
 Energia mareelor
 Energia geotermală .
Cele mai răspâ ndite căi de producere a energiei electrice sunt prin
intermediul hirdrocentralelor, termocentralelor si a atomocentralelor.
Câteva date statistice l egate de producț ia de e nergie electrică :

7

Fig. 1 . Situația comparativă a consumurilor de energie electrică în 1993

Așa cum se observă din tabel, unele ță ri se bazeaza aproape exclusiv pe una
din cele trei variante. Astfel, în Franța, 73.2% din producția de energie e realizată cu
ajutorul atomocentralelo r. In Polonia, 97.3% e realizată termic (î n termocentrale). În
Norvegia, din total, 99.64% e din hidrocentrale. România are 76.98% e obținută din
termocentrale, restul în hidrocentrale (î n anul 1994). Centrala atomică de la Cernavoda
a fost închisă din nou î n noaptea dinspre 26 spre 27 mai 2001.
In 1997, Canada, Mex ic si Statele Unite au globaliz at 86% din consumul de
energie și 80% din producț ia de energie din cele doua americi (de sud ș i de nord).
Aproximativ 57% din energia produsă în America e termică (că rbuni, petrol, gaze
naturale); 25 % de hidrocentrale, 16% nu cleară iar ge otermală și alte surse
neconvenț ionale 2%. În 1997 energia generată î n America a totalizat circa 1.083
gigawati, aproximativ o treime din totalul mondial.
California conduce î ntreaga lume prin metodele alternative de producere a
energiei prin sursele sale nepoluante: vânt, soare și surse geotermale. În 1992,
California deținea mai mult de jumătate din energia geotermală obținută, peste 80%
din energia eoliană ș i 99% din capacitatea energiei solare obținute la nivel global. Și

8
totuși, acestea tr ei împreună reprezintă mai puț in de 6% din energia totala generată
de California.
Potențial, SUA ar putea îndruma lumea î n dezvoltarea unor surse noi de
energie. Industria de ap ărare a SUA produce cele mai profesional e produse de
inginerie, metale ș i calc ulatoare. Aces te cunoștinț e sunt necesare pentru a beneficia pe
deplin de noile surse energetice din lume.
Producția de energie electrică a României, în anul 2016, a fost realizată în
proporție de 42,38% din surse regenerabile, iar restul de 57,62% din surse
convenționale, potrivit datelor prezentate în raportul Autorității Naționale de
Reglementare în domeniul Energie (ANRE) privind rezultatele monitorizării pieței de
energie electrică .

Fig. 2 – Producția de energie electrică a României în 2016

9
Potrivit documentului, dintre sursele regenerabile, centralele hidroelectrice
au asigurat 28,86% din producția de energie electrică, urmate de instalațiil e eoliene
(10,13%), solar (2,60%) și biomasă (0,75%).
Cărbunele a fost a doua cea mai importantă sursă pentru producția de
energie electrică realizată în 2016, cu 24,47% din tota l, în vreme ce reactoarele de la
Cernavodă au produ s 17,49%. Gazele naturale au asigurat 14,99% din totalul
producției, iar păcura, alături de alte surse conveționale câte 0,28%, respectiv 0,39%.
În 2016, producția națională de electricitate a fost de 61,80 TWh, adică 61,8
miliarde kWh, în scădere cu 1,3% față de anul anterior. Emisiile medii de CO2,
respectiv deșeurile radioactive rezultate din producerea energiei electrice au avut
valoarea de 287,11 g/kWh, respectiv de 0,003 g/kWh.
Astfel, în 2016 emisiile de CO2 ale sectorului energetic național s-au ridicat
la 17.743.398 de tone.

Fig. 3 – Surse utilizate pentru producția de energie electrică în 2016

Recent România a fost clasată pe poziția 24 din 127 în Indicele Global de
Performanță Energetică al Forumului Economic Mondial . Acesta este realizat pe 18
indicatori care acopere trei domenii -cheie: creșterea economică și dezvoltare (măsura
în care arhitectura energetică a unei țări sau provenineța energiei, furnizate și
gestionate, susține sau diminuează creșterea economică), impactul asupra
mediului și accesul la energie și securitate (măsura în care o sursele de energie sunt
sigure, accesibile și diversificat). [3]
1.3. Energia ca produs
Piața producerii și comercializării de energie electrică este o componenta a
pieței angro ce cuprinde producerea de energie electrică în diverse tipuri de centrale și
energia fizic importată prin interconcetări transfrontaliere în scopul de a fi vândută
către alți participanți la piața de energie electrică. Activitatea de producere și
comercializare a energiei electr ice se desfășoară pe bază de licență abținută de la
ANRE ( Autoritatea Națională de Reglementare în domeniul Energiei ).
Pe această piață , producătorii de energie alectrică și întreprinderile care
realizează importuri se situează de partea ofertei , iar cei lalți participanși la piață

10
(furnizori de energie electrică, operatori de distribuție și de transport etc.), care
achiziționează energie electrică pe piața angro, se situează de partea cererii.
Luând în considerare interacțiunea dintre cerere și ofertă pe piața producerii
și comercializării de energie electrică, definirea pieței relevante poate implica o
segmentare a acesteia. Astfel, tranzacțiile cu energie electrică pot fi realizate atât in
regim concurențial , cât și în regim reglementar (în conformitte cu dispozițiile ANRE),
cele două categorii de tranzacții constituind două segmente dinstincte ale pieței
producerii ți comercializării de energie electrică. Dimensiunea celor două segmente
depinde de gradul de liberalizare a pieței de energie electrică, s egmentul concurențial
al pieței fiind relativ reduc comparativ cu gradul legal de liberalizare atins in România.
[4]
De asemenea , tranzacționarea energiei electrice de către producători pe bază
ce contracte la termen (încheiate pe platformele administrate de OPCOM) constituie
un segment de piață distinct în rap ort cu tranzacționarea energiei electrice.
1.3.1. Consumul de energie electrică la nivel național
Consu mul de enrgie electri că prezintă o deosebită importanță pentru analiza
pieței producerii și comer cializării de energie electrică , întrucât aceasta indica
echilibrul cerere -ofertă pentru întreg sistemul eletroenergetic. Consumul de energie
electrică reflectă cererea de energie electrică înregistrată la nivel na țional.
Consumul de energie urmează modele regulate , fiind supus unor fluctuații in funcție
de momentul zilei și de factorii de mediu. Astfel,cererea de energie electrică are tendința de a
fi mai ridicată în timpul zilei, în zilele lucrătoare și sâmbăta. Pentru asigurarea stabilității
rețelei este necesară realizarea unei prognoze a cererii de energie electrică. Prognoz a cererii
de energie presupune totodată o prognoză a caracteristicilor acestei cere ri: mărime, evoluție
întimp, modele de cereri, etc. [4]

Fig. 4 – Scenarii de evoluție a consumului intern net de energie electrică în România

11

Fig. 5 – Evoluția consumului intern net de energie electrică
În România coordonarea producț iei de energie este asigurat ă de DEN
(dispecerul național pentru energie). Preocuparea majoră a DEN este echilibrul între
producție și consum astfel încât să se asigure o continuitate și siguranță î n
alimentarea consumatorilor.
Sistemul național de transpo rt este asigurat de o regie națională:
TRANSELECTRICA – instituție care publică în permanență datele de funcționare
ale sistemulu i electroenergetic.

1.4. Reglementări Europene
Contoarele smart -meter încep să fi e tot mai răspândite în Europa, după ce
Uniunea Europeană a emis un document prin care se punea accent pe dezv oltarea
contorizării inteligente a energiei electrice av ând ca scop răspândirea acestor contoare
până în 2020 la 80% dintre consumatorii europeni .

1.4.1. Costurile și benefic iile măsurării inteligente

1.4.1.1. Variații în statele membr e

Raportul de evaluare efectuat de Comisie în 2014 a reflectat progresele
realizate în implementarea programului măsurarea inteligentă în întreaga UE și a găsit
o imagine mixtă (a se vedea F igura 1). Trei state membre au avansat în planurile lor de

12
lansare (Finlanda, Italia, Suedia), instalând aproape 45 de milioane de metri. Alte
treisprezece state membre și -au declarat intenția de a continua implementarea pe scară
largă a contoarelor inteli gente până în 2020, deși se află în diferite etape ale
procesului: Polonia și România nu au luat o decizie oficială privind lansarea, Spania a
procedat chiar fără ACB completă și Marea Britanie a întâmpinat probleme tehnice
grave care au întârziat semnific ativ procesul. În șapte state membre, ACB s -au
dovedit negative sau neconcludente (Belgia, Republica Cehă, Germania, Letonia,
Lituania, Portugalia, Slovacia). În Germania, Letonia și Slovacia, contorizarea
inteligentă s -a dovedit a fi justificată din pu nct de vedere economic numai pentru
anumite grupuri de clienți. Aceste țări se așteaptă acum să introducă contoare
inteligente la aproximativ 23% din consumatorii casnici.
Patru state membre (Bulgaria, Cipru, Ungaria, Slovenia) nu au realizat
deloc planu ri de implementare sau planuri de implementare. Deși entuziasmul pentru
măsurarea inteligentă a energiei electrice nu este uniform în întreaga UE, majoritatea
statelor membre intenționează încă să desfășoare desfășurarea pe scară largă până în
2020. Imagi nea este mai negativă în ceea ce privește implementarea contoarelor de
gaze (a se vedea caseta de mai jos) loc la o scară mai limitată în întreaga UE. [5]
Pe această hartă se poate oberva cooperativitatea ideei propuse de
Uniun eaEuropeană .
.

13
Fig. 6 – Progrese privind implementarea programului de măsurare inteligentă în UE,
2014

În țara noastră ideea a fost propusă oficial, iar punerea ei in practică se va
realiza având în vedere prevederile art. 66 din Legea energiei electrice și a gazelor
naturale nr. 123/2012, din Ordonanța de urgență a Guvernului nr. 33/2007 privind
organizarea și funcționarea Autorității Naționale de Reglementare în Domeniul
Energiei, aprobată cu modificări și completări prin Legea nr. 160/2012, în temeiul
art. 9 alin. (1) lit. h) din Ordonanța de urgență a G uvernului nr. 33/2007, aprobată cu
modificări și com pletări prin Legea nr. 160/2012.
Așadar , conform Art.13 din Legea energiei electrice și a gazelor
naturale nr. 123/2012 popularizarea industriei energetice cu contoare smart -meter v a
avea loc in două etape . P rima etap ă se dorește a se realiza până în anul 2020 în fiecare
zonă de concesiune a serviciului de distribuție a energiei electrice , când se vor instala
dispozitivele smar t-meter p entru cel puțin 30% din numărul total de consumatori.
A doua etapă este desc risă în Art.14 din aceeași lege , în care se specifică
faptul că elaborarea planului național proiectează ritmul de implementare, astfel încât,
la sfârșitul ultimului an de impleme ntare, 2026, procentul consumatorilor integrați în
sfera utilizatorilor contoarelor smart meter, să fie 100% din numărul total de
consumatori.

1.4.1.2. Impactul introducerii măsurării inteligente la consumatori

Raportul de referință al Comisiei se așteaptă ca măsu rarea inteligentă să
conducă la reducerea substanțială a costurilor pe termen lung: consumatorul mediu își
poate reduce costurile de energie cu aproximativ 3%, în timp ce unele tipuri de
consumatori le -ar putea reduce cu până la 10%. Cifra de 3% este î n concordanță cu
rezultatele proiectului de cercetare privind cererea de energie realizat de patru
furnizori de energie din Marea Britanie, în numele Biroului pentru Piețele de Gaze și
Electricitate (a se vedea Briefing -ul Bibliotecii House of Commons).
Încercările și lansările de contoare inteligente din SUA indică o economie
de costuri mai ridicată de 6 -12% (documentul OCDE). Cu toate acestea, dovezile din
partea statelor membre care au desfășurat în mod larg contorizarea inteligentă în UE ar
sugera că e conomiile ar putea fi mai modeste. Finlanda a constatat că economiile
medii sunt de numai 1 -2%, în timp ce Suedia a oferit o gamă de 1 -3%. Nu erau
disponibile date pentru Italia. [6]
Alte statistici realizate de statele membre au prevăzut că economiile
de energie sunt nesemnificative sau chiar scăzute ca 1% pe client. Unii susțin, prin
urmare, că contoarele inteligente ar trebui instalate numai pentru consumatorii cu
consum mare de energie, reducând costurile de desfășurare, men ținând în același timp
economiile medii mai mari. Germania, de exemplu, intenționează să restricționeze

14
contorizarea inteligentă obligatorie la consumatorii cu consum mare de energie sau cei
care locuiesc în clădiri noi.
Comisia susține că gradul de econom isire a energiei poate depinde în mare
măsură de funcționalitatea contoarelor inteligente: cele cu o funcționalitate largă costă
mai mult pe scurt , dar oferă economii mai mari pe termen lung.
Acest lucru se datorează faptului că acestea sunt capabile să f urnizeze
clienților o gamă mai largă de informații, ceea ce este mai frecvent actualizat și mai
ușor accesibil, facili tând astfel răspunsul la cerere . Cu toate acestea, o recentă lucrare
Egmont arată că doar aproximativ jumătate din statele membre care au lansat scară
largă au furnizat cele zece funcționalități recomandate pentru contoare inteligente, unii
utilizatori timpuriu au folosit tehnologii mai vechi care nu oferă întreaga gamă de
funcționalități.
O provocare deosebită va fi dacă dispozitivele intel igente mai vechi pot face
față îmbunătățirilor tehnologice sau trebuie înlocuite cu costuri foarte mari. În
conformitate cu studiul de evaluare comparativă din 2014 al Comisiei, în aproape toate
statele membre, deciziile finale privind funcționalitatea au fost delegate operatorilor
naționali de distribuție, care dețin în mod obișnuit contoarele inteligente, și nu
guvernele sau autoritățile de reglementare în domeniul energiei.
Pe baza costurilor naționale cu costuri reduse, a fost estimat costul estimat
de instalare a contoarelor inteligente de energie electrică variază foarte mult între
diferitele state membre, de la 77 la 776 de euro pe client.
Comisia susține că acest lucru se datorează parțial metodologiilor incoerente
la nivel național ACB: statele memb re au aplicat diferite rate și orizonturi de timp
pentru a evalua valoarea economică a contorizării inteligente, în timp ce durata de
viață estimată a contoarelor inteligente și viteza de punere în aplicare a schemelor de
implementare a variat foarte mult. Comisia recunoaște că diferențele dintre sistemele
naționale de transmitere a energiei au un anumit efect asupra costuril or și beneficiil or
măsurării inteligente, dar rămâne sceptică în privința rezultatelor naționale pentru
ACB și reflectă modalitățile de dezvoltare a unei metodologii mai standardizate. [6]
Raportul de referință al Comisiei se așteaptă ca măsurar ea inteligentă să
conducă la reducerea substanțială a costurilor pe termen lung: consumatorul mediu își
poate reduce costurile de energie cu aproximativ 3%, în timp ce unele tipuri de
consumatori le -ar putea reduce cu până la 10%. Cifra de 3% este în conco rdanță cu
concluziile Cercetării privind cererea de energie [6].
Încercări și lansări de contoare inteligente din SUA indică faptul că sunt
posibile economii de cost mai mari de 6 -12% (OCDE Hârtie). Dar dovezile din partea
statelor membre care au desfășurat în mod inteligent măsurarea în UE ar sugera că
economiile vor fi mai modeste. Finlanda a găsit că economiile medii au fost de numai
1-2%, în timp ce Suedia a dat un interval de 1 -3%. Nu erau date disponibile pentru
Italia. Al te ACB realizate de statele membre au prevăzut economii de energie
nesemnificative sau de 1% pe client. Unii susțin, prin urmare, că contoarele inteligente
ar trebui instalat e numai pentru consumatorii cu consum mare de energie, reducând
astfel costurile , desfășurând în același timp economiile medii mai mari. Germania, de

15
exemplu, intenționează să restricțion eze contorizarea inteligentă obligatorie la
consumatorii cu consum mare de energie sau la aceia care care locuiesc în clădiri noi.
[6]
Comisia susține că gradul de economisire a energiei poate depinde în mare
măsură de funcționalitatea contoarelor inteligente: cele cu o funcționalitate largă costă
mai mult dar oferă economii mai mari pe termen lung. Acest lucru se datorează
faptului că acestea sunt în măsură să ofere o gamă mai largă de informații către clienți,
care este actualizată mai frecvent și mai mult ușor accesibile, facilitând astfel reacția
de pe partea cererii. Totuși, o recenta hârtie Egmont subliniază faptul că do ar
aproximativ jumătate dintre statele membre care se află în faza de extindere la scară
largă au livrat cele zece funcționalități recomandate pentru contoare inteligente, unele
mai devreme. A doptatorii au folosit tehnologii mai vechi care nu oferă întreag a gamă
de funcționalități. O provocare particulară va fi dacă dispozitivele inteligente mai
vechi pot face față tehnologiei upgrade -uri sau trebuie să fie înlocuite la un cost foarte
semnificativ. În conformitate cu 2014 analiza comparativă efectuată de Co misie, în
aproape toate statele membre deciziile finale privind funcționalitatea au fost delegate
operatorilor naționali de distribuție, care dețin de obicei contoarele inteligente, mai
degrabă decât guvernele sau autoritățile de reglementare în domeniul e nergiei.

1.4.2 Beneficii pentru companiile energetice

Contorizarea inteligentă s -ar putea dovedi foarte benefică pentru un sistem
național de distribuție operatorii (DSO), care promovează implementarea acestora prin
distribuția europeană
Operatorii de sistem pentru rețele inteligente (EDSO). Decizia ENEL (DSO
din Italia) de a lansa măsurarea inteligentă a fost făcută în vederea înțelegerii în care se
pierde energia sistemul de transport și modul de reducere a acestor pierderi.
Principalele DSO din Span ia și
Franța a ales să procedeze la o extindere la scară largă a contoarelor
inteligente, chiar și fără analiza detaliată a impactului asupra clienților săi.
Considerații comerciale a influențat procesul de luare a deciziilor în Finlanda, în cazul
în care DSO a impus inteligent măsurarea desfășurării trebuie consacrată în legislația
guvernamentală. Numai în Suedia a fost măsurarea inteligentă promovată de guvern în
mare măsură ca răspuns la preocupările consumatorilor. Comisia de Conturi Publice a
Camerei C omunelor din Marea Britanie susține că multe dintre acestea beneficiile
inițiale ale implementării contorizării inteligente ar putea fi acumulate de furnizorii de
energie mai degrabă decât consumatorii, în special pe piețele energiei necompetitive.
Consuma torul UE (BEUC) sprijină contorizarea inteligentă în principiu, dar cred că ar
trebui să fie opțional, iar consumatorii nu ar trebui să plătească costurile instalării, în
timp ce clienții vulnerabili ar trebui să fie protejați de creșteri mari ale costuril or de
vârf ale energiei. [6]

16
1.5. Sistemele de măsurare și securitatea informațiilor
S-au exprimat preocupări legate de protecția datelor în sistemele complexe
de rețele inteligente, în special detaliile personale ale clienților și informațiile despre
modelele lor de energie utilizare. Documentul Egmont sugerează că puține state
membre au acordat o atenție deosebită la protecția datelor în cadrul programului de
derulare inteligentă a măsurătorilor. In Olanda, consumatorii individuali vor putea
renunța la contoare inteligente din motive de date confidențialitate. Propuneri similare
sunt disc utate în Regatul Unit. A îndeaproapeîngrijorarea legată de aceasta este
susceptibilitatea rețelelor inteligente și a contoarelor de a detecta cibernetica, cum ar fi
evidențiată de mai multe cazuri din SUA în care hackerii puteau accesa rețele
inteligente p rin dispozitive cum ar fi contoare inteligente. [3]
Agenția de Securitate (ENISA) a prezentat măsuri de securitate adecvate
pentru a minimiza acest lucru un fel de risc într -un raport detaliat. Comisia Europeană
și sarcinile re țelei inteligente .

1.6. Perspective de dezvoltare la nivel European
Rezoluția Parlamentului European (PE) din 14 martie 2013 privind "Foaia
de parcurs privind energia2050 "a subliniat importanța rețelelor inteligente și a
contoarelor pentru o energi e mai eficientă utilizarea, creșterea cotei de energie
regenerabilă în mixul energetic și facilitarea comunicarea dintre producători și
consumatori. Rezoluția PE din 10 septembrie 2013 privind "Elaborarea pieței interne a
energiei" consideră tehnologiile intelig ente ca fiind necesare pentru a dezvolta o piață
mai orientată către consumatori și solicită Comisiei să o facă "să faciliteze
desfășurarea … rețelelor inteligente care nu impun o povară financiară consumatorii și
care iau în considerare confidențialitat ea datelor lor ", precum și a face" suficiente "
finanțare disponibilă pentru distribuția rețelelor inteligente ". [7]
Parlamentul European a adoptat, la 4 februarie 2014, o rezoluție din proprie
inițiativă privind " și conseci nțele regionale ale rețelelor inteligente ". Parlamentul
European și -a reiterat sprijinul pentru un program inteligent dar a considerat că un
cadru mai ambițios al politicilor și obiectivelor UE în domeniul energiei eficiența și
energia regenerabilă au fos t necesare pentru stimularea dezvoltării acestora. EP -ul a
considerat că noile tehnologii, cum ar fi energiile regenerabile, se află încă într – un
dezavantaj competitiv în Europa rețelele energetice tradiționale și a solicitat ca
sistemele inteligente de energie să beneficieze de o scutire în conformitate cu normele
de modernizare a ajutoarelor de stat, în timp ce aplicarea legilor pieței interne ar trebui
să fie suficient de flexibil pentru a permite soluții specifice regiunilor în sistemele
inteligente d e energie. [7]
PE a evidențiat faptul că preocupările legate de securitate privind rețelele
inteligente trebuie încă să fie pe deplin și ar trebui făcute mai multe pentru a dezvolta
rețele inteligente la nivel regional și local, în special în regiunile dezavantajate din
Europa.

17
Rețelele de energie electrică și măsurarea sunt prezentate în mod
semnificativ în recenta Comunicare a Comisiei Europene privind o nouă ofertă pentru
consumatorii de energie, parte din pachetul de energie pentru Europa de Vară și legată
de strategia Uniunii Europene în domeniul energiei.
Comisia va continua să mo nitorizeze introducerea măsurătorilor inteligente
în statele membre în care a fost aprobată. Acesta a solicitat statelor membre să nu
opteze pentru extinderea la scară largă pentru a revizui parametrii și ipotezele critice
utilizate în ACB -urile lor, precu m și statele membre care nu au elaborat planuri de
acțiune anticorupție sau anunțate planuri de lansare pentru a face acest lucru rapid.
În timp ce continuă să sprijine cu fermitate desfășurarea pe scară
largă a contoarelor inteligente de energie electric ă, Comisia pune accentul mai mult pe
măsurarea inteligentă a gazelor, în special deoarece majoritatea CBA -urilor privind
măsurarea inteligentă a gazelor s -au dovedit a fi negative sau neconcludente.

Capitolul 2. Măsurarea energiei electrice în sistemele Smart
metterin g
2.1. Aspecte generale
Implementarea sistenelor de smart mettering se bazează pe existența sau
dezvoltarea infrastructurii de comunicații și a echipamentelor de măsură. În cest
context, existența mai multor furnizori de echipamente pune probleme de
compatibil itate. Pentru a depăși această situație, organismele de reglementare și
asiciațiile de producări de echipamente de măsură și comunicații au dezvoltat o serie
de standarde specifice acestui domeniu.

2.2. Reglementări de interfațare a sistemelor de măsură

În prezent c omunicarea cu echipamentele inteligente de măsură se
realiz ează respectând Standardul Internațional de Comunicație IEC 62056 secțiunea
21, care e un set de reglementări referi toare la schim bul de date locale .
IEC (Comisia Electrotehnică Internațională) este o organizație mondială de
standardizare care cuprinde toate comitetele electrotehnice naționale (Comitetele
Naționale IEC). Obiectul CIE este de a promova cooperarea internațională cu privire
la toate aspectel e legate de standardizarea în d omeniul electric și electronic. IEC
colaborează îndeaproape cu Organizația Internațională de Standardizare (ISO), în
conformitate cu condițiile stabilite de comun acord între cele două organizații. [8]
IEC 62056 -21 este proiectat să funcționeze pe orice suport media, inclusiv
pe Internet. Ideea, pe scurt , descrisă în acest standard detaliază cum un contor trimite
date în format ASCII (în modurile A..D) sau HDLC (modul E) către o unitate din

18
aprop iere (HHU) utilizând un port serial. Mediile fizice sunt, de obicei, fie lumină
modulată, transmisă cu un LED și primită cu o fotodiodă, fie o pereche de fire,
modulate de obicei printr -o buclă de curent de 20 mA .
Interfața optică este prezentată în figura ce urmează .

Fig.7 . Parametrii fizici constructivi ai portului optic

Transmițătorul
Transmițătorul din dispozitiv, precum și din capul de citire, generează un
semnal cu o rezistență la radiație definită (zonă optic activă) , la o distanță de 10 mm
(± 1 mm) de la suprafața dispozitivului sau a capului de citire.

Fig.8 . Reprezentarea transmițătorului

19
Receptorul

Un emițător care este poziționat la o distanță de 10 mm (± 1 mm) pe axa optică
de la receptorul din dispozitiv sau din capul de citire generează un semnal peste o
suprafață de referință definită (zonă optic activă).

Fig. 9 – Receptorul

2.2.1. Protocolul de transmitere a datelor

Protocolul oferă cinci moduri alternative de protocol, care pot fi utilizate de
dispozitiv: A,B, C, D și E. Schimbul de date este bidirecțional în modurile de protocol
A, B, C și E și este inițiat întotdeauna cu transmiterea unui mesaj de solicitare.
În modurile protocolului de la A la C, HHU (hand -held unit ) acționează ca
master și dispozitivul acționează ca un slave .
În modul de protoc ol E, HHU acționează ca client iar dispozitivul
acționează ca un server. Aceste moduri de protocol permit citirea contorului și
programare a.
Modul Protocol E poate fi un mod binar transparent. Schimbul de date este
unidirecțional în modul de protocol D și permite citirea numai. Informatia curge de la
dispozitiv la HHU.
Transmisia datelor este inițiată, de exemplu prin operare a unui buton sau alt
senzor de pe dispozitivul de tarifare. Modul de p rotocol folosit de dispozitivul de
tarifare este indicat la HHU de identificare mesaj. Modurile de protocol de la A la D

20
sunt identificate prin caracterul de identificare a ratei de transfer în timp ce modul de
protocol E este identifica t printr -o secvență de evacuare .
Protocolul HDLC – Măsură este prezentat în următoarea figură:

Fig. 10 – Protocolul HDLC Măsură

Deoarece șirul de confirmare a serverului este o constantă în programul
serverului, ar putea fi ușor să se schimbe simultan rata baud și modul binar (Z Bd) .
Caracterele ACK 2 Z 2 CR LF vor fi înlocuite cu 8 biți echivalenți prin
adăugarea unui bit de paritate corect pentru a simula echivalentele lor 7E1 . Această
metodă alternativă nu este vizibilă pentru client, ambele având un comportament
echivalent. Un client care nu poate suporta modul HDLC E (W = 2) al protocolului
HDLC va răspunde într -un mod de protocol definit de Y (în mod normal, protocol C) .
[8].
Aceste moduri sunt manipulate în straturi le superioare ale protocolului.
După ce a fost stabilit un canal transparent, protocolul METRIC HDLC se ocupă de
manipularea corectă a datelor. Producătorii necesari sunt descriși în IEC 656.

21
Capitolul 3. Proiectarea unei solu ții pentru smart metering

3.1. Specificațiile soluției

Specificații funcționale :
 proiectarea unei soluții care s ă permită accesul facil al clienților la indicaț iile
echipamentelor inteligente de m ăsurare a energei electrice
 accesul la date prin intermediul unei interfețe de comunicații fără fir plasată în locuri
accesibile
 accesul la datele de măsură utilizând dispozitive de larg consum uzuale ce utilizează
protocole și standarde de comunicație comune (bluetoo th)
 extragerea datelor pe baza unor abordări neinvazive constând în protocoale standard
de comunicație de port optic

Specificațiile nefuncționale
 pentru demonstrarea posi bilității implementării a unei astfe l de soluții se urmărește
realiz area unui prototip c are se bazează pe blocul de măsură Elster AS220 , unul dintre
cele mai răspâ ndite contoare inteligent e din Rom ânia

3.2. Arhitectura soluției
Pe bază specificațiilor enunțate în secțiunea anterioară se propune rea lizarea
unui sistem cu arhitectura prezentată în Fig. 11.
Arhitectura soluției propuse cuprinde două nivele: nivelul hardware și
software care sunt prezentate în cele ce urmează.

3.2.1. Componente Hardware
Nivelul harware al soluției propuse conține următoarele elemente impuse
prin cerințe dar și adoptate pentru implementarea principalelor funcționalități propuse:
 Dispozitiv inteligent de măsură a energiei electrice
 Dispozitiv pentru citirea datelor
 Sistem de dezvoltare cu micro control ler pentru interfațare cu dispozitivul de
măsură
 Sistem de dezvoltare pentru implementarea interfeței cu utilizatorul și
dispozitivelor mobile
 Modul de comunicație Radio
 Sistem de afișare

22

Fig.11 . Arhitectura soluției

contor
Arduino
UNO
transmitter
receiver
Arduino
MEGA
Afișaj
Bluetooth
Dispozitiv de
citire a
datelor
SmartPhone

23

Contorul

Contorul folosit în elaborarea practică a lucrării este un contor Elster AS220
pus la dispoziție de către SDEE TRANSILVANIA SUD, Tîrgu Mureș.
Acesta oferă măsurări multi -tarifare și comunicații modulare pentru a
interfața direct cu utilitarul printr -o rețea WAN sau rețeaua locală (LAN) și conectarea
la o locuință a unui consumator .
Modulul oferă platforma pentru multe forme diferite de comunicații,
inclusiv GSM / GPRS, PLC și radio de putere inferioară pentru comunicații WAN /
LAN. Portul modular și optic poate fi folosit pentru citirea datelor de la orice contor
conectat la HAN.
Contorul măsoară combinația dintre energia activă de import și export,
energia reactivă de patru cvadranți și energia aparentă.

Contorul AS220 înregistrează până la 120 de zile date de profil de încărcare
pentru un canal (perioadă de 15 minute). Valorile de instrumentare sunt disponibile
pentru a ajuta la punerea în funcțiune a contoarelor. O caracteristică suplimentară
respectă rețeaua în ceea ce privește calitatea energiei.

Dispozitivul de citire a datelor

Alegând ca mod de c omunicare cu contorul modu lul E , reprezentând
comunicarea prin port optic, a fost nevoie de un dispozitiv de același tip pentru ca
datele transmise de dispozitiv să fie receptate de portul optic al contorului și implicit
pentru ca datele transmise de contor să fie receptate de disp ozitivul de citire , urmând
să fie prelucrate .

În figura următoare se prezintă circuitul electronic propus pentru
implemen tarea interfațării cu sistemul de măsură.

24

Fig.12 . Schema circuitului dispozitivului de citire

De asemenea , schema 3D a componentelor dispoz itivului este redat ă in figura următoare :

Fig. 13 . Schema 3D a circuitului dispozitivului de citire

Pentru a recepționa undele infraroșu am folosit un receptor, precum
TSOP38238. Receptorul are o celulă fotosensibilă care reacționează cu radiațiile
electro -magnetice din spectrul infraroșu.

25
După cum se poate vedea în schema alăturată, receptorul are 3 pini: unul
OUT în stânga, unul ground(GND) în centru și unul de tensiune (5V) în dreapta.

Fig. 14 – Schema receptorului

Pentru a emite undele infraroșu am folosit un emițător având schema di n
Fig. 15 . Emițătorul este doar un LED care eliberează unde din spectrul infraroșu.

Fig. 15 – Schema emițătorului

Modul de comunicare emițător -receptor redat în figura de mai jos
funcționează emițând un num ăr relativ mic de rafale de semnale de o anumită
amplitudine per comandă. Pe partea cealaltă, receptorul dispozitivului de citire sau a
contorului folosit transformă acest semnal fragmentat într -o secven ță de platouri
(semnal dig ital) care să poată fi ”înțeleasă” de contor respetiv de dispozitivul de citire.

26

Fig.16 – Modul de comunicare emițător -receptor

Funcția dispozitivului este aceea de a transmite codul c heie de acces al
portului optic , cod care se găsește în specifi cațiile contorului Elster AS220 . Acest cod
odată receptat de către contor , declanșează transmiterea informațiilor contorului oferite
până la un anumit nivel , printre car e se află și indexul contorului, singurul lucru care
ne interesează în acest stadiu al proiectului.

Arduino UNO/ MEGA

Familia plăcilor de dezvoltare Arduino sunt platforme electronice open
source bazate pe hardware ș i software ușor de utilizat. Plăcile Arduino sunt capabile să
citească intră ri – lumina pe un senzor, apăsarea unui buton s au receptarea unui mesaj –
si să le transforme în ieșiri – activarea unui motor, pornirea unui LED, publicarea unui
articol online etc.
În proiectul de față am folosit 2 dint re aceste platforme electronice .
Placa de dezvoltare Arduino Uno este folosită pentru partea de transmitere
a indexului către client .
Aceasta, prin softul implenentat, transmite codul cheie contorului
,selectează indexul din datele trimise de contor urmând să le trimita prin transmitter la
receiver -ul lui pereche.
Placa de de zvoltare Arduino Mega este folosită pentru partea de recepț ie a
proiectului . Prin codul implementat si prin receptorul pereche captează datele primite
de la transmițătorul pereche și le afișează pe afișajul TFT putând fi vizionate de
posesorul dispozitivului.

Modulul de comunicație transmițător – receptor

Am ales un modul transmiț ător-receptor care funcționează pe banda de
frecvență de 433MHZ deoarece face parte din planul de frecven țe alocate care nu
necesită licenț ă pentru aplicații specifice și ne specifice.
Acest modul poate transmite până la 90 de metri în zona deschisă . Pentru a
crește eficiența comunicării fără fir se poate folosi o anten ă, de asemena un simplu fir
spiralat va avea același efect, metoda pe care am și adoptat -o.

Afișajul TFT
Pentru a afișa indexul am ales un afișaj TFT (thin -film-transistor) care este
de fapt o variantă a afișajului cu cristale lichide, prescurtat LCD (Liquid Crystal
Display ).

27
Tehnologia TFT utilizează pentru fiecare pixel 3 tranzistori pentru 3 culori
de bază , și anume: roșu, albastru și verde. Din aceste 3 culori se vor genera celelalte
culori. Această tehnologie îmbună tățește calitatea imaginii cum ar fi adresabilitatea si
contrastul.
Sunt foarte răspândite fiind folosite pentru dispozitive pre cum televizoare,
monitoare, tablete, ceasuri.
Afișajul TFT fiind conectat la placa de dezvoltare Arduino Mega afișează
tipul contorului și indexul în timp real.

3.2.2 Module software utilizate

 Arduino sketch – transmitter

Ideea de funcționare a acestui cod începe cu transmiterea codului cheie
contorului prin intermediul dispozitivului de citire .
Datele receptate de c ătre dispozitiv sunt transmise î n intervalul de timp de
aproximativ 5 minute , textul terminându -se cu semnul exclamării, de aici am pus
condiția ca atunci când apa re semnul exclamării în text, să fie preluat indexul și
transmis mai departe receptorului pereche împreună cu cei 3 biți care reprezintă un fel
de cod de securitate prin care datele să fie afișate doar de receptorul pereche.

 Arduino sketch – receiver

Partea de recepție are ca funcționalitate principală preluarea datelor
transmise după verificarea compatibilității transmițătorului, și afișarea indexului.

3.3. Proiectarea de detaliu
Înainte de a intra î n proiectarea detaliată a modului de funcționare a soluției
de monitorizare , este nevoie de înțelegerea acțiunilor exercitate între furnizorul de
energie electrică și un oarecare client.
Aceste acțiuni vo r fi ilustrate printr -o diagramă use-case în figura
următoare.

28

Fig.17

Funcția software a proiectului, descrisă și grafic printr -o diagramă de
secvențe î n Fig. 17 îndeplinește o succesiune de prelucrări de date care duc la
rezultatul dorit , și anume afișarea indexului în timp real pe un ecran distinct față de cel
al contorulu i.

29

Fig.18

Ca urmare a consumului de energie zilnică a unui client/utilizator oarecare ,
contorul deja instalat de către compania de furnizare a ene rgiei electrice , calculează
consumul și îl afișează pe ecranul propriu al contorului la care are acces și utilizatorul.
Dispozitivul de citire a indexului atașat pe portul optic al contorului trimite
codul cheie al contorului prin portul compatibil special pr oiectat, urmând ca după
aproxi mativ 5 minute acesta să trimită informațiile la nive lul cărora avem acces cu
această „parolă”.
Datele sunt preluate de către dispozitivul de citire și prelucrate astfel încât
doar indexul va fi transmis prin unde radio că tre dispozitivul de afișare a indexului
care este amplasat la o distanță aproximativă de 90 de me tri față de dispozitivul de
citire.
Următoarea fază este afișarea indexului transmis atât pe ecranul afișajului
TFT cât si pe smartphone.

Capitolul 4. Implementarea soluției de smart metering

4.1. Alegerea componentelor hardware

30
4.1. Implementarea modulului de transitere a datelor

Placa de dezvoltare A rduino transmite codul prin transmițătorul
dispozitivul ui de citire la contor , care transmite înapoi răspunsul ceru t de cod și anume
datele contorului , printre care aflându -se principalul subiect al întregii lucrări, ș i
anume indexul contorului.
Cheia care ne permite accesul la datele contorului se află în Descrierea
Tehnic ă si Funcțională a contorului Elster AS220 combinată cu aplicarea Standardului
de Comunicație IEC 62056 -21 vezi Fig. ……
Pentru a putea beneficia de funcții sugestive și ușor de implementat, am
folosit bine cunoscutele librării pentru Arduino.

#include <SoftwareSerial.h>

Hardware -ul Arduino are suport încorporat pentru comunicația serială pe
pinii 0 și 1 (care se deplasează și la calculator prin conexiunea USB). Suportul serial
nativ se întâmplă printr -o bucată de hardware (în corporată în chip) numită UART.
Acest hardware permite cipului Atmega să primească comunicații seriale chiar și
atunci când lucrează la alte sarcini, atâta timp cât există spațiu în tamponul serial de
64octeți.
Biblioteca SoftwareSerial a fost dezvoltată pentru a permite comunicare a
serială pe alți pini digitali ai plăcii de dezvoltare Arduino, folosind software pentru a
replica funcționalitatea (de aici și denumirea "SoftwareSerial"). [9]

#include <Wire.h>

Această bibliotecă permite comunicarea cu dispozitivele I2C . Pe panourile
Arduino cu aspectul R3 (1.0 pinout), SDA (linia de date) și SCL (linia de ceas) se află
pe anteturile pin -urilor aproape de pinul AREF. Arduino are două interfețe I2C / TWI
SDA1 și SCL1 sunt aproape de pinu l AREF, iar cel adițional se află pe ș ifturile 20 și
21.
Ca de la Arduino 1.0, biblioteca preia din funcțiile Stream, făcându -l
compatibil cu alte biblioteci de citire / scriere. Din acest motiv, send () și receive() au
fost înlocuite cu read () respectiv write().
Implementarea bibliotecii Wire utilizează un buffer de 32 de octeți, prin
urmare orice comunicare ar trebui să se încadreze în această limită. Depășirea
octeților într -o singură transmisie va fi pur și simplu ștearsă.
Modulele RF pentru uz expe rimental necesită date special formatate, cu
modele de sincronizare cu 0 și 1 biți și verificarea erorilor.
VirtualWire oferă toate aceste caracteristici, permițând cea mai bună
performanță de la circuitele radio cu un cost scăzut.

31

#include < VirtualWire.h>

Porturile RX și TX sunt folosit e pentru comunicarea dintre placa Arduino și
un computer sau alte dispozitive. Toate plăcile Arduino au cel puțin un port serial
(cunoscut și ca UART sau USART): Serial.
Acesta comunică pe pinii digitali 0 (RX ) și 1 (TX), precum și cu computerul
prin USB. Astfel, utilizând aceste funcții, nu se pot utiliza și pinii 0 și 1 pentru
intrarea sau ieșirea digitală.

SoftwareSerial gtSerial(2, 3); // Arduino RX, Arduino TX

Codul se cont inuă cu declararea variabil elor, printre care se vor aminti cele
mai semnificative.
Variabila “cad” ține în memorie unsprezece valori inițial nule, care
urmează să fie utilizat ă în transmiterea indexului contorul ui extras din multitudinea de
date informaționale oferite de contor .
Primele trei poziții a vectorului “cadd” sunt scrise î n hexadecimal , valori
care țin așa-zisa parte de identificare a transmițătorului cu receptorul sau pereche.
Formatul hexadecimal s e folosește deoarece este mai ușor de convertit de la binar la
hexazecimal decât zecimal și folosește mai puține caractere decât formatul binar . De
exemplu: zecimal: 65535 hex: FFFF binar: 1111111111111111 .

unsigned int i = 3;
unsigned int j = 0;
byte cad[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' \0'};
byte cadd[] = {0xa, 0xb, 0xc, 0, 0, 0, 0, 0, 0, ' \0'};
int incoming = 0;
int add=2000;
int add1,add2,add3;

Următoarea fază a codului se referă cu precădere la vectorul de transmisie a
mesajului .
Acest vector numit “message” conține cheia declanșatoare prin care putem
avea acces la toate datele contorului transmise de către transmițătorul contorului și
captate de catre receptorul dispozitivului de citire.

byte message[] = {0xAF, 0x3F, 0x21, 0x8D, 0x0A, ' \0'

32
int analogPin = 0; // conectat la masă +5V
int raw = 0; // variabilă care stochează valoarea de intrare
int Vin = 5; // variabilă care stochează tensiunea de intrare
float Vout = 0; // variabilă care stochează de ieșire
float R1 = 2700; // variabilă care stochează valoarea R1
int R2 = 0; // variabilă care stochează valoarea R2
float buffer = 0; // variabila buffer pentru calcul

int anal ogPin1 = 1; // potentiometru conectat la analog -pin 3
int raw1 = 0; // variabilă care stochează valoarea rândului
float R3 = 2700; // variabilă care stochează valoarea R3
int R4 = 0; // variabilă care stochează valoarea R4

char a = A2; // pentru afișarea segmentului a
char b = A 3; // pentru afișarea segmentului b
char c = A 4; // pentru afișarea segmentului c
char d = A 5; // pentru afișarea segmentului d
char e = A 6; // pentru afișarea segmentului e
char f = A7; // pentru afișarea segmentului f
int g = 7 ; // pentru afișarea segmentului g
int f1=11;
int f2=13;

Aici ia sfârșit partea inițializărilor și se începe prelucrarea datelor.
Programul începe cu funcția void setup, care este utilizată numai în
declarațiile de funcții. Acesta indică faptul că este de așteptat ca funcția să nu
returneze nici o informație funcției din care a fost apelată.
Funcția se tup () este executată o singură dată când începe programul. Se
utilizează pentru a defini proprietățile de mediu inițiale și pentru a încărca suportul
media la pornirea programului. Nu poate exista decât o funcție de configurare () pentru
fiecare program și nu ar trebui să fie apelată din nou după executarea inițială.

33

void setup() {

Inițializarea portului serial se va face cu o vitez ă relativ mică (baud= 300),
dar indicată datorită pieselor folosite în circuit.

Serial.begin(300);

Inițializarea portul ui de comunicație cu contorul se va face cu aceeași
viteză (baud) .

gtSerial.begin(300);

După acestea se va trimite mesajul „cheie” la contor prin transmițătorul
dispozitivului de citire prin funcția :

gtSerial.write(message, 5);

Configurarea pinilor specificați să se comporte ca ieșire se va face in
urmă toarele linii de cod :

pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A6, OUTPUT);
pinMode(A7, OUTPUT);
pinMode(g, OUTPUT);
pinMode(10, OUTPUT);
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
declarar ea byte -ului de date (datele citi te de la contor )
byte rx_byte = 0;

34
void displayDigit(int digit)
{
//Condiții pentru afișarea segmentului a
if(digit!=1 && digit != 4)
digitalWrite(A2,LOW);
// Condiții pentru afișarea segmentului b
if(digit != 5 && digit != 6)
digitalWrite(A3,LOW);

// Condiții pentru afișarea segmentului c
if(digit !=2)
digitalWrite(A4,LOW);

// Condiții pentru afișarea segmentului d
if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(A5,LOW);

// Condiții pentru afișarea segmentului e
if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(8,LOW);

// Condiții pentru afișa rea segmentului f
if(digit != 1 && digit !=2 && digit!=3 && digit !=7)
digitalWrite(9,LOW);
if (digit!=0 && digit!=1 && digit !=7)
digitalWrite(g,LOW);

}

void afisare()

35
{ turnOff();
raw = analogRead(analo gPin); // Citește PIN -ul de intrare
Vout = (5.0 / 1023.0) * raw; // Calcul ează tensiunea pe PIN -ul de intrare
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

digitalWrite(10,HIGH);
digitalWrite(13,LOW);

displayDigit(R4);
delay(5);
turnOff();

raw1 = analogRead(anal ogPin1); // Citește PIN-ul de intrare
Vout = (5. 0 / 1023.0) * raw1; // Clculează tensiunea pe pinul de ieșire
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer;
R4=R4/1000;

digitalWrite(10,LOW);

digitalWrite (f2,HIGH);
displayDigit(R2);

delay(5);
}
void loop() {

36
raw = analogRead(analo gPin);
Vout = (5 .0 / 1023.0) * raw;
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

raw1 = analogRead(analog Pin1); //Citește pinul de intrare
Vout = (5. 0 / 1023.0) * raw1;
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer;
R4=R4/1000;
int k = 0;
for (int p = 4; p < 7; p++)
{
if (digitalRead(p) == 1) { //ve rifică dacă "butoanele" sunt apă sate pe pinii 4 5 6
cad[k]=' 1';
if(p==4){
add1=1;
}
else if(p==5){
add2=2;
}
else if(p==6){
add3=4;
}
}
else {
cad[k]='0';
if(p==4){

37
add1=0;
}
else if(p==5){
add2=0;
}
else if(p==6){
add3=0;
}
}
k++;
}
add=R2*1000+R4*100;
vw_setup(add);

if (gtSerial.available()) { //verifica daca portul este disponibil

rx_byte = gtSerial.read(); //preia datele de la portul serial gtSerial si te stocheaza in rx_byte
rx_byte = (rx_byte & 127); //transformarea din 8 biti de date in 7 biti de date
if (rx_byte == '!') { //verifica daca rx_byte este '!'( ultimul caracter trimis de contor)
j = -5;
delay(300000); //delay 1 secunda ti mp in care asteptam contorul sa fie pregatit pentru o
noua citire
gtSerial.write(message, 5); //trimite din nou mesajul catre contor
delay(400);
vw_send(cad, strlen(cad)); //trimite datele catre reciever
}
 prelucrarea datelor trimise de contor

if ((j > 395) && (j < 406)) {
if (i == 12)
{ cad[i] = ' \0';

38
i = 3;
delay(300);
i = 3;
}
else {
cad[i] = rx_byte; //î n vector se preia indexul contorului care mai apoi se transmite
Serial.write(cad[i]);
i++;
}
}
else if (j == 10) {
i = 3;
Serial.write(rx_byte);
}
else {
Serial.write(rx_byte);
}
j++;
}
else{

afisare();
}
}

4.2. Recepționarea datelor
Placa de dezvoltare Arduino Mega receptează datele partajate prin
transmițătorul dispozitivului de citire , verifică dac ă transmițătorul este pereche cu
receptorul apoi afișează numele contorului și indexul.
Pentru început am inclus câteva biblioteci puse la dispoziție pentru orice
utilizator al plăcuțelor Arduino.

39
În plus , față de codul scris pentru transmiterea datelor am avut nevoie de
biblioteca „LiquidCrystal_I2C” pe care am folosit -o pentru liniile de cod adresate
afișajului TFT.

#include <VirtualWire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C afișaj TFT (0x3F,16,2);

După partea de inițializări urmează partea de setare a pinilor de ieșire.

void setup()
{ pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A6, OUTPUT);
pinMode(A7, OUTPUT);
pinMode(g, OUTPUT);
pinMode(10, OUTPUT);
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);

Începutul acțiunii propriu -zise a codului este deschiderea portului serial și
stabilirea ratei de transfer la 2400 bps , de asemenea și codurile de inițializare și
pornire a ecranului TFT.

Serial.begin(2400);

afișaj TFT .init();
afișaj TFT .backlight();
afișaj TFT.print(" Elster AS220 ");
afișaj TFT .setCursor(1, 0);

40
afisare();
delay(10);
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

Pentru a citi valoarea de intrare de pe pinul 1 și a calcula ten siunea de
intrare am implementat codul următor .
„AnalogRead” citește valoarea de pe pinul analogic specificat adi că pinul 1 .
Placa Arduino Mega conține un canal cu 16 canale, convertor analog -digital de 10 biți.
Acest lucru înseamnă că va împărți tensiunil e de intrare între 0 și 5 volți în valori
întregi între 0 și 1023.
Aceasta oferă o rezoluție între citirile de: 5 volți / 1024. Intervalul de intrare
și rezoluția pot fi modificate utilizând analogReference ().

Este nevoie de aproximativ 100 de mic rosecunde (0,0001 s) pentru a citi o
intrare analogică, astfel încât rata maximă de citire este de aproximativ 10 000 de ori
pe secundă.

raw1 = analogRead(analogPin1);
Vout = (5.0 / 1023.0) * raw1;
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer ;
R4=R4/1000;

Urmează partea de verificare a datelor receptate. Dacă trasmițătorul este
perechea receptorului de date, indexul, vor fi afișate de TFT. Acesta este un simplu
principiu folosit prin care codul care este transmis are setat ca primii 3 biți s ă fie
alocați unui cod stabilit pentru blocarea unor pini anume pentru fiecare pereche de
module de transmisie radio .

41
int k = 0;
for (int p = 15; p < 18; p++)
{
if (digitalRead(2*p) == 1) { //verifica daca "butoan ele" sunt apasate pe pinii 4 5 6
if(p==15){
add1=1;
}
else if(p==16){
add2=2;
}
else if(p==17){
add3=4;
}
}
else {
if(p==15){
add1=0;
}
else if(p==16){
add2=0;
}
else if(p==17){
add3=0;
}
}

k++;
}
add=150*add1+150*add2+150*add3;

42
add=R2+add;
vw_setup(2400);
vw_rx_start();
}
Numărul care definește dac ă un transmițător și un receptor sunt pereche va
apărea pe un afișor de 7 segmente, a cărui condiții de afișare sunt arătate mai jos.

void displayDigit(int digit)
{
// Condiții pentru afișarea segmentului a
if(digit!=1 && digit != 4)
digitalWrite(A2,LOW);
// Condiții pentru afișarea segmentului b
if(digit != 5 && digit != 6)
digitalW rite(A3,LOW);

// Condiții pentru afișarea segmentului c
if(digit !=2)
digitalWrite(A4,LOW);

// Condiții pentru afișarea segmentului d
if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(A5,LOW);

// Condiții pentru afișarea segmentului e
if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(8,LOW);

// Condiții pentru afișarea segmentului f
if(digit != 1 && digit !=2 && digit!=3 && digit !=7)

43
digitalWrite(9,LOW);
if (digit!=0 && digit!=1 && digit !=7)
digitalWrite(g,LO W);
}

Un alt segment din cod mai important este acela de preluare a datelor
transmise de perechea recep torului , segment arătat mai jos.

void loop()
{
byte buf[VW_MAX_MESSAGE_LEN];
byte buflen = VW_MAX_MESSAGE_LEN;
int i;

if( vw_get_message(buf, & buflen) )
{afișaj TFT .clear();
if(pos < 2)
afișaj TFT .setCursor(0, pos);
else
{
pos=0;
}
Serial.print(j);
Serial.print(": ");
afișaj TFT .setCursor(0,0);
afișaj TFT .print(" Elster AS22 0 ");

afișaj TFT .setCursor(3,1);
for (i = 5; i < buflen; i++)
{

44
Serial.print((char)buf[i]);
afișaj TFT .print((char)buf[i]);
pos++;
}
afișaj TFT .print("kWh");
Serial.println("h");
j++;
}
}

Capitolul 5. Concluzii

În lucrarea de f ață s-a realizat un studiu privind implementarea unei soluții
care să extindă capabilitățile sistemelor actuale de smart mettering în vederea
asigurării posibilității urmăririi în timp real a consumurilor de e nergie electrică în
sectorul rez idențial.
Soluția propusă urmărește facilitarea accesului la datele furnizate de
dispozitivel e inteligente de măsurare a energiei electrice atât furnizorului de servicii
cât și consumatorului. În vederea extinderii ariei de aplicare s -a avut în vedere
posibilita tea de vizualizare atât locală cât și prin intermediul dispozitivelor mobile.
Complexit atea soluției dezvoltate a fost dată de necesitatea implementării
reglementărilor din standardul IEC 62056 apel ând la micro controllere cu resurse
reduse de procesare însă extrem de accesibile ca preț, rezultând în final o soluție cu
costuri reduse.
Datorită resurselor limitate soluția poate fi dezvoltată în viitor în sensul
creșterii securității i nformaționale a acesteia.
Lucrarea s -a concentrat pe proiectarea și implementarea unui prototip
funcțional, care poate fi dezvoltat în continuare în vederea creșterii performațelor
diferitelor funcționalități cum ar fi: creșterea vitezei de comunicații a interfeței,
echipament de măsură , dispozitiv de afișare, extinderea metodelor de comunicare și
acces la date.
Implementarea soluției propuse a reprezentat o bună sursă de învățare și
creștere a experienței personale în direc ția programării microcontroller elor din familia
ATMEGA, programării aplicațiilor de timp real și respectiv al comunicațiilor prin
diferite protocoale cum ar fi în cazul de f ață: comunicația pe port optic (IR) și radio
de tip Bluetooth.
Prototipul propus poate reprezenta un punct de dezvoltare a unei soluții
extinse ce poate fi utilizată de către companiile de furnizare a e nergiei electrice.

45

Bibliografie

[1] R. P. Cristian Răducanu, EVALUAREA EFICIENȚEI ENERGETICE, AGIR.
[2] A. N. d. P. Rompres, TERRA – cifre și date, Niculescu, 1994.
[3] "Global Energy Architecture Performance Index," 2017.
[4] D. I. s. Energie, "Raport privind rezultatele preliminare ale investigației sectoriale pe piața energiei
electrice din România," 2014.
[5] "Smart electricity grids and meters in the EU Member States," 2015.
[6] "Appropriate Security Measures for Smart Grids," European Network and Information Security
Agency (ENISA, 2012.
[7] S. Renner, "European Smart Metering," Vienna, 2011.
[8] I. E. Commission, "Electricity metering – Data exchange for meter reading, tariff and load control
–Part 21: Direct local data exchange," 2002.
[9] "Arduino," [Online]. Available: https://www.arduino.cc.

Anexe
Anexa 1

46
Codul modulului – Receiver AFIȘAJ TFT radio AS200

#include <VirtualWire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C afișaj TFT (0x3F,16,2);
byte adr[]={0,0,0};
int buff[]={0,0,0};
byte cad[100];
int j=0;
int k=0;
int pos = 0;
int add1,add2,add3,add;
int analogPin = 0; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int raw = 0; // variable to s tore the raw input value
int Vin = 5; // variable to store the input voltage
float Vout = 0; // variable to store the output voltage
float R1 = 2700; // variable to store the R1 value
int R2 = 0; // variable to store the R 2 value
float buffer = 0; // buffer variable for calculation

int analogPin1 = 1; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int raw1 = 0; // variable to st ore the raw input value // variable to store the output
voltage
float R3 = 2700; // variable to store the R1 value
int R4 = 0; // variable to store the R2 value

47
char a = A2; //For displaying segment "a"
char b = A3; //For displaying segment "b"
char c = A4; //For displaying segment "c"
char d = A5; //For displaying segment "d"
char e = A6; //For displaying segment "e"
char f = A7; //For displaying segment "f"
int g = 7 ; //For displaying segment "g"
int f1=11;
int f2=1 3;
void setup()
{ pinMode(A2, OUTPUT); //A
pinMode(A3, OUTPUT); //B
pinMode(A4, OUTPUT); //C
pinMode(A5, OUTPUT); //D
pinMode(A6, OUTPUT); //E
pinMode(A7, OUTPUT); //F
pinMode(g, OUTPUT);
pinMode(10, OUTPUT);
pinMode(13, OUTPUT) ;
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);

Serial.begin(2400);
afișaj TFT .init();
afișaj TFT .backlight();
afișaj TFT .print(" Elster AS220 ");
afișaj TFT .setCursor(1, 0);
for(int dublusm=0;dublusm<1000;dublusm++){
afisare();

48
delay(10);
}
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
raw = analogRead(analogPin); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

raw1 = analogRead(analogPin1); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw1; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer;
R4=R4/1000;

int k = 0;
for (int p = 15; p < 18; p++)
{

if (digitalRead(2*p) == 1) { //verific ă dacă "butoanele" sunt ap ăsate pe pinii 4 5 6

if(p==15){
add1=1;
}
else if(p==16){
add2=2;
}
else if(p==17){

49
add3=4;
}
}
else {
if(p==15){
add1=0;
}
else if(p==16){
add2=0;
}
else if(p==17){
add3=0;
}
}

k++;
}
add=150*add1+150*add2+150*add3;
add=R2+add;
vw_setup(2400);
vw_rx_start();

}
void displayDigit( int digit)
{
//Conditions for displaying segment a
if(digit!=1 && digit != 4)
digitalWrite(A2,LOW);
//Conditions for displaying segment b

50
if(digit != 5 && digit != 6)
digitalWrite(A3,LOW);

//Conditions for displaying segment c
if(digit !=2)
digitalWrite(A4,LOW);

//Conditions for displaying segment d
if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(A5,LOW);

//Conditions for displaying segment e
if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(8,LOW);

//Cond itions for displaying segment f
if(digit != 1 && digit !=2 && digit!=3 && digit !=7)
digitalWrite(9,LOW);
if (digit!=0 && digit!=1 && digit !=7)
digitalWr ite(g,LOW);
}

void turnOff()
{
digitalWrite(A2,HIGH);
digitalWrite(A3,HIGH);
digital Write(A4,HIGH);
digitalWrite(A5,HIGH);
digitalWrite(A6,HIGH);

51
digitalWrite(A7,HIGH);
digitalWrite(g,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}

void afisare()
{ turnOff();
raw = analogRead(analogPin); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

digitalWrite(10,HIGH);
digitalWrite(13,LOW);

displayDigit(R4);
delay(5);
turnOff();

raw1 = analogRead(analogPin1); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw1; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer;
R4=R4/1000;

digitalWrite(10,LOW);

52

digitalWrite(f2,HIGH);
displayDigit(R2);

delay(5);

}
void loop()
{
byte buf[VW_MAX_MESSAGE_LEN];
byte buflen = VW_MAX_MESSAGE_LEN;
int i;

if( vw_get_message(buf, &buflen) )
{afișaj TFT .clear();
if(pos < 2)
afișaj TFT .setCursor(0, pos);
else
{
pos=0;
}
Serial.print(j);
Serial.print(": ");
afișaj TFT .setCursor(0,0);
afișaj TFT .print(" Elster AS22 0 ");

afișaj TFT .setCursor(3,1);
for (i = 5; i < buflen; i++)
{

53
Serial.print((char)buf[i]);

afișaj TFT .print((char)buf[i]);
pos++;
}

afișaj TFT .print("kWh");
Serial.println("h");
j++;
}
}

Anexa 2
Transmitter AS220

54
// codul – arduino transmite codul prin dispozitivul de comunicare la contor
#include <SoftwareSerial.h>
#include < Wire.h>
#include <VirtualWire.h>

SoftwareSerial gtSerial(2, 3); // Arduino RX, Arduino TX

//declararea variabilelor
unsigned int i = 3;
unsigned int j = 0;
byte cad[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' \0'};
byte cadd[] = {0xa, 0xb, 0xc, 0, 0, 0, 0, 0, 0, ' \0'};
byte msg[10];
int incoming = 0;
int add=2000;
int add1,add2,add3;
//declarare vector de transmisie mesaj
byte message[] = {0xAF, 0x3F, 0x21, 0x8D, 0x0A, ' \0'};//cod mesaj trimitere iec62056 -21 mod
e
int analogPin = 0; // potentiometer wip er (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int raw = 0; // variable to store the raw input value
int Vin = 5; // variable to store the input voltage
float Vout = 0; // variable to store the output voltage
float R1 = 2700; // variable to store the R1 value
int R2 = 0; // variable to store the R2 value
float buffer = 0; // buffer variable for calculation

int analogPin1 = 1; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V

55
int raw1 = 0; // variable to store the raw input value // variable to store the output
voltage
float R3 = 2700; // variable to sto re the R1 value
int R4 = 0; // variable to store the R2 value

char a = A2; //For displaying segment "a"
char b = A3; //For displaying segment "b"
char c = A4; //For displaying segment "c"
char d = A5; //For displaying segment "d"
char e = A6; //For displaying segment "e"
char f = A7; //For displaying segment "f"
int g = 7 ; //For displaying segment "g"
int f1=11;
int f2=13;

void setup() {
Serial.begin(300); // ini țializare port serial baud 300
gtSerial.begin(300); //ini țializeaz ă portul de comunica ție cu contorul baud 300
gtSerial.write(message, 5); //trimite mesajul la contor
pinMode(A2, OUTPUT); //A
pinMode(A3, OUTPUT); //B
pinMode(A4, OUTPUT); //C
pinMode(A5, OUTPUT); //D
pinMode(A6, OUTPUT); //E
pinMode(A7, OUTPUT); //F
pinMode(g, OUTPUT); //G
pinMode(10, OUTPUT); //G
pinMode(13, OUTPUT); //G
pinMode(8, OUTPUT); //G
pinMode(9, OUTPUT); //G

56
}
//declararea byte -ului de date (ceea ce se citeste de la contor
byte rx_byte = 0;

void displayDigit(int digit)
{
//Conditions for displaying segment a
if(digit!=1 && digit != 4)
digitalWrite(A2,LOW);
//Conditions for displaying segment b
if(digit != 5 && digit != 6)
digitalWrite(A3,LOW);

//Conditions for displaying segment c
if(dig it !=2)
digital Write(A4,LOW)
//Conditions for displaying segment d
if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(A5,LOW)
//Conditions for displaying segment e
if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(8,LOW);

//Co nditions for displaying segment f
if(digit != 1 && digit !=2 && digit!=3 && digit !=7)
digitalWrite(9,LOW);
if (digit!=0 && digit!=1 && digit !=7)
digitalWrite(g,LOW);

57
}

void turnOff()
{
digitalWrite(A2,HIGH);
digitalWrite(A3,HIGH);
digitalWrite(A4,HIGH);
digitalWrite(A5,HIGH);
digitalWrite(A6,HIGH);
digitalWrite(A7,HIGH);
digitalWrite(g,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}
void afisare()
{ turnOff();
raw = analogRea d(analogPin); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

digitalWrite(10,HIGH);
digitalWrite(13,LOW);

displayDigit(R4);
delay(5);
turnOff()
raw1 = analogRead(analogPin1); // Reads the Input PIN

58
Vout = (5.0 / 1023.0) * raw1; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer;
R4=R4/1000;

digitalWrite(10,LOW);

digitalWrite(f2,HIGH);
displayDigit(R2);
delay(5);
}
void loop() {
raw = analogRead(analogPin); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R2 = R1 / buffer;
R2=R2/1000;

raw1 = analogRead(analogPin1); // Reads the Input PIN
Vout = (5.0 / 1023.0) * raw1; // Calculates the Voltage on th Input PIN
buffer = (Vin / Vout) – 1;
R4 = R3 / buffer;
R4=R4/1000;

int k = 0;
for (int p = 4; p < 7; p++)
{

59
if (digitalRead(p) == 1) { //verific ă dacă "butoanele" sunt ap ăsate pe pinii 4 5 6
cad[k]='1';
if(p==4){
add1=1;
}
else if(p==5){
add2=2;
}
else if(p==6){
add3=4;
}
}
else {
cad[k]='0';
if(p==4){
add1=0;
}
else if(p==5){
add2=0;
}
else if(p==6){
add3=0;
}
}
k++;
}
add=R2*1000+R4*100;
vw_setup(add);

60
if (gtSerial.available()) { //verif ică dacă portul este disponibil
rx_byte = gtSerial.read(); //preia datele de la portul serial gtSerial și le stocheaz ă în
rx_byte
rx_byte = (rx_byte & 127); //transformarea din 8 bi ți de date în 7 bi ți de date
if (rx_byte == '!') { //verific ă daca rx_byte este '!'( ultimul caracter trimis de contor)
j = -5;
delay(300000); //delay 1 secund ă timp în care a ștept ăm contorul s ă fie preg ătit pentru
o nou ă citire
gtSerial.write(mess age, 5); //trimite din nou mesajul c ătre contor
delay(400);
vw_send(cad, strlen(cad)); //trimite datele c ătre r eceiver
}

//prelucrarea datelor trimise de contor
if ((j > 395) && (j < 406)) {
if (i == 12)
{ cad[i] = ' \0';
i = 3;
delay(300);
i = 3;
}
else {
cad[i] = rx_byte; //în vector se preia indexul contorului care mai apoi se transmite
Serial.write(cad[i]);
i++;
}
}
else if (j == 10) {
i = 3;

61
Serial.write(rx_byte);
}
else {
Serial.write(rx_byte);
}
j++;
}
else{
afisare();
}
}

Similar Posts