Aplica ție informatic ă pentru achizi ția și prelucrarea semnalelor multisenzoriale Coordonator : Prof. dr. ing.: Sgarciu Valentin Absolvent: Velicu… [631241]
Universitatea POLITEHNICA Bucure ști
Facultatea de Automatică și Calculatoare
Departamentul Automatică și Ingineria Sistemelor
LUCRARE DE DIPLOM Ă
Aplica ție informatic ă pentru achizi ția și
prelucrarea semnalelor multisenzoriale
Coordonator :
Prof. dr. ing.: Sgarciu Valentin
Absolvent: [anonimizat]
2019
1 Cuprins
1. Introducere ……………………………………………………………………………. 2
1.1. Abstra ct…………………………………………………………………………….2
1.2. Semnale provenite de la sisteme multisenzoriale …………………………………3
1.3. Parametrii studiați …………………………………………………………………5
1.4. Obiective …………………………………………………………………………..7
1.5. Soluții existente pe piață …………………………………………………………..7
1.6. Structura lucrării …………………………………………………………………..8
2. Context și descriere componentelor folosite ………………………………………….. 9
2.1. Context…………………………………………………………………………….9
2.2. Compon ente folosite ……………………………………………………………..10
2.2.1. Arduino UNO (ATmega328p și CH340) ………………………………….10
2.2.2. Senzor d e Temperatură și Umidita te DHT22 ………………………………11
2.2.3. Senzor de Presiune Barometric BMP280 …………………………………..12
2.2.4. Senzor de Vibrații ………………………………………………………….14
2.2.5. Senzor de nivel al apei ……………………………………………………..15
3. Tehnologii folosite …………………………………………………………………….17
3.1. Arduino IDE ……………………………………………………………………..17
3.2. MATLAB ………………………………………………………………………..18
4. Descri erea aplica ției și interpretarea datelor …………………………………………19
5. Concluzii ……………………………………………………………………………..40
6. Bibliografie …………………………………………………………………………..41
2 1. Introducere
1.1. Abstract
În orice loc de pe aceast ă planet ă exist ă anumi ți factori externi ce pot influen ța
desfășurarea activitat ilor de zi cu zi. Aceast ă lucrare reprezint ă o analiz ă a anumitor factori
externi pentru a se afla în timp real valorile acestor a.
Pricipalul scop este m ăsurarea unor factori ce influen țează condi țiile de viața într-o
încăpere. Pentru aceast ă lucrarea se vor monitoriza și analiz ă factorii din tr-o încăpere. Se
va măsura temperatura, indicele de temperatu ră-umidtate (indicele de c ăldură resimțită),
presiunea atmosferic ă, umiditatea și altitudinea. Proiectul în faza ini țială se aseam ănă cu o
stație meteo interioar ă.
O sta ție meteo est e un ansamblu de senzorii ce observ ă fluctua țiile valor ilor
meteorologice și climatice întâlnite în me diul de măsurare. În mod normal aceast ă
folosește un termometru pentru calculul temperaturii, un baromet ru pentru calculul
presiunii atmosferice, un higro metru pentru a putea calcula valoarea umidit ății în aer și un
altimetru pentru m ăsurarea altitudinii.
Se va măsura și nivelul apei deoarace poate fi necesar ă cunoa șterea nivelului de ap ă
dintr -o incapera ( în cazul bazinelor), iar pentru acest lucru m ăsurătorile se vor face într-un
recipient în care se va afla o cantitate relativ mică de ap ă.
Monitorizarea acest or factori poate ajuta la aflarea uno r valori ce pot fi periculoase și în
cazul în care într-o încăpere este novoie ca valorile s ă fie constante ace asta lucru se poate
monitoriza pe o perioad ă de timp dată de uti lizator .
Cunoa șterea acestor date poat e aju ta la achizi ționarea de echipamente ce ajut ă la
păstrarea constant ă a temperaturii sau umidit ății în cazul creării de discomfort termic.
Totodat ă poate ajuta per soanele cu probleme de s ănătate s ă observe și să regle ze valorile în
cazul în care ac estea l e pun în pericol.
Totodat ă se poate m ăsura și nivelul de vibra ții în cazul în care exist ă anumite trepida ții
ale solului. Acest lucru este benefic în cazul pro ducerii unui cutremur, iar senzorul poate fi
conectat la un sistem de alarm ă pentru a pute a reac ționa în timp real. De asemenea poate fi
util în cazul m ăsurării vibra țiilor produ se de mijloacele de transpor t pentru a putea observa
dacă nivelul acestor este destul de mare pentru a pune cl ădirea respectiv ă într-un pericol pe
termen lung.
3 1.2. Semnale provenite de la sisteme multisenzoriale
În mu lte cazuri noțiunile de senzor și traductor pot fi considerate similar e deși aceastea
au semnificații diferite.
Traductorul est e un element de aparține structurii unui sistem automat, reprezentând
dispo zitivul ce convertește o mărime fizică proprie a unui s istem, într -o mărime ce poate fi
recepționată și interpretată de echipamentele folosite.
Un traductor este alcătuit din:
– Element sensibil: componenta primar ă ce ajut ă la detectarea m ărimii fizice pe c are
traductorul trebuie s ă o măsoare;
– Adaptor: rolul de a adapta informația obținută de elementul sensibil la cerințele
impuse de aparatură ;
– Elemental de leg ătură pentru transmiterea semnalului (op țional);
– Sursă auxiliar ă de energie(op țional);
Senzorul poa te fi c onsiderat o parte a traductorului numai dac ă acesta reprezint ă
elementul sensibil al acestuia. Senzorul este un dispozitiv tehnic care reac ționeaz ă la
anumite propriet ăți fizice sau chimice ale mediului de unde se achzitioneaza da tele, fiind
parte c omponent ă a unui aparat sau sistem ce poate m ăsura diferite m ărimi fizic e.
După simțul uman pe care îl suplinesc senzorii pot fi:
– Senzori tactili;
– Senzori vizuali;
– Senzori acustici;
– Senzori olfactiv i;
După modul de fabricare senzorii pot fi:
– senzori discre ți: au o construc ție sim plă și transmit o m ărime local ă;
– senzo ri integra ți: au o construcție complexă, aceștia incluzând și componente de
prelucrare a informație ;
Un sistem mutisenzorial reprezint ă un ansamblu format din mai mul ți senzori de
acela și tip sau diferi ți, cu sco pul de a furniza informa ții despre anumi ți parametrii p entru a
determina starea unui obiect sau a unui proces.
4 Se impune folosirea unui sistem multisenzorial în cazul unor fenomene complexe ce
necesit ă prelucrar ea mai multor parametrii.
Un sistem multisen zoria l utilizeaz ă pentru m ăsurare:
– O structur ă de senzo ri discre ți, când componentele sunt elemente discrete;
– O structur ă de senzori integrali, c ând componentele sunt elemente integrate;
– O structur ă mixtă create at ât din senzori discre ți cât și din senzori integrați;
În lucrarea aceasta se folosesc senzorii in tegra ți datorit ă faptului c ă sunt necesare
măsurători pentru parametrii diferi ți (temperatur ă, umiditate, presiune atmosferic ă, nivel,
vibra ții).
Pentru urm ărirea concomitent ă a evolu ției mai multor p arame trii sunt necesari mai
mulți senzori care se afl ă în acela și modul și formeaz ă un sistem mutisenzorial integrat.
Sistemele multisenzoriale integrate devin din ce în ce mai necesare în aplica ții din
domeniu roboticii, medicine i, avia ției etc.
Există mai mu lte genera ții de arhitecturi multisenzoriale:
– Prima genera ție: Ce con ține senzor i discre ți ce detecteaz ă un singur parametru;
– A doua genera ție: Ce cuprinde at ât senzori discre ți cât și senzori integra ți care au o
prelucrare primar ă a semnale lor;
– A treia g enera ție: Sunt senzori utitlizati în zilele noast re. Prelucrarea semnalului
analogic se realizeaz ă la distan ță unde exist ă un convertor analogic -numeric și un
microcontro ller;
– A pa tra genera ție: se refer ă la senzori matriceali integra ți ce po t fi interigat i de un
microcontroller doarece con țin și un deco dificator de adres ă, fluxul informa țional
fiind bidirec țional (adresa este transmis ă senzoruilui integrat, iar semnalul este
transm is convetrorului analog -numeric ).
– A cincea genera ție: Cuprinde senzori matri ceali integra ți cu structori complexe.
Acestea con țin memorie PROM pentru citirea matricei de senzori.
– A șasea genera ție: este variana îmbun ătățită a genera ției anterioare, m ărimile
perurbatoare sunt compensate local de c ătre senzor, iar cali brarea se face la distan ță
sau prin generarea unui semnal de int rare standard.
În present se fac cercet ări în domeniul microsenzorilor solit -state. Evolu ția
microele ctronicii a condus la o arhitectur ă de m ăsurare și contr ol numit ă microsistem.
Aceast ă arhitectură concentr ează într-o singur ă structur ă un întreg sistem multisenzorial.
5 –
Fig.1- Sistem multisenzorial
1.3. Parametrii studia ți
Temperatura
Temperatura este un parametru fundamental de stare ce caracterizeaz ă starea
termic ă a unui corp. Ac easta să măsoară cu ajutorul unui termometru.
Aceas ta se poate măsura în grade Celsius, grade Fahrenheit sau grade Kelvin. Vom
folosi temperatur a în grade Celsius ca referin ță.
6 Omul rezist ă la varia ții mari ale temperaturii în aer liber , dar într-o încăpere se
prefer ă o tempera tură constan tă pentru a putea fi i comfortabil.
Temperatura optim ă într-o încăpere este de 20 -21 de grade Cel sius.
Indicele de comfort termic (i ndicele de temperatura -umiditate) este un indice ce
combin ă temperat ura aerului și umiditatea relativ ă, în zonele umb rite, pentru a plasa o
temperatur ă echivalent ă perceput ă de om.
Temperatura se va m ăsura cu ajutorul senzorului DHT22.
Umiditatea
Umiditatea este cantitatea de vapori de ap ă conținută într-un est antion de aer, iar
aceasta variaz ă în func ție de sezon și de condi țiile climatice.. Aceasta m ăsurându-se cu
ajutorul unui higometru.
Indicatorul de referin ță al umidit ății este Umiditatea Relativ ă și este definit ă ca și
procent, reprezent ând cantitatea de umidita te din aer relat iv la nivelul maxim d e umiditate
pe care îl poate absorbi aerul p ână la limita de condens.
Nivelu l optim de umiditate depinde de temperatur ă de afar ă și de nivelul de
precipita ții. În general pentru o temperatur ă de aproximativ 20 de grade și în lipsa
averselor umiditatea trebuie s ă varieze între 50 -60%.
În cazul prezen ței averselor nivelul umidit ății poate ajunge la 100%.
Aceasta se m ăsoară cu ajutorul senzorului DHT22.
Presiunea atmosferic ă
Presiunea atmosferic ă este presiunea e xercita tă de aer asupra scoarței terestre.
Aceasta se măsoară cu ajutorul barometrului și se calculeaz ă în Pascal (Pa).
Presiun ea atmosferic ă depinde în principal de altitudinea unde se m ăsoară.
În condi ții normale presiunea atmosferic ă se modific ă foarte puțin. Pentru un om
sănătos aceasta nu reprezint ă o problem ă, dar în cazul unui om bolnav cronic aceast e
schimb ări pot avea urm ări grave.
În cazul lucr ării aceasta se va m ăsura cu ajutorul senzorului BMP280.
7 Altitudinea
Altitudinea este înălțimea unui obi ect de pe suprafa ța pământului în raport cu
nivelul m ării. Se măsoară cu ajutorul unui altimetru și se calculeaz ă în metri. Aceasta ajuta
la aflarea presiunii atmsoferice, iar în cazul lucr ării se va m ăsura cu senzorul BMP280.
La momentul testului altitudi nea înregistrat ă era de aproximativ 809m .
1.4. Obiective
Proiectul dore ște realizarea unui sistem format din mai mul ți senzo ri pentru a putea
putea m ăsura perametrii din mediu înconjur ător.
Componentele sistemului de prefer s ă aibe un cost redus șiș a fie ușor de asamblat.
Se dorește măsurarea într-o încăpere închis ă a temperaturii, umidit ății, presiunii
atmosferice, altitudi nii, nivelul de lichid dintr -un recipient și a vibra țiilor existente.
Măsurătorile f ăcute este preferabil s ă nu aibe o abatere ma i mare de 5% în contiti i
normale.
Soluția găsită este de a conecta diferi ți senzori la o plac ă de dezvoltare Arduino
Uno și înglobarea acestora în acelasi program pen tru a putea realiza masuratoriile pe
acela și eșantion de timp.
1.5. Solu ții existente pe piață
În momentul act ual se găsesc pe pia ță anumite sta ții meteo pentru interior. Acestea
variaz ă ca pre ț și ca mărime în funcție de cererea cump ărătorului.
Un e xemplu în acest sens este sta ția meteo Hama EWS -800, aceasta are un pre ț
mediu și ajut ă la măsurar ea temperaturii, umidității și presiunii atmosferice. Aceasta
afișează atât valorile din camera unde este in stalat ă cât și din exterior. Se alimenteaz ă cu
ajutorul bateriilor.
Are o raz ă de 30m pentru interior, iar pentru mediul exterior se monte ază un modul
wireless pe u n petrete ext erior al case, acest a având o raz ă de 100m.
8
Fig.2- Statie meteo interioara
1.6. Structura lucrării
Lucrarea este alcătuită din 6 capitole.
În primul capitol se prezintă introducere a lucrării, mărimile măsurate, d efiniți ile
senzorilor și s istemelor multisenzor iale, obiectivele lucrării, soluția aleasă și soluțiile
existente pe piață.
În cel de -al doilea capitol se prezintă contextul lucrării și descrierea componentelor
folosite și r olul acestora.
În cel de – al trei lea cap itol se prezintă te hnologiile ce ajută la creearea sistemului și ce
stau la baza aplicației.
În cel de -al patrulea capitol se prezintă arhitectura aplicației, rezultatele obținute și
interpretă rile acestora.
În cel de -al cincelea capitol se prezin tă avantajele soluției găsit e.
În cel de -al șaselea capitol sunt prezentate referințele bibliografice și lista figurilor.
9 2. Context și descrierea compon entelor folos ite
2.1. Context
Proiectul const ă în creerea unei aplica ții cu ajutorul pl ăcii de dezvola tare AR DUINO
pentru a achizi ționa și procesa informa ții dintr -un mediu înconjur ător (într-o încăpere). Se
pot m ăsura temperatura, umidita tea, presiunea atmosferic ă, altitudinea, iar în cazul în care
exista un recipient cu ap ă putem calcula nivelul și pres iunea a pei din acest recipient.
Se vo r folosii anumi ți senzori pentru a putea afi șa măsurile ce vor fi transforma te prima
oară din tensiun ile oferite de plac ă de dezv olatare.
Se va creea un sistem format din mai mul ți senzori ce va oferi informa ții în timp real și ce
va observa micile modific ări ale datelor m ăsurate.
După obținerea datelor cu ajutorul pl ăcii de dezvo ltare ARDUINO se vor tran smite
datele pentru a putea fi afi șate cu ajutorul software -ului MATLAB. Cu ajutorul acestui se
vor creea grafice ce v or ajut a la observarea mai u șoară a datelor m ăsurate și totodat ă la
înțelegerea mai concret ă a acestora.
Acestea se vor realiza prin crearea unui sistem cu ajutorul unei pl ăci de dezvoltare
Arduino și a anumitor senzori.
Componente folosite:
– Placă de dezvo ltare A rduino Uno;
– Senzor de temperat ură și umidate;
– Senzor de presiune;
– Senzor de m ăsurat vibra țiile;
– Senzo r de nivel;
După executarea aplica ției ce m ăsoară factorii speci ficați, datele se vor transfera într-un
document în Microsoft Excel pentru a face mai facilă introducerea datelor in MATL AB.
După aceea cu ajutorul programului MATLAB se vor creea anumite grafice pentru a
putea observa modific ările datelor m ăsurate pe un interval de timp.
Pentru a obține un grafi c cât mai variat se vor modi fica anumite date în timpul
măsurării cum ar fi temperatur a prin încălzirea în zona sensorilui de temperatur ă sau prin
acoperirea senzorului de presiune atmosferic ă.
10 Altitudinea trebuie sa f ie constant ă, deoarece senzorul va raman e la aceea și înalțime pe
durata m ăsurătorilor .
Iar asupra senzorului de vibra ții se va ac ționa pr intr-o ușoară atingere în timpul
măsurării.
După aceea se va ad ăuga un recipient cu ap ă pentru a putea utiliza un senzor pentru a
putea calcula nivelul și presiunea acestuia. Senzorul de nivel va fi acționat manual pentru a
putea observ a cum variaz ă valoar ea acestuia.
2.2. Componentele lucr ării
2.2.1. Arduino UNO (ATmega328p și CH340)
Fig. 3-Arduino UNO
Arduino UNO este o platform ă de procesare open -source, bazat ă pe software și
hardware flexibil și simpl u de folosit. Const ă într-o plat formă de mici dimensiuni
construi tă în jurul unui procesor de semnal și este capabil ă de a prelua date din mediul
înconjur ător printr -o serie de senzori și de a efectua ac țiuni asupra mediului pri n
intermediul luminil or, senzorilor, motoarelor, servomotoar e, și alte tipuri de dispozitive
mecanice. Pr ocesorul este capabil s ă ruleze cod scris într-un limbaj de programare care
este foarte similar cu limbajul C++.
Specifica ții:
11 – Microcontroler: ATmega328
– Tensiune d e lucru: 5V sau 3.3V
– Tensiune de intrare (recoma ndat): 7 -12V
– Tensiune de intrare (lim ita): 6 -20V
– Pini digitali: 14 (6 PWM output)
– Pini analogici: 6
– Curent per pin I/O: 40 m A
– Curent 3.3V: 50 m A
– Memorie Flash: 32 KB (ATmega328) 0.5 KB pentru bootloader
– SRAM: 2 KB (AT mega328 )
– EEPROM: 1 KB (ATmega328)
– Clock Speed: 16 MHz
2.2.2. Senzor de Temperatur ă și Umiditate DHT22
Fig. 4-Senzor Temperatura si umiditate
12 DHT22 este un senzor digital de temperatur ă și umiditate. Folose ște un senzor de
umiditate cap acitiv și un te rmistor pentru a m ăsura aerul din jur și ofer ă ieșire digital ă pe
pinul de date. Datele pot fi citite o dat ă la fiecare 2 secunde.
Pin-ul 1 se conecteaz ă la pin -ul de 5 V al pl ăcii de dezvoltare.
Pin-ul 2 se conecteaz ă la un pin de ie șire di gital.
Pin-ul 3 se con ecteaz ă la un pin GND al pl ăcii de dezvoltare.
Caracteristici tehnice:
– Cost redus;
– Tensiune de alimentare: 3 V – 5 V;
– Curent: 2.5 m A (când sunt prelucrate datele);
– Bun pentru umiditate 0 – 100% cu 2 -5% acurate țe;
– Bun pentru -40°C + 8 0 °C cu ± 0.5 °C acura tețe;
– Timp de r ăspuns: 2 secunde;
– Dimensiuni: 27 mm x 59 mm x 13.5 mm.
2.2.3. Senzor de Presiun e Barometric BMP280
Fig. 5-Senzor de presiune BMP280
13 Senzorul barometric este ideal pentru diverse proiecte de monitorizare a vremii.
Acesta poate fi folosit atât prin I2C c ât și prin SPI.
SPI (Serial Peripheral Interface) este o inte rfața sincron ă standard de mare vitez ă,
ce opereaz ă în mod full duplex. Ea e folosit ă ca magistral ă serial ă sincron ă pentru
transmiterea de date, unde circ uitele digitale p ot să fie interconectate pe principiul master –
slave. Aici, modul master/slave înseam nă că dispozitivul (circuit ul) digital master ini țiază
cuvântul de date. Mai multe dispozitive (circuite) digitale slave sunt permise cu slave
select indiv idual, adic ă cu selectar e individual ă.
I2C (Inter -Integrated Circuit) este o magistral ă bidirec țional ă cu dou ă fire
dezvoltat ă pentru a comunica componentele circuitului integrat. Pute ți avea o configura ție
Single Master – Single Slave pentru Multiple Mast er – Multiple Sla ve de c onfigurare cu
I2C.
Un senzor de precizie mare și cost redus, face ca senzorul BMP280 s ă fie solu ția
ideal ă pentru m ăsurători de precizie a presiunii de p ână la ±5 hPa și a temperaturii de p ână
la ±1.0°C. Pentru c ă presiunea se schimb ă cu altitudinea și măsurătorile presiunii sunt
foarte precise, pute ți folosi acest senzor și ca alt imetru cu ±5 metru acurate țe.
Caracteristici tehnice:
– Tensiune de alimentare: 3 V – 3.6 V;
– Comunicare: I2C sau SPI;
– Acurate țe presiune: ±5 hPa;
– Acurate țe temp eratur ă: ±1.0°C;
– Dime nsiuni: 19.2mm x 17.9mm x 2.9mm/0.8" x 0.7" x 0.1";
– Greutate: 1.3g.
– VCC – pinul de alim entare (maxim 3.6 V).
– GND – Punctul de mas ă
Pinii SPI:
– Toți pinii au circuit de level shift pentru ai aduce la un nivel logic de 3 – 5V.
– SCK/SCL – SPI Clock pin, intrare
– SDO – Serial Data Ouț/Master În Slave Ouț pin, pentru trimiterea datelor de la
BMP280 la procesor
– SDI/SDA – Serial Data În/Master Ouț Slave În pin, pentru trimiterea datelor de la
14 procesor la BMP280
– CSB – Chip Select pin, intrare în chip, trebuie conecta t la” low” pentru a începe
transmisia SPI
Pini I2C:
– SCK/SCL – este pinul de c eas de la I2C, se conecteaz ă la pinul de ceas de la
microprocesor.
– SDI/SDA – este pinul I2C pentru data, se conecteaz ă la pinul de date a l
microprocesorului
2.2.4. Senzo r de Vi brații
Fig. 6-Senzor de vibrații
Senzor ce detecteaz ă vibra ții și ofer ă un output digital, av ând sensivitate r eglabil ă.
Caracteristici tehnice:
– Tensiune de alimentare: 3.3V – 5V;
– Curent: 15mA;
15 – Ieșire digital ă cu comparator LM393;
– Tensiune de ref erință reglabil ă din poten țiometru;
– PCB -ul are g ăuri de montare pentru o fixare c ât mai bun ă.
– Dimensiuni: 32mm x 14mm.
Modulul cu senzor de vibra ții este util pentru detectarea mi șcărilor de amplitudini
destul de mici și poate fi folosit în practic ă pentru a dete cta furtul unui obiect sau pentru a
controla diferite sisteme în cazul unui c utremur.
Modulul este echipat cu dou ă led-uri, unul pentru power și celălalt pentru semnalul
de ie șire de la comparator.
Alimentarea modulu lui se face prin intermediul VC C, tensiu nea de alimentare fiind
cuprins ă între 3.3 V și 5 V. Pin -ul din mijloc trebui e conectat la un pin GND al pl ăcii de
dezvoltare folosite.
Transmiterea datelor se face în mod digital și se utilizeaz ă un singur pin.
Ajustarea sensibilit ății se realize ază prin intermediul poten țiometrului montat pe
modul.
2.2.5. Senzor de nivel al apei
Fig. 7-Senzor de nivel al apei
16 Specifica ții:
Tensiunea de func ționare: 5V
Curent de operare: <20 m A
Suprafa ță de detec ție: 40 mm x 16 mm
Temperatura de operare: 10 ˚C până la 30 ˚C
Umiditate: 10% p ână la 90%
Dimensiune: 62 x 20 x 8 mm
Senzorul poate fi utilizat pentru a detecta nivelul apei pe o distan ță de 40mm. Ace sta
este de o eficien ță foarte bun ă și are un consum foarte mic.
Valor ilie m ăsurate sunt între 0 și 700, aceste a nefiind constante cu lungimea
senzorului.
Output -ul este analogic, d ând o t ensiune în func ție de nivelul apei.
17 3. Tehnologii folosite
3.1. Arduino IDE
Arduino IDE (integrated development environment) este o aplic ație ce poate fi
folosit ă de ma i multe platforme (Windows, Linux, MacOS), sc risă în Java.
Aceast ă aplica ție poate fi folosit ă pentru a conecta toate tipurile de pl ăci de
dezvoltare Ardui no existente (UNO, NANO, MEGA, LEONARDO etc.).
Folose ște limbajele d e scriere C/C++ cu anum ite par ticularit ăți specific pl ăcilor de
dezvotare. Arduino IDE integreaz ă mai mult e biblioteci pentru ca placa de dezvoltare s ă
comunice cu senzorii conecta ți la ac easta.
Programele scrise în Arduino IDE poart ă de num irea de sketch și eu ca și extensie
de tip “ . Ino”.
Scrierea codului este facil ă chiar și unei personae f ără prea mult ă experien ță în
inginerie sau programare. Aceast ă aplicatiie fiind dezvoltat ă în principal cu scopul de a
ajuta la învățarea și înțelegere a leg ăturilor dintre componenta hardw are (pl acă de
dezvoltare, senzori..) și partea software (programele de ac ționare as upra celor men ționate
mai devreme).
Mediul IDE con ține, în principal, dou ă părți de bază: editorul și compilatorul.
Editorul ajut ă la scri erea codului d roit, iar compilatoru l ajut ă la compilarea și încărcarea
codului pe placa de dezvoltare folosit ă.
Codul inițial Arduino const ă în dou ă funcții:
– Setup (): Aceast ă funcție se apeleaz ă la ini țializarea sau resetarea unui sketch. Se
apeleaz ă o singur ă dată la început, iar aici sun t intia lizate variabilele, incluse
bibliotecile necesare și se declara pinii de int rare și ieșire a componentelor
exterioare folosite.
– Loop (): Este o func ție ce se ap eleaz ă repetitive p ână la închiderea sau resetarea
programului. În aceast ă funcție se rea lizeaz ă măsurările ce se vor afi șa în timp real.
Datorit ă faptului c ă este un prog ram open -source, utilizatorii pot creea biblioteci și le
pot ad ăuga pe site -ul ofici al. Datorit ă faptului c ă bibliotecile pot fi desc ărcate gratis
posibi litățile utilizatoril or de a creea sketch -uri sunt facile și pot avea o gam ă foarte larg ă.
Placa de dez voltare se conectează la PC printr -un por t USB. Pentru a putea face
legătura dintre Arduino IDE și placa de dezvoltare în setările aplicației se specifică portul
unde a fost conecta tă placa de dezvoltare, în acest caz COM3.
18 3.2. MATLAB
MATLAB (matrix laborato ry) este un mediu de dezvoltare pentru analzia statistic ă și
calcul numeric. Acesta integreaz ă calculul, vi zualizarea și programar ea într-un mediu u șor
de utilizat, în care p robleme le și solu țiile sunt exprimate în nota ție matematic ă cunoscut ă.
MATLAB perm ite manipularea matricelor, reprezentarea grafic ă a func țiilor și datelor,
implementarea de algoriti și crearea interfe țelor grafice . Aces ta este un mediu ce faciliteaz ă
experienta utilizatorilor.
Poate fi folosit pentru programe simple (ex. Programe de ca lcul) pentru utilizatorii ce
nu au o experien ță vastă în programare, d ar poate fi folosit și de utilizatori experim entați
pentru dezvoltar ea anumitor aplica ții sau reprezent ări graf ice dificile de realziat.
MATLAB este foarte important pentru lucrul cu sem nale, fiind unul din progr amele cel
mai u șor de utilizat pentru cre area și reprezentarea semnalelor. Din aceast ă cauză
MATLAB este progra mul preferat în majoritatea universit atiilor de inginerie.
Limbajul de programare este creat special pentru MATLAB, av ând în componen ță
elemente asociate cu limbajele C, C++ și Java. La încăput programul a fost scris în
FORTRAN, dar versiunile recente ale acestuia au fost scrise în JAVA.
MATL AB poat e fi folosit pe majoritatea sistemelor de oprearea (Windows, MacOS,
Linux).
Fig. 8- Interfata MATLA B
19 4. Descrierea aplica ției și interpretarea datelor
Aplica ția dor ește înglobarea fiec ărui senzor și afiseare a în timp real a datelor
prelucrate.
Aplica ția a fost creat ă din mai multe subprograme ce acceseaz ă fiecare se nzor și de
aceea se vor prezenta p ărțile din program ce corespund fiec ărui senzor.
Senzorii prezenta ți au în componen ță atât ieșiri analogice c ât și digitale, dar au fost
prioritare ce le cu i eșiri analogice deoarece se poate observa mai u șor transformare
tensiunilor de ie șire în unitiatile de m ăsură uitilizate.
Pentru senzorii cu ie șiri digitale se vor acces a anumite biblioteci ce ajut ă la afi șarea
datelor.
Temperatura și umiditate
Mai întâi trebuie s ă includem biblioteca DHT apoi s ă se defineasc ă numărul PIN –
uluila care este conectat senzorul nostru și să se creeze un obiect DHT. În sec țiunea de
configur are trebuie s ă inițiem comunicarea serial ă deoarece vom folosi monitorul seri al
pentru a imprima rezultatele.
Fig.9 – Legatura A rduino -Senzor DHT 22(temper ature si umiditate)
Pentru a conecta senzorul DHT22 se conecteaz ă pinul din st ânga (“+”) la pinul de
5V al pl ăcii de dezvoltare, pinul din dreapta (“ – “) se con ceteaza la p inul GN D al plăcii, iar
pinul Ou ț se va conecta la pinul digital num ărul 2.
20
Fig. 10 – Codul pentru senzorul de temperatur a si umiditate
Inițial se include biblioteca “DHT.H” pentru a putea un obiect de tip DHT deoarece
trebuie creeat un obie ct ce poate fi folosit de senzorul de temperature și umiditate DHT22.
După aceea se uitileaza intruc tiunea Serial. Begin (9600) pentru a putea afi șa pe
fereastra serial ă a programului în ArduinoIDE, iar aceasta are rata de 9600.
În figurile de mai s us este prezentat ă afișarea temperaturilor în grade Celsius, grade
Fahrenheit s ău grade Kelvin , a indicilor de temperatur ă în grade Celsius și Fahrenheit și a
umidit ății.
Instruc țiunea delay () seteaz ă intervalul între măsurători, în cazul de fa ță aceasta
este de 2 secunde.
Am creeat func ția getTemp p entru a putea face mai u șoară afișarea valorilo r pentru
datele m ăsurate. În aceast ă funcție sunt apelate comenziile ce apar țin de biblioteca DHT.
21
Fig.1 1 – Functii create pentru senzorul de temperatura
După cum s e poate observa în figur ă de mai sus se folosesc urm ătoarele func ții ale
bibliotecii DHT:
– readTem perature : pentru a putea primi datele legate de temperature;
– readHumidity: pentru a putea primi datele legate de umi ditate;
– computeHeatIndex: pentru a p utea af la indicele de c ăldură;
Pentru testarea temperaturii și umidit ății progr amul va afisa:
Fig. 12- Afisare program pentru senzorul de temperatu rii
22
Presiunea atmosferic ă
Se folose ște libr ăria BPM280 p entru a putea citi ie șirea sensorului, acest a poate
afișa presiunea atmosferic ă, temperature și altitudinea.
Pentru aceste tes te am uit izat conexiunea I2C: aceasta presupune conectarea pinul
Vcc a l senzorului la cel de 3.3V al pl ăcii de dezvoltare, pinul G ND al senzorului la pinul
GND al pl ăcii de d ezvolta re, pinul SDI la pinul analogic A5, iar pinul SDK la pinul
analogic A4.
Fig. 13-Conextiune a I2C Arduino -Senzor de presiune
23
Fig. 14-Conextiune a SPI Arduino -Senzor de presiune
Pentru a putea calc ula în modul I2C avem nevoie s ă includem bib lioteca “i2c. H” și
biblioteca “i2c_BMP280. H”, dup ă aceea se creeaz ă senzorul BMP .
Inițializarea acestuia se realizeaz ă prin instruc țiunea bmp280. Initialize (). Du pă
aceea se porne ște măsurarea.
Pentru m ăsurare a temperaturii se folose ște func ția getTempe rature(), pentru
măsurarea umidit ății se folose ște func ția getHumidity (), iar pent ru altitudine se folose ște
funcția getAltitude ().
Pentru a putea avea m ăsurători la intervale egale de timp vom folosi o întârziere de
2 secunde în cazul fiec ărui senzor folosit.
24
Fig.15 – Codul pentru senzorul de presiune
Rezultatele ob ținute pe ntru calculul presiunii atmosferice, temperaturii și altitudini i
sunt:
Fig.1 6-Afisare p rogram pentru senzorul de presiune
25
Nivel
Senzorul folosit pentru m ăsurarea nivelului es te unul analogic.
Fig.1 7- Conexiune A rduino -Senzor de nivel
Se conecteaz ă pinul “ – “la pinul GND, pinul “+” la pinul de 5V, iar pinul S la p inul A1.
Fig.1 8 -Codul pentru senzorul de niv el
26
Se citesc da tele folosind analogRead ().
Deoarece senzorul are o mărime de 40mm, iar valorile primite sunt inconstante am
împărțit în 3 ca tegorii în func ție de lungimea senzorului:
– Nivel sc ăzut între 100 și 300;
– Nivel mediu între 300 și 600 ;
– Nivel ridicat peste 600;
Rezultatele ob ținute sunt:
Fig.19 -Afisare a rezult atelor pentru senzorul de nivel
27 Vibra ții
Fig.20 -Conexiune Arduino – Senzor ul de vibratii
În cazul senzorului de vibra ții se conecteaz ă pinul VCC la pinul de 5V, pinul GND
la pinul GND, iar pinul DO la pinul 7.
Fig.21 – Codul pentru s enzorul de vibratii
Am cre at funcția TP_int pentru afi șare. Deoarece vibra țiile trebuie contorizate la
perioade scurte de timp în acest caz am folosit o întârziere de 10ms.
28 Se folose ște func ția pulseIn pentru a cit i datele senzorului, aceasta a șteapt ă în
perioa da de 10ms cea mai mare m ăsurătoare primit ă.
În afișare în cazul în care est e o vibra ție minor ă sub 1000 de unit ăți aceasta se
aproximeaz ă la cea mai mic ă valoare m ăsurat ă în ultimele 10 ms.
Am ac ționat manulat asupra senzorului pentru c ă altfel el n u va de tecta nicio
vibra ție în condi ții normale.
Fig.22 -Afisarea rezultat elor pentru senzorul de vibratii
Program final
În urma test ării fiec ărui senzor în parte al programului și verificare func ționării
acest ora, progr amele ce formeaz ă sistemul mus tisenzo rial au fost introdu se in acelasi
program(sketch) .
Pentru o m ăsurare exactă timpul de întârziere între m ăsurători este de 2 secunde,
pentru a putea observa diferen țele între date în aceea și perioad ă de timp.
De asemenea rata de achizi ție pentru sem nale este aceeași pentru fiecare, aceasta
fiind de 9600.
Singurele diferen țe în acest program fa ță de cele individuale este afi șarea, acesta
păstrând părțile componente de la progr amele anteri oare.
Ansamblul fi zic arata in felul urmator:
29
Fig. 23 – Sistemul in forma fizica
Fig. 24 – Cone xiunea senzorilor la breadboard
30
Fig. 25 – Cablajul pentru placa de dezvoltare Arduino
În urma rulării programului rezultatele ob ținute sunt:
Fig.2 6 – Rezultate finale pentru sistemul multisenzorial (1)
31
Fig.27- Rezultate finale pentru sistemul multisenzorial (2)
Pentru a putea cr eea graficele datel or măsurate am uitilizat software -ul M ATLAB
pentru a putea face o compara ție între datele m ăsurate.
Am decis s ă creez o variant ă a programului Arduino ce afi șează doar datel e
numerice pentru a le putea introduce într-un document de tip M icrosoft Excel.
Rezultatele ob ținute vor fi de form ă:
Fig. 28 – Rezultate finale pentru sistemul multisenzo rial (3)
32
După obținerea rezultatelor numerice am folosit programul C oolT erm pentru a
putea recep ționa datele și a le transforma într-un fișier de tip Excel.
Programul trebuie conectat la acela și port ca și placa de dezvoltare, în acest caz
portu l COM3.
Fig. 29 – Cool Term
MATLAB
În urma creerii documentului de tip. Xl sx se dore ște transformarea datelor într-un obiect de
tip dat ă cu ajutorul MATLAB.
Aces t lucru se realizeaz ă folosind func ția xlsread, în cazul acesta:
Num=xlsread (‘excelfinal. Xlsx’);
Iar pentru cre area graficelor s -a folosit funcția plot().
Un es antion de timp are va loarea de 2 secunde.
33
Fig. 30 – Tabelul valorilor in MATLAB
Rezultatele ob ținute au fost reprezentate grafic individual, iar în cazul calculul
temperaturilor au fost comparate cele 3: în grade Celsius, în grade Fa hrenheit și în grade
Kelv in.
Datorit ă faptului c ă în situa ția test ării senzorii de vibra ții și nivel t rebuie ac ționați
manual pentru a se putea observa acțiunea a cestora , graficele sunt fie constante fie au mari
fluctua ții.
În cazu l fiec ăreia se pot observa punctele unde s -a acționat manual asup ra lor, în
cazul senzorului de nivel la începutul pro gramului. În cazul senzorului de vibra ții
rezultatele sunt nule pe parcursul m ăsurării, ac ționându-se manual în dou ă intervale scrute
de timp dup ă cum se poate observa în figur ă.
34
Fig.31 – Grafic vibra tii
Fig. 3 2 -Grafic nivel
35
Pentru m ăsurarea altitudinii se observ ă mici abateri de și în timpul m ăsurătorilor
senzorul nu a fost mi șcat, aceasta se datoreaz ă micilor erori ale senzorului BMP280.
Aceste abateri nu afecteaz ă rezulta tul ob ținut deoarece su nt <1% din valoarea
măsurat ă.
Valoarea real ă în timpul m ăsurătorii a fost de 805m, iar dup ă cum se poate observa
abaterea este foarte mic ă.
Fig. 33 -Grafic Altitudine
Pentru m ăsurarea presiunii atmosferice observ ă modific ări ale g raficul ui
asem ănătoare cu cele din timpul m ăsurării altitudinii, acest fapt se dator ează apartenen ței
celor dou ă la senzorul BMP280.
36 Și în acest caz abaterile sunt foarte mici, presiunea atmosferic ă măsurat ă fiind de
930KPa. Se poate observa c ă rezultatele obținute sunt pu țin mai mi ci dec ât cele reale .
Fig.34 -Grafic presiune atmosferi ca
Temperaturile m ăsurate sunt aproximativ egale cu cele ce se resim țeau la ora
testării aplica ției (21.6 grade Celsius).
Abaterile ca și în cazul senzorilor prezenta ți mai sus d e sub 1%, ceea ce arat ă că
senzorul este optim și poate fi folosit la m ăsurar ea precis ă a temperaturii.
Se observ ă fluctua țiile constante ale temperaturii de aproximatic 0.7 grade Celsius.
37
Fig.35 – grafic temperature in grade Celsius
Fig. 36 -grafic temperature in grade Kelvin
38
Fig. 37- grafic temperature in Fahrenhei t
După cum se poate observa cele 3 r ămân constante una fa ță de cealalt ă.
Datorită transformărilor în grade Fahrenheit și în grade Kelvin, acele repreze ntări
grafice vor fi la fel ca ș i în cazul grad elor Celsius .
Gradul de umiditate este crescut datorit ă faptul ui că în urma conect ării la placa de
dezvoltare a senzorului DHT22 cablajul trece prin fa ță senzo rului și senzorii al ăturați
genereaz ă căldură și de aceea vom avea grade de umid itate ridicate. Umiditatea ridic ă se
datoreaz ă și faptului c ă fost măsurat ă într-o încăpere închis ă.
39
Fig.38 – grafic umiditate
40 5. Concluzii
Sistemul de achizi ție a datelor dintr -un mediu exterior achizi ționeaz ă și afișează
toate datele m ăsurate în timp rea l. Acesta respecata normele de func ționare.
Sistemul este stabi l, el respect ând marja de eroare <5%, în general abaterile
măsurătorilor sunt <1%.
Pentru calcul ul temperaturii valorile sunt extrem de apropiate de cele înregistrate cu
ajutor ul altor surse externe (termometru), valorile fiind neschimbate fie c ă vorbim d espre
grade Celsius, Fahrenheit s ău Kelvin.
Se pot observa perturba țiile care apar datorit ă comp onetelor uitilizate, în special în
calculul umidit ății datori tă faptului c ă pot exista interfer ențe cu restul senzorilor, iar
măsurătoarea realiz ându-se în apr opierea recipientului utilizat pentru m ăsurarea nivelului.’
În cazul vibra țiilor senzorul func ționeaz ă în parametrii normali, dar asupra acestuia
trebuie ac ționat manual, deoar ece nu se perce p vibra ții în mediul în care m ăsurătorile au
avut loc. Pentru ca lculul nivelului datorit ă senzorului și datelor sale de ie șire se poate
stabilii doar nivelul ap ei în func ție de m ărimea acestuia.
În viitor o posibil ă îmbunătățire ar fi conec tarea la un si stem de alarm ă pentru a
putea aten ționa utilizatorul în cazul cre șterii bru ște a unuia din factorii m ăsurați său o
depășire a normelor în cazul acestora.
41 6. Bibliografie
[1] Ian Sinclair , “Sensors and Transducers ”;
[2] Eugenie Posdarescu , “ Achizitia si prelucrarea semnalelor provenite de la sisteme
multisenzoriale ;
[3] Er ik Savasgard , Arduino: 101 Beginners Guide
[4] Jon Wilson , “Sensor Technology Handbook ”
[5] https://dokumen.tips/documents/senzori -si-sisteme -multisenzoriale. html
[6] https://www.optimusdigital.ro/ro/compatibi le-cu-arduino -uno/66 -placa -de-
dezvoltare -compatibila -cu-arduino -uno.html
[7]https://www.optimusdigital.ro/ro/senzori -senzor i-de-temperatura/1199 -senzor -de-
temperatura -i-umiditate -dht22.html
[8] https://www .optimusdigital. ro/ro/senzori -senzori -de-presiune/1666 -modul-senzor –
de-presiune -barometric -bmp280.html
[9] https://www.optimusdigital.ro/ro/senzori -de-vibraii/109 -modul -senzor -de-
vibratii.html?search_query=senzor+vibra ții&results=4
[10] https://www.optimus digital.ro/ro/senzori -altele/272 -senzor -de-nivel -al-
apei.html?search_query=se nzor+nivel&results=86
[11] https://towardsdatascience.com/r -vs-python -vs-matlab -vs-octave -c28cd059aa69
[12] https://cims s.ssec.wisc.edu/wxwise/class/aos340/spr00/whatismatlab.htm
[13] https://learn.sparkfun.com/tutorial s/what -is-an-arduino/all
[14] https://www.theengineeringp rojects.com/2018/10/introduction -to-arduino -ide.html
[15] https://www.hackster.io/dancili/test -dht22 -sensors -with-arduino -and-matlab –
74e81d
[16] http://www.planetoftheraven.com/201809 -arduino -GY-BMP280.html
42 Listă figuri
1. Fig.1 – Sistem multisenzorial …………………………………………………………..5
2. Fig.2 – Stație meteo interioar ă………………………………………………………….8
3. Fig. 3 -Arduino UNO ………………………………………………………………….10
4. Fig. 4 -Senzor Te mperatur ă și umiditate ………………………………………………11
5. Fig. 5 -Senzor de presiune BMP280 ………………………………………………….12
6. Fig. 6 -Senzor de vibra ții……………………………………………………………..14
7. Fig. 7 -Senzor de nivel al apei ………………………………………………………..15
8. Fig. 8- Interfa ță MATLAB …………………………………………………………..18
9. Fig.9 – Legătură Arduino -Senzor DHT22(temperature și umiditate) ………………..19
10. Fig. 10 – Codul pentru senzorul de temperatur ă și umiditate ………………………..20
11. Fig.11 – Func ții create pentru senzorul de temperatur ă………………………………21
12. Fig. 12 – Afișare program pentru se nzorul de temperatur ă…………………………..21
13. Fig. 13 -Conextiun ea I2C Arduino -Senzor de p resiune ……………………………..22
14. Fig. 14 -Conextiunea SPI Arduino -Senzor de presiune ……………………………..23
15. Fig.15 – Codul pentru senzorul de presiune …………………………………………24
16. Fig.16 -Afisare program pe ntru senzorul de presiune ………………………………..24
17. Fig.17 – Conexiune Arduino -Senzor de n ivel…………………………………………25
18. Fig.18 -Codul pentru senzorul de nivel ……………………………………………….25
19. Fig.19 -Afisarea rezultatelor pentru senzorul de nivel ……………………………….26
20. Fig.20 -Conexiune Ar duino – Senzorul de vibra ții……………………………………27
21. Fig.21 – Codul pentru senzorul de v ibrații………………………………………….27
22. Fig.22 -Afisarea rezultatelor pentru senzorul de vibra ții………………………….28
23. Fig. 23 – Sistemul în form ă fizică…………………………………………………29
24. Fig. 24 – Conexiunea se nzorilor la breadboard ……………………………………29
25. Fig. 25 – Cablajul pentru plac a de dezvo ltare Arduino ……………………………..30
26. Fig.26 – Rezultate finale pentru sistemul multisenzorial (1)………………………..30
43 27. Fig.27 – Rezultate finale pentru sistemul multisenzorial (2)………………………..31
28. Fig. 28 – Rezultate finale pentru sistemul multisenzorial (3) ………………………31
29. Fig. 29 – CoolTerm …………………………………………………………………32
30. Fig. 30 – Tabelul valorilor în MATLAB ……………………………………………33
31. Fig.31 – Grafic vibra ții……………………………………………………………..34
32. Fig. 32 -Grafic nivel ………………………………………………………………..34
33. Fig. 33 -Grafic Altitudine …………………………………………………………..35
34. Fig.34 -Grafic presiune atmosferic ă………………………………………………..36
35. Fig.35 – grafic temperature în grade Celsius ………………………………………37
36. Fig. 36 -grafic temperature în grade Kelvin ………………………………………..37
37. Fig. 37 – grafic temperature în Fahrenheit …………………………………………..38
38. Fig.38 – grafic umiditate ……………………………………………………………39
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplica ție informatic ă pentru achizi ția și prelucrarea semnalelor multisenzoriale Coordonator : Prof. dr. ing.: Sgarciu Valentin Absolvent: Velicu… [631241] (ID: 631241)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
