lucrare de licenȚĂ · de fabricație au permis producerea unor senzori ieftini și cu...

74
Olteanu Gheorghe Daniel 1 Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor LUCRARE DE LICENȚĂ Strategii adaptive de achiziție de date pentru senzori de gaze semiconductori Absolvent Olteanu Gheorghe Daniel Coordonator As.dr.ing. Grigore Stamatescu Bucureşti, 2013

Upload: others

Post on 06-Jan-2020

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 1

Universitatea Politehnica Bucureşti

Facultatea de Automatică şi Calculatoare

Departamentul de Automatică şi Ingineria Sistemelor

LUCRARE DE LICENȚĂ

Strategii adaptive de achiziție de date

pentru senzori de gaze

semiconductori

Absolvent

Olteanu Gheorghe Daniel

Coordonator

As.dr.ing. Grigore Stamatescu

Bucureşti, 2013

Page 2: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 2

CUPRINS

1. Introducere

1.1. Noțiuni introductive privind senzorii de gaze semiconductori

1.2. Aspecte privind nevoia implementării strategiilor adaptive de achiziție de date

1.3. Scurt sumar al lucrării

2. Aspecte teoretice

2.1. Senzorul pentru monoxid de carbon

2.1.1. Necesitatea măsurării concentrației de monoxid de carbon

2.1.2. Efectele expunerii la monoxid de carbon

2.2. Senzorul pentru dioxid de carbon

2.2.1. Necesitatea măsurării concentrației de dioxid de carbon

2.2.2. Efectele expunerii la dioxid de carbon

2.3. Senzorul pentru ozon

2.3.1. Necesitatea măsurării concentrației de ozon

2.3.2. Efectele expunerii la ozon

2.4. Posibilitatea implementării senzorilor de gaz in structuri BMS (Building

Management System)

3. Echipamente utilizate

3.1. Microcontrollerul ADuC832

3.2. Senzorul pentru monoxid de carbon MQ – 7TH

3.3. Senzorul pentru dioxid de carbon MG811

3.4. Senzorul pentru detecția ozonului MQ131

3.5. Multimetrul UNI – T – 803

4. Implementarea strategiilor adaptive de achiziție de date

4.1. Implementarea soluției de achiziție continuă a datelor

4.2. Implementarea soluției de achiziție temporizată a datelor

4.3. Implementarea soluției de achiziție a datelor bazate pe eșantionarea adaptivă

5. Concluzii

6. Anexe

7. Bibliografie

Page 3: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 3

1. Introducere

Senzorii de gaz semiconductori din oxizi metalici sunt utilizați într-o largă varietate de

roluri și aplicații industriale diferite, fiind relativ ieftini în comparație cu alte tehnologii,

robuști, ușori, cu durată mare de viață, având sensibilitate înaltă și timp de răspuns rapid.

Aceștia au fost folosiți în mod extensiv pentru măsurarea și monitorizarea urmelor de gaze cu

importanță pentru mediu ca de exemplu monoxidul și dioxidul de carbon. Datorită consumului

relativ mare de curent al acestor senzori, aproximativ 200mA la o tensiune de 5V, se impune

implementarea unor strategii adaptive de achiziție de date în vederea diminuării consumului

energetic și a integrării acestor senzori în rețele wireless cu autonomie sporită, bazate pe

baterie.

1.1. Noțiuni introductive privind senzorii de gaze semiconductori

Fenomenul de modificare a conductivității în acest tip de semiconductori la absorbția /

desorbția unui gaz pe / de pe suprafața unui strat de oxid metalic este cunoscut din anul 1962,

fiind prima dată demonstrat folosind straturi subțiri (Elmi, Zampolli, Cozzani, Mancarella, &

Cardinali, 2008). Sensibilitatea unei astfel de suprafețe la gaz poate fi atât de înaltă încât să atingă

și nivelul părți pe milliard (parts per billion (ppb)) (Seiyama, Kato, Fujiishi, & Nagatani, 1962).

Este de dorit ca senzorii semiconductori oxizi metalici să aibă o suprafață specifică mare astfel

încât să absoarbă cât mai mult din analitul (gazul) vizat, oferind astfel un răspuns mai puternic și

mai exact (mai ales la concentrații mici). Progresele înregistrate în cadrul metodelor moderne

de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere

crescut față de cei obținuți prin metodele precedente (Williams, 1999). Costurile de producție

sunt menținute la un nivel scăzut datorită simplității senzorului semiconductor din oxizi

metalici. Capacitatea acestora de a putea fi produși rapid și pe scară largă printr-un proces

ușor de controlat face această tehnologie extrem de atractivă.

Detectorii de gaze convenționali folosesc elemente sensibile realizate cu straturi metalice

semiconductoare (e.g. ). Acestea trebuie inițial incălzite la o anumită temperatură,

printr-un circuit electric auxiliar (filament de incalzire care aduce la temperatura de

functionare (100 - 400 oC) materialul semiconductor aflat pe tubul ceramic ce inconjoara

acest filament), și ulterior poate fi măsurată o tensiune de ieșire proporțională cu modificarea

rezistenței stratului semiconductor in funcție de concentrația gazului analizat. Unii senzori de

gaze necesită și operare in regim parțial pentru a elimina reziduurile depuse pe stratul de oxid

metalic înainte de o nouă măsurare. (George F. Fine, 2010)

În vederea utilizării acestor senzori intr-un sistem de calcul cu autonomie sporită, vor

Page 4: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 4

trebui propuse strategii adaptive pentru achiziția de date in vederea minimizării consumului

energetic al acestor echipamente.

Figura 1.1. – Structura unui senzor de gaz

1.2. Aspecte privind nevoia implementării strategiilor adaptive de

achiziție de date

Problema energiei in rețelele de senzori wireless rămâne una dintre barierele majore care

împiedică exploatarea completă a acestei tehnologii. Nodurile de senzori sunt de obicei

alimentate de baterii cu o durată de viață limitată, și chiar dacă se poate folosi energie

adițională din mediul exterior, aceasta rămane o resursă limitată care trebuie folosită

inteligent. De aceea managementul eficient al energiei este o cerință cheie, cele mai multe

strategii presupunând că achiziția de date consumă semnificativ mai puțină energie decat

transmisia acestora. Cand această presupunere nu este valabila, strategiile de management

eficient al energiei ar trebui să includă de asemenea politici pentru utilizarea optimală a

senzorilor care au consumul ridicat de energie.

O rețea wireless de senzori constă intr-un număr mare de senzori de dimensiuni reduse,

care sunt așezați pe o arie geografică(se mai numeste și câmp de senzori). Fiecare nod este

reprezentat de un dispozitiv care încorporează mijloace de calcul, comunicație wireless și

abilități de detecție. Nodurile sunt organizate in grupuri și rețele și coopereaza pentru a

efectua monitorizare(și/sau control). Nodurile de senzori sunt capabile să detecteze

informația din mediu, să o prelucreze atat la nivel local cât și la nivel de grup și să trimită

Page 5: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 5

rezultatul către unul sau mai multe puncte de colectare. Aceasta poate fi vazută ca o

tehnologie distribuită de achiziție de date și poate fi utilizată in numeroase operațiuni de

monitorizare și control. De aceea, în ultimii ani ani, numărul rețelelor de senzori a crescut

semnificativ, iar tendința aceasta va rămâne constantă și in viitor.

Datorită consumului energetic ridicat, integrarea senzorilor de gaz în sisteme de calcul

pentru aplicații de monitorizare a calității aerului cu autonomie sporită și operare pe baterii,

reprezintă o provocare. Vom avea in vedere implementarea unor strategii adaptive de

achiziție de date pentru a optimiza consumul energetic și prelungirea duratei de viață a

bateriei precum măsurarea ierarhică, măsurarea activă bazată pe model și eșantionarea

adaptivă. (Cesare Alippi G. A., 2009)

Figura 1.2. – Clasificarea și organizarea strategiilor adaptive în funcție de modul de

abordare

În figura 1.2. se poate observa clasificarea strategiilor adaptive. Acestea pot fi

implementate folosind trei abordări diferite: monitorizarea ierarhică, monitorizarea activă

bazată pe model și eșantionarea adaptivă.

Tehnicile ierarhice presupun faptul că mai multi senzori sunt instalați intr-un nod și

observă evenimentul la o rezoluție diferită și deci implicit la un consum de energie diferit.

Monitorizarea activă bazată pe model oferă o prognoză a fenomenului măsurat folosind

un set inițial de date. Odată ce modelul este calculat, următorul set de date poate fi prezis de

modelul verificat de a lungul timpului în locul achiziției continue de date ceea ce

minimizează energia consumata pentru monitorizarea evenimentului și transmiterea datelor.

În final, tehnicile de eșantionare adaptivă sunt concepute in așa fel încât să schimbe

perioada de eșantionare in funcție de datele achiziționate dar si de informația referitoare la

Page 6: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 6

energia din baterie disponibilă la acel moment.

1.3. Scurt sumar al lucrării

În cele ce urmează vor fi prezentate pe scurt principalele noțiuni care vor fi expuse in

această lucrare. În capitolul 2 vor fi prezentate aspecte teoretice despre senzorii de gaze cu

semiconductori, modul de funcționare, răspunsul senzorilor si elementele care pot perturba

acuratețea si timpul de răspuns al acestora. În particular vor fi prezentate elemente specifice

senzorilor care detectează concentrația de monoxid de carbon, dioxid de carbon și ozon. Vor

fi studiate motivele pentru care monitorizarea acestor concentrații de gaz este importantă și

efectele acestora asupra sănătații. La sfârșitul capitolului se va studia implementarea acestor

senzori intr-un BMS (Building Management System) și anume realizarea unui modul DCV

(Demand Controlled Ventilation).

Capitolul 3 descrie implementarea aplicației practice din punct de vedere hardware (vor fi

prezentate date tehnice despre cei trei senzori de gaz utilizați , și , folosirea

multimetrului UNI-T-803, date tehnice despre microcontrollerul utilizat pentru

implementarea strategiilor adaptive și nu în ultimul rând realizarea comunicației cu PC-ul) și

software (mediul de dezvoltare KEIL, metoda de stocare a datelor in fișiere și prelucrarea

acestora ulterioară in MATLAB).

În capitolul al patrulea vom trece in revistă principalele abordări ale strategiilor adaptive

în vederea minimizării consumului de energie și a sporirii autonomiei sistemului de achiziție

de date. Apoi se va prezenta implementarea acestora pentru placa de achiziție prezentată in

capitolul anterior.

Capitolul final va avea rolul de a prezenta analiza strategiilor implementate in comparație

cu modul continuu de achiziție a concentrațiilor acestor gaze.

2. Aspecte teoretice

Teoria benzilor afirmă că în cadrul unei rețele există o bandă de valență și una de

conducție. Separația dintre aceste doua benzi este în funcție de energie, în mod particular

nivelul Fermi, definit ca și cele mai înalte nivele disponibile de energie ale electronului la o

temperatură (Martin, 2004). Teoria benzilor imparte tipurile de material în trei categorii (vezi

Figura 2.1.).

Page 7: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 7

Figura 2.1. – Clasificarea materialelor in funcție de conductivitatea electrică

Izolatorii prezintă o diferență energetică înaltă între banda de valență și cea de conducție

(de regulă de 10 eV sau mai mult), astfel încât ar fi nevoie de o cantitate foarte mare de

energie pentru promovarea electronului din banda de valență în cea de conducție, așa încât

conducția electronică nu are loc. Nivelul Fermi este cel mai înalt strat ocupat la T = 0

(Shriver, 2006). Semiconductorii au o diferență de nivel energetic suficient de mare (0.5-5.0

eV) astfel încât la energii sub nivelul Fermi conducția nu are loc. Deasupra nivelului Fermi,

electronii pot să ocupe și banda de conductie, rezultând o creștere a conductivității.

Conductorii au nivelul Fermi în interiorul benzii de conducție.

Gazul țintă interacționează cu suprafața filmului din oxid metalic (în general prin

intermediul ionilor de oxigen adsorbiți superficial), ceea ce conduce la o modificare a

concentrației de purtători de sarcină a materialului. Această modificare a concentrației de

purtători de sarcină modifică conductivitatea (sau resistivitatea) materialului. La

semiconductorii de tip n majoritatea purtătorilor de sarcină sunt electronii, astfel încât după

interacțiunea cu un gaz reducător are loc o creștere a conductivității. Dimpotrivă, un gaz

oxidant golește stratul sensibil de purtători de sarcină (electroni), rezultând o scădere a

conductivității. La semiconductorii de tip p, conducția are loc pe baza golurilor pozitive pe

post de purtători de sarcină, putându-se observa prin urmareare efectele opuse: creșterea

conductivității în prezenta unui gaz oxidant și creșterea rezistivității în prezența unui gaz

reducător (sarcina negativă introdusă în material reduce concentrația purtătorilor de sarcină).

(George F. Fine, 2010)

Clasificare Gaze oxidante Gaze reducătoare

De tip n Creșterea rezistenței Scăderea rezistenței

De tip p Scăderea rezistenței Creșterea rezistenței

Tabelul 2.1. Schimbarea rezistenței la modificările gazului din atmosferă

Există anumiți factori care pot perturba viteza de răspuns și precizia senzorilor de gaz.

Prezența altor substanțe în raza de detecție a senzorului este importantă, deoarece in mod

ideal măsurarea conductivității ar trebui să fie relevantă numai pentru modificarea

concentrației de gaz care face subiectul monitorizării.

Dacă la schimbarea concentrației de purtători de sarcina contribuie un alt gaz, atunci

datele achiziționate de senzor vor fi inexacte și măsurătoarea va avea o valoare falsă. Cele

mai importante substanțe care pot perturba achiziția datelor sunt prezentate în cele ce

urmează.

Ozonul

S-a demonstrat că atunci când numărul de goluri de oxigen este mare, concentrația

electronilor la suprafață este și ea mare (Vincenzi, et al., 2000). Acest fapt ar crește

Page 8: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 8

conductivitatea pentru un material de tip n, dar la introducerea ozonului pe suprafață, acesta

s-ar reduce, completând golurile (considerate goluri negative) și deci micșorând

conductivitatea.

(2.1)

(2.2)

Dacă ozonul este prezent in concentrații semnificative, răspunsul materialului va fi

modificat, acest fapt putând conduce la citiri eronate cu privire la prezența și concentrația

gazului care este monitorizat.

Apa

Apa interacționeaza cu oxidul metalic și îi modifică conductivitatea peliculei (Patel,

Patel, & Vaishnav, 2003). Moleculele de apă formeaza ioni de hidroxil (grupă funcțională

formată dintr-un atom bilavent de oxigen; se notează ) pe suprafață, introducând direct

electroni care sporesc conductivitatea unui senzor de tip n (afectează doar foarte puțin un

material de tip p). Atomii de hidrogen rămași intră in reacție cu atomii de de oxigen de la

suprafață, formând goluri negative și crescând astfel conductivitatea. În lucrarea

(Korotcenkov, Blinov, Brinzari, & Stetter, 2007)s-a investigat efectul umidității asupra

răspunsului peliculei de , aceasta având o scădere a timpului de răspuns și de asemenea

un răspuns mai puternic in prezența apei. Efectul apei trebuie luat in considerare atunci când

se monitorizează gaze reducătoare.

Compuși organici volatili

Cercetările au demonstrat că răspunsul peliculei de variază atunci când intră in

contact cu diverse hidrocarburi. În (Wang & Hu, 1999) s-a arătat că semiconductorii din oxizi

metalici răspund la alcool metilic, etilic, butilic, izopropilic. Selectivitatea și controlul

răspunsului senzorului reprezintă o provocare majoră în folosirea dispozitivelor

semiconductoare din oxizi metalic deoarece in aproape toate mediile sunt prezente urme de

compusi organici volatili.

2.1. Senzorul pentru monoxid de carbon

La ora actuală, cel mai bun material semiconductor pentru detectarea monoxidului de

carbon este . Au fost testate și alte materiale precum și însă performanțele

oferite de către acestea nu se ridică la nivelul celor oferite de , deoarece oferă un

răspuns slab atunci când se măsoară concentrații scăzute de monoxid de carbon. S-a

demonstrat că, senzorii de gaz semiconductori din au un răspuns mai puternic la

concentrații scăzute decât detectoarele de gaz în infraroșu (Wiegleb & Heitbaum, 1994), acest

fapt fiind de perspectivă pentru viitor în contextul minimizării costului de măsurare a calității

aerului. Principala dificultate in calea utilizării tehnologiei MOS este reprezentată de

Page 9: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 9

consumul mare de energie al acestui tip de senzori. Deși temperatura de functionare de

aproximativ 250 ajută la diminuarea necesarului de energie, totuși este de preferat să se

minimizeze consumul prin implementarea unor strategii adaptive de achiziții de date.

2.1.1. Necesitatea măsurării concentrației de monoxid de carbon

Monoxidul de carbon este un gaz incolor și inodor ceea ce îl face pe acesta să fie

neobservat de oameni. Acesta reprezintă cauza principală a intoxicațiilor în Statele Unite ale

Americii și este responsabil pentru peste 50% din intoxicațiile mortale în țările puternic

industrializate (Varon, Marik, Fromm, & Gueler, 1999). S-a constatat că monoxidul de

carbon se fixeaza ireversibil de nucleul de fier al hemoglobinei (molecula ce transportă

oxigenul în sânge).

Figura 2.2. – Efectul monoxidului de carbon asupra transportului de oxigen în

sânge

Fixarea ireversibilă a monoxidului de carbon face absorția oxigenului imposibilă,

expunerea la concentrații mari pe perioade îndelungate de timp putând să provoace chiar

moartea. Conform Institutului Național de Sănătate și Siguranță Ocupațională din Statele

Unite ale Americii, valoarea maximă admisă este de 35 ppm pe o durată de 8 ore. Acest gaz

este de obicei un produs al procesului ineficient de ardere al unor substanțe organice precum

petrolul, benzina și uleiul.

Deși concentrațiile de monoxid de carbon sunt in mod particular crescute în zonele

industriale în care combustibilii fosili sunt arsi în scopuri energetice și în marile orașe în care

se ating nivele extrem de ridicate de trafic, totuși acesta este în atenția opiniei publice mai

ales din cauza numărului tot mai mare de intoxicații produse acasă. Utilizarea unor boilere

defecte, alimentate cu gaz, sau a sobelor pentru încălzirea locuințelor iarna în zonele rurale,

Page 10: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 10

produce anual un număr semnificativ de decese.

În incinta locuințelor se pot folosi senzori pentru a monitoriza concentrația de

monoxid de carbon, iar în cazul in care aceasta depășește un anumit prag, sistemul de

monitorizare să atenționeze locatarul de iminența unei intoxicații (monoxidul de carbon nu

poate fi sesizat de “sistemul senzorial” uman deoarece este un gaz incolor și inodor).

În acest sens, există două mari categorii de senzori: senzorii cu pată de cerneală și

senzorii electrici. Senzorii de tip pată de cerneala sunt în principiu constituiți de o bucată de

sare din oxid metalic. În urma interacțiunii acesteia cu monoxidul de carbon, sarea este

redusă, formându-se dioxidul de carbon. Atunci când sarea este redusă, aceasta își schimbă

culoarea, devenind neagră.

Acest sistem de detecție prezintă avantajul de a fi ieftin, insă el necesită atenția

observatorului pentru a remarca schimbarea concentrației. Având în vedere faptul că

expunerea la concentrații mari provoacă amețeală și stări de confuzie, observatorul s-ar putea

să nu fie capabil să conștientizeze în timp util pericolul iminent în care se află și să acționeze.

De aceea, folosirea acestei metode este ineficientă și periculoasă deoarece este dependentă de

factorul uman de observație.

Senzorii de monoxid de carbon sunt la rândul lor de două tipuri: senzori din oxizi

metalici de tip termistor (detectează o schimbare a temperaturii atunci când monoxidul de

carbon reacționează cu oxidul) și senzori electrolitici (detectează schimbarea purtătorilor de

sarcină din substanța electrolitică atunci când monoxidul de carbon interacționează cu

electrodul dispozitivului).

2.1.2. Efectele expunerii la monoxid de carbon

Conform Agenției de Protecție a Mediului din Statele Unite ale Americii, în mod

obișnuit concentrația de monoxid de carbon din locuință este cuprinsă între 0.5 și 5 ppm.

Totuși, expunerea îndelungată și la concentrații ridicate poate avea efecte devastatoare asupra

sănătății umane și poate conduce chiar la moarte.

Senzorii pentru monoxid de carbon sunt utilizați într-o gamă largă de aplicații, nu

numai în cele de protecție a locuințelor dar și în măsurarea concentrației din atmosferă, în

sistemul de evacuare al mașinilor dar și în monitorizarea proceselor în instalațiile industriale.

În cele ce urmează, vor fi expuse efectele inhalării îndelungate a monoxidului de

carbon în diverse concentrații. Acesta se fixează de nucleul de fier al hemoglobinei (molecula

care transporă oxigenul în sânge) și împiedică absorbția oxigenului.

Semnele și simptomele pleacă de la dureri de cap și amețeală, pierdere a capacității de

concentrare, tahicardie, stări de greața, incapacitatea de a respira și pierderea cunoștiinței iar

la concentrații mari și la perioade îndelungate de expunere, intoxicația cu monoxid de carbon

poate duce la decesul persoanei sau persoanelor aflate în zona contaminată.

Page 11: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 11

În tabelul de mai jos, sunt sintetizate principalele efecte ale expunerii la acest gaz în

concordanță cu concentrația de monoxid de carbon din atmosferă, măsurată în parts per

million (ppm) și concentrația de monoxid de carbon din sânge, notată în tabel cu COHb și

măsurată în procente (George F. Fine, 2010).

Concentrația de monoxid de carbon din aer (ppm)

Concentrația de monoxid de carbon din sânge (%)

Semne și simptome

35 Dureri de cap și amețeală în 6 – 8

ore de expunere

100 Dureri ușoare de cap în 2 – 3 ore de

expunere

200 Dureri ușoare de cap în 2 – 3 ore de

expunere; pierderea cunoștiinței

400 Dureri puternice de cap în 1 – 2 ore

de expunere

800 Amețeală, stări de greață în 45 de

minute de expunere

1600 Dureri de cap, tahicardie, amețeală,

greață în 20 de minute de expunere;

în 30 de minute de expunere

survine moartea

3200 Dureri de cap, amețeală și greață în

5 – 10 minute de expunere; în 30

de minute de expunere survine

moartea

6400 Dureri de cap și amețeală în 1 – 2

minute, imposibilitatea de a respira

și moartea în 20 de minute

12800 Moarte în mai puțin de 3 minute

Tabelul 2.2. – Efectele expunerii la monoxid de carbon, în funcție de concentrație

2.2. Senzorul pentru dioxidul de carbon

Un număr important de materiale semiconductoare metal – oxid au fost cercetate

pentru detecția dioxidului de carbon incluzând: , , și . Dintre acestea,

s-a dovedit a fi cel mai performant. Detecția dioxidului de carbon este problematică

Page 12: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 12

deoarece teoria de bază referitoare la structura benzilor de valență și conducție și la

concentrația purtătorilor de sarcină este insuficientă pentru a ajuta la îmbunătățirea

răspunsului gazului (George F. Fine, 2010). Astfel domeniul de detecție la care se face

referire în literatura de specialitate este cuprinsă între 2000 și 10000 de părți pe milion. La

ora actuală, elementul cel mai dificil în implementarea senzorilor pentru dioxid de carbon cu

tehnologia MOS este constituit de dezvoltarea unor tehnici cu ajutorul cărora să se poată

măsura concentrații cuprinse între 500 și 2000 părți pe milion. Senzorii bazați pe LaOCl pot

oferi un răspuns suficient de puternic la o concentrație de 2000 ppm la o temperatură de

260ºC și de aceea studierea acestui material ar putea fi în viitor de perspectivă pentru

detectarea dioxidului de carbon la concentrații relativ mici.

2.2.1. Necesitatea măsurării concentrației de dioxid de carbon

Dioxidul de carbon este prezent în atmosferă la concentrații de 338 ppm (Ianuarie

2010) (George F. Fine, 2010). Acesta este utilizat în numeroase aplicații industriale precum:

băuturile carbogazoase, aplicații pneumatice, stingătoare de incendii și este de asemenea un

ingredient esențial pentru ca fotosinteza să aibă loc. Dioxidul de carbon este de asemenea un

gaz cu efect de seră; el absoarbe energia infraroșie și o transformă în căldură pe care o

transmite mai departe, fapt ce determină creșterea temperaturii ambientale. Astfel,

temperatura crește direct proporțional cu concentrația de dioxid de carbon din atmosferă. De

aceea, senzori cu un grad ridicat de precizie și cu un domeniu de măsurare al temperaturii

adecvat ar putea fi folosiți pentru a măsura variațiile de concentrație.

Datorită activităților industriale umane precum arderea hidrocarburior, a cărbunilor, a

metanului și a altor combustibili (in condițiile prezenței oxigenului într-o cantitate suficientă,

astfel încât în urma arderii să rezulte dioxid de carbon și apă), s-a constatat o creștere liniară a

concentrației de dioxid de carbon, fapt care a condus la încălzirea globală. Senzorii pot

măsura cantitatea de dioxid de carbon degajată în urma arderii, oferind astfel informații în

timp real despre cantitatea de gaz produsă de proces. Concentrația de a crescut în mod

constant din 1950 și până în prezent și se așteaptă ca această tendință să continue și în viitor.

Figura 2.3. Evoluția concentrației de dioxid de carbon din atmosferă

2.2.2. Efectele expunerii la dioxid de carbon

Page 13: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 13

Dioxidul de carbon poate cauza efecte negative majore asupra sănătății umane și

inlud, printre altele, stări de somnolență și, la concentrații suficient de ridicate, sufocare.

Concentrația și timpul mediu de expunere maxime recomandate de Institutul pentru

Siguranță și Sănătate Ocupațională din Statele Unite ale Americii este de 5000 de ppm pe o

perioadă de opt ore (George F. Fine, 2010).

În tabelul de mai jos este prezentată o sinteză a efectelor expunerii la diferite

concentrații de dioxid de carbon.

Concentrația de dioxid de carbon

și durata de expunere

Efectul asupra sănătății umane și simptome

ale intoxicaiei

0.035% Concentrația de dioxid de carbon din atmosferă,

nu are nici un efect observabil

3.3 – 5.4% pentru 15 minute Dificultate crescută a respirației

7.5% pentru 15 minute Senzația de imposibilitate a respirației, creșterea

pulsului, dureri de cap, amețeli, transpirație, stare

de agitație și neliniște, dezorientare și tulburări de

vede

3% la peste 3 ore de expunere Sensibilitatea la culori, scăderea capacității de a

vedea noaptea

10% pentru 1.5 minute Spasme, creșterea activității musculare

10%+ Dificultăți în respirație și în auz, stări de greață,

senzație de strangulare, transpirație și eventual

pierderea cunoștiinței

30% Pierderea cunoștiințe, convulsii și chiar moartea

Tabelu 2.3. Efectele expunerii la dioxidul de carbon în funcție de concentrație

2.3. Senzorul pentru ozon

Ozonul (O3) este un puternic gaz oxidant. Sub influenţa razelor UV, o moleculă de

dioxid de azot generează oxigen atomic.

+ h.ν→ (2.3)

Prin combinarea dintre oxigenul atomic şi oxigenul molecular rezultă o moleculă de .

(2.4)

Page 14: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 14

Senzorii din sunt materiale semiconductoare de tip n, cu o conductivitate electronică ce

depinde de natura atmosferei din jur şi de temperatura acestora.

Cu un semiconductor de tip n, pentru care principalele încărcături sunt electronii,

adsorbţia unui gaz reducător crescând conductivitatea electrică. Pe de altă parte, un gaz

oxidant cum ar fi sau va conduce la o scădere a conductivităţii.

Senzorul pentru ozon funcționează tot pe principiul încălzirii elementului

semiconductor din oxid metalic (aproximativ 150ºC). La această temperatură devine

extrem de sensibil la ozon, iar în urma contactului dintre cele două substanțe, oxidul metalic

își va schimba rezistivitatea electrică proporțional cu cantitatea de gaz adsorbită (George F.

Fine, 2010) .

Avantaje

Poate măsura cantități mici de ozon (sub 0.1 ppm)

Tehnologie foarte ieftină

Acuratețe și durată de viață crescute

Dezavantaje

Foarte sensibil la interferența cu alte gaze

Autonomie scăzută a bateriei datorită elementului sensibil care trebuie încălzit

Prezintă neliniarități la concentrații de peste 1 ppm

2.3.1. Necesitatea măsurării concentrației de ozon

Expunerea la ozon poate declanșa o varietate de probleme de sănătate incluzând

dureri în piept, tuse, inflamații ale gâtului și congestie a căilor respiratorii. Poate de asemenea

să agraveze bronșitele, astmul și poate produce inflamarea și deci reduce capacitatea de

funcționare a plămânilor, expunerea repetată putând lăsa sechele la nivelul țesutului

pulmonar.

Poluarea cu ozon produce la degradarea vegetației ecosistemelor și conduce la

reducerea recoltelor agricole, afectează capacitatea de creștere și dezvoltare a copacilor

plantați, crescându-le susceptibilitatea la aparitie a diverselor boli și paraziți. Ozonul

afectează scoarța copacilor și cauzează uscarea accelerată a vegetației. În Statele Unite ale

Americii poluarea cu ozon duce la pierderi anuale de peste 500 de milioane de dolari în

agricultură.

2.3.2. Efectele expunerii la ozon

Ozonul (O3) este un puternic gaz oxidant. El cauzează iritaţii ale ochilor şi plămânilor,

tuse şi probleme respiratorii, contribuind de asemenea la efectul de “seră” şi degradarea

Page 15: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 15

vegetaţiei.

În tabelul de mai jos sunt prezentate succint efectele expunerii îndelungate la diverse

concentrații de ozon în funcție de indexul de calitate a aerului. În general pentru un index de

calitate a aerului de 100, corespunde o concentrație medie măsurată pe durata a opt ore de

0.075 părți pe milion (George F. Fine, 2010).

Index de calitate a aerului Descriere a calității aerului Efectele expunerii la ozon asupra sănătății umane

0 - 50 Bună Nici un efect

51 - 100 Moderată Grupurile sensibile pot resimți efectul expunerii prelungite la ozonș dificultăți în respirație

101 - 150 Nesănătoasă pentru grupurile sensibile

Tuse, dureri atunci când se inhalează o cantitate mare de aer

151 - 200 Nesănătoasă Agravarea tusei și durerilor; diminuarea capacității de funcționare a plămânilor

201 - 300 Extrem de nesătoasă Simptome respiratorii severe; incapacitatea de a respira

Tabelul 2.4. – Efectele expunerii la diferite concentrații de ozon

2.4. Posibilitatea implementării senzorilor de gaz in structuri BMS

(Building Management System)

Utilitatea senzorilor de gaz într-o structură de tip Building Management System este

reprezentată de faptul că, aceștia pot fi integrați într-o structură de control a ventilației în

funcție de necesitate.

Pentru o companie este important să gasească compromisul optim între consumul de

energie al unei clădiri și sănătatea și bunăstarea angajaților. Vital pentru asigurarea

productivității acestora este un indice de calitate a aerului cât mai bun, fapt pentru care

ventilația corespunzătoare a clădirii este foarte importantă.

Un sistem de control al ventilației în funcție de necesitate este un sistem care

monitorizează o serie de parametrii precum temperatura ambientală, concentrația gazelor

toxice și umiditatea aerului, și în funcție de valorile măsurate, va introduce o cantitate

Page 16: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 16

corespunzătoare de aer astfel încât să asigure un indice de calitate al aerului cât mai bun.

Acest sistem oferă un bun compromis între minimizarea consumului de energie și

asigurarea unei bune calități a aerului mai ales în condițiile în care gradul de ocupare al

incăperilor monitorizate este variabil și impredictibil. Acest lucru duce la scăderea

costurilor necesare pentru ventilație și climatizare a clădirii/încăperii cu 10 – 30%, astfel

încât costul de implementare al sistemului este amortizat în câțiva ani, depinzând de

modul de implementare și zona climatică în care se află clădirea (Demand Control

Ventilation Benefits for Your Building).

În principiu, respirația umană constă în inhalarea oxigenului și expirarea dioxidului de

carbon. Concentrația acestuia va crește într-un spațiu închis, daca acesta nu este ventilat

corespunzător. Ventilația necorespunzătoare poate provoca efecte negative asupra

sănătății atât pe termen scurt (somnolență, dureri de cap, stări de amețeală, iritări ale

căilor respiratorii, dificultăți de concentrare) cât și pe termen lung prin inhalarea

constantă a diverși poluanți precum ozon, compuși organici volatili, etc. , fapt ce

determină creșterea ratei absenteismului în rândul angajaților și costuri suplimentare

pentru îngrijiri medicale.

Pe de altă parte, folosirea permanentă a ventilației la capacitate maximă va oferi o

bună calitate a aerului, însă se va consuma multă energie, chiar dacă nu este nevoie. De

aceea este important să găsim capacitatea potrivită la care funcționeze sistemul de

ventilație pentru a realiza compromisul ideal între minimizarea consumului energetic și

un indice de calitate al aerului cât mai bun.

Figura 2.4. – Diferența dintre ventilația la o capacitate maximă predefinită și ventilația

eficientă bazată pe gradul de ocupare al clădirii/încăperii

Clădirile comerciale sunt de obicei prevăzute cu un sistem care aduce în interior aer

proaspăt printr-o serie de conducte și amortizoare (Demand Control Ventilation Benefits for

Your Building) . Pentru a economisi energia, diferite cantități de aer sunt reciclate și trimise

către circuitul de încălzire/răcire din conductă, doar o cantitate minimă de aer proaspăt fiind

Page 17: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 17

adusă în interiorul instalației (pentru a asigura eliminarea substanțelor poluante chiar daca nu

este nimeni în încăpere).

În mod standard, în timpul perioadelor în care cladirea este de obicei ocupată la

capacitate maximă, cantitatea de aer proaspăt adusă în interior crește către un punct de maxim

predefinit și rămâne astfel până la incheierea programului chiar daca numărul ocupanților

scade; sistemul nu stie în nici un moment numărul de oameni care se află în clădire și deci nu

poate regla ventilația în concordanță.

În figura 2.5 este prezentat un sistem de control al ventilației care încorporează trei

metode complementare de pentru a determina gradul de ocupare al clădirii. O prima metodă

de predicție este cea bazată pe programul de lucru, astfel încât capacitatea la care este

efectuată ventilația este redusă în weekend, în timpul nopții și în timpul zilelor libere. Deși

această metodă duce la diminuarea consumului de energie, aceasta nu este optimă deoarece

nu poate determina în timp real necesitatea reîmprospătării aerului. De aceea, în sistemul de

control al ventilației s-au introdus senzori de prezență (pentru a verifica daca în încăpere se

află cineva în timpul programului de lucru) și senzori pentru monitorizarea concentrației de

dioxid de carbon (măsoară cantitatea de dioxid de carbon pe care oamenii o expiră).

Prin măsurarea nivelului de , modulul de control al ventilației integrat într-un

sistem de automatizare al clădirii estimează gradul de ocupare și cantitatea de aer proaspăt

care trebuie introdusă în încăpere, reglând astfel ventilația corespunzător.

Sistemul va ajusta cantitatea de aer curat introdusă astfel încât să păstreze nivelul de sub

o limită maxim admisibilă (aproximativ 550 p.p.m.). Astfel, în loc să pornească ventilația la o

capacitate prestabilită în concordanță cu numărul de persoane maxim care s-ar putea afla în

clădire la acel moment, sistemul monitorizează în timp real calitatea aerului și este capabil să

ajusteze ventilația în mod corespunzător (Demand Control Ventilation Benefits for Your

Building).

Figura 2.5. – Sistem de control al ventilației

Page 18: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 18

Folosirea senzorilor pentru dioxid de carbon prezintă și alte avantaje care nu sunt

legate direct de minimizarea consumului energetic:

Folosirea eficientă a ventilației determină minimizarea timpilor de funcționare și deci

prelungirea duratei de viață a echipamentului

Măsurătorile pot fi introduse într-o bază de date și păstrate pentru a proteja

proprietarul de plata unor eventuale despăgubiri pentru boli cauzate de ventilația

necorespunzătoare a clădirii.

Senzorii sunt ieftini, siguri și ușor de implementat în sistemul de automatizare al

clădirii.

Un astfel de sistem de control al ventilației bazat pe gradul de ocupare al clădirii nu va

fi totuși eficient într-un mediu contaminat și de alți factori în afara de om, cum ar fi spațiile

industriale și laboratoarele.

3. Echipamente utilizate

În acest capitol va fi prezentat echipamentul utilizat pentru implementarea strategiilor

adaptive de monitorizare pentru senzorii de gaz semiconductori. Principalele componente

sunt: modul cu senzori de gaze (având ca elemente esențiale un microcontroller AduC832,

senzor monoxid de carbon MQ-7TH, senzor ozon MQ-131și senzor pentru detecția

concentrației de dioxid de carbon MG811) alimentat de la un adaptor de 5V prin conectorul

USB și multimetrul UNI-T-803 pentru a măsura și stoca în fișiere valorile de curent și putere

pentru prelucrare ulterioara. Comunicația dintre placa de achiziție si PC este realizată prin

intermediul conexiunii seriale RS232 cu ajutorul unui adaptor USB to serial.

Figura 3.1. – Modul senzori de gaze semiconductori

Page 19: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 19

Figura 3.2. – Multimetrul UNI-T-803

3.1. Microcontrollerul AduC832

Chipul AduC832 este defapt un traductor inteligent care integrează un canal multiplu pe

12 biți ADC, canale de achiziție DAC pe 12 biți și un microcontroller pe 8 biți.

Figura 3.3. – Microcontrollerul AduC832

ADUC832 este produs de firma Analog Device pe baza unui nucleu 80C51 la care s-au

adaugat unele porturi suplimentare . Performanțele acestui controller îl recomandă în aplicații

industriale.Deosebirile față de 80C51 sunt urmatoarele (ADuC832 datasheet):

8 intrări analogice , rezoluție 12 biți, cu referință internă ,viteză achiziție 200KHz prin

DMA

2 ieșiri analogice , rezoluție 12 biți senzor de temperatură intern memorie

o 62KBytes Flash –Eprom (EE

Program Memory)

o 4 KBytes memorie de program Flash

citire/scriere

o 2 KBytes de Ram intern o 16MBytes spatiu de

date extern

o 64Kbytes spatiu de cod

extern

Page 20: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 20

Watch dog timer intern Monitor intern serial RS232 I2C sau SPI

În figura 3.4. avem reprezentată structura internă a microcontrollerului AduC832 la

nivel de porturi: (http://www.digitalcontrol.ro/download/DCX8500.PDF)

Figura 3.4. – structura interna AduC832 la nivel de porturi

Microcontrolerul AduC832 oferă posibilitatea scrierii memoriei de program interne

prin intermediul interfeţei de comunicaţie serială asincronă. Activarea modului de scriere a

acestei memorii se realizează la iniţializarea microcontrolerului prin forţarea în “0” logic a

semnalului /PSEN(Program Store ENable).

Semnalul /PSEN al microcontrolerului poate fi conectat la masă prin intermediul unui

jumper cu 2 pini (JP2). Deoarece în timpul funcţionării normale a procesorului semnalul

/PSEN funcţionează ca o ieşire, conectarea la masă a acestuia se realizează printr-o rezistenţă

de 1KΩ astfel încît dacă se reporneşte microcontrolerul în mod normal de funcţionare să nu

fie scurtcircuitat.

Mediul de programare în care este realizată aplicația practică este Keil uVision 4 IDE.

Acesta este un mediu de dezvoltare integrat în care se pot fi realizate o gamă largă de aplicații

pentru 3 arhitecturi majore de microcontrollere:

Pe 8 biți (microcontrollere de tip 8051): au un sistem de întreruperi eficient și sunt

proiectate pentru aplicații performante în timp real. În uVision 4 sunt disponibile

peste 1000 de modele de astfel de microcontrollere cu periferice precum: I/O

Page 21: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 21

analogic, timere, countere, PWM, interfete seriale UART, LIN, SPI, USB, CAN și

radio-transmițator integrat pentru aplicații wireless de putere mică.

Pe 16 biți (microcontrollere Infineon C166, XE166, XC2000): sunt proiectate

pentru performanță optimă a sistemului de întreruperi și aplicații în timp real. De

asemenea include un PEC (Peripheral Event Controller) similar cu DMA pentru

achiziție rapidă de date.

Pe 32 de biți (microcontrollere ARM7, ARM9 și Cortex-Mx): pentru aplicații

complexe care presupun o putere mare de procesare.

3.2. Senzorul pentru monoxid de carbon MQ-7 TH

Senzorul MQ-7 TH este un senzor stabil și cu o durată lungă de viață pentru

monitorizarea concentrației de dioxid de carbon având ca element sensibil .În tabelele

de mai jos vor fi prezentate principalele caracteristici tehnice ale acestuia, condițiile standard

de funcționare, condițiite de mediu în care senzorul funcționează normal și caracteristica de

sensibilitate (dependența rezistivității la suprafață în raport cu concentrația de monoxid de

carbon).

Simbol Denumire Valori Observații

Vc Tensiune circuit 5V±0.1 C.A. sau C.C.

VH (H)

Tensiune încălzire

(High) 5V±0.1 C.A. sau C.C.

VH (L)

Tensiune încălzire

(Low) 1.4V±0.1 C.A. sau C.C.

RL Rezistență sarcină Ajustabilă RH Rezistență încălzire 33Ω±5% Temperatura camerei

TH (H)

Timp încălzire

(High) 60±1 seconds

TH (L)

Timp încălzire

(Low) 90±1 seconds

PH Consum încălzire Aprox. 350mW

Tabelul 3.1. – Parametrii standard de funcționare

Simbol Denumire Valori Observații

Tao

Temperatură de

utilizare -20-50

Tas

Temperatură de

stocare -20-50

RH Umiditate relativă Mai puțin de 95%RH

O2 Concentrație de oxigen 21%(condiții standard) Minim 2%

Poate afecta sensibilitatea peliculei de dioxid de Sn

Tabelul 3.2. – Condițiile de mediu în care poate funcționa senzorul

Page 22: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 22

Simbol Denumire Valori Observații

Rs Rezistența peliculei de dioxid de Sn

2-20k

а(300/100ppm)

Panta creșterii

concentrației Sub 0.5

Rs

(300ppm)/Rs(100ppm)

Tabelul 3.3. – Caracteristica de sensibilitate în condiții normale (20, RH = 65%, domeniul

de măsură 20 – 2000 ppm)

Structural, senzorul este alcătuit dintr-un microtub ceramic din , strat sensibil

din dioxid de Sn. Electrodul de măsură și încălzitorul sunt fixate într-o crustă de plastic și o

pânză din oțel inoxidabil (MQ-7 gas sensor).

Pentru conectare, senzorul are 6 pini, dintre care 4 sunt utilizați pentru transmisia

semnalelor către microcontroller și 2 pentru alimentarea circuitelor de încălzire.

Figura 3.5. – Structura fizică a senzorului MQ – 7 TH

Circuitul standard de măsură este alcătuit din două elemente și anume: circuitul de

încălzire care are funcția de control a ciclului de funcționare (tensiunea high și tensiunea low

funcționează circular) și circuitul pentru semnalul de ieșire care poat răspunde cu acuratețe la

modificările rezistenței peliculei sensibile.

Figura 3.6. – caracteristica sensitivității senzorului MQ-7 TH

Nr. Componente Materiale

1 Strat sensibil SnO2

2 Electrod Au

3 Linie electrod Pt

4 Bobină pentru încălzire aliaj Ni-Cr 5 Tub ceramic Al2O3

6 Protecție Oțel inoxidabil

7 Inel de prindere Cupru placat cu Nichel

8 Baza de rășină Bachelită (rășină sintetică) 9 Pini Cupru placat cu Nichel

Page 23: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 23

În figura de mai sus se poate observa caracteristica sensitivității senzorului pentru câteva gaze

în condiții normale (temperatură de 20ºC, umiditate relativă de 65%, concentrație de oxigen

de 21%, rezistența de sarcină RL = 10kΩ).

3.3. Senzorul pentru dioxid de carbon MG811

Senzorul pentru dioxid de carbon MG811 este senzor ieftin, stabil și cu o durată mare

de viață, având o dependență scăzută în raport cu umiditatea și cu temperatura.

Este utilizat în aplicații pentru controlul calității aerului și controlul procesului de

fermentație.

Figura 3.7. – Structura fizică a senzorului MG811

În tabelul de mai jos sunt prezentate pe scurt principalele specificații tehnice ale

senzorului pentru monitorizarea concentrației de dioxid de carbon MG811 (HANWEI

ELECTRONICS CO).

EMF reprezintă tensiunea electromotoare pe care senzorul o oferă drept ieșire spre a

fi ulterior prelucrată de către microcontroller.

Simbol Denumire Valori Observații

VH (H) Tensiune încălzire 6V±0.1 C.A. sau C.C.

RH Rezistență încălzire 30Ω±5% Temperatura camerei IH Curent încălzire 200mA Temperatura camerei

Tao

Temperatura

funcționare -20…+50

Tas

Temperatură

depozitare -20…+70

PH Consum încălzire Aprox. 1200mW

EMF Output 30 – 50mV 350 – 10000ppm

Tabelul 3.4. – Parametrii standard de funcționare

Caracteristica de funcționare a senzorului atunci când intră în reacție cu diferite gaze,

în condiții normale de temperatură și umiditate (aproximativ 20ºC, umiditate relativă de

Nr. Componente Materiale

1 Strat sensibil

2 Electrod Au

3 Linie electrod Pt

4 Bobină pentru încălzire aliaj Ni-Cr 5 Tub ceramic Al2O3

6 Protecție Oțel inoxidabil

7 Inel de prindere Cupru placat cu Nichel

8 Baza de rășină Bachelită (rășină sintetică) 9 Pini Cupru placat cu Nichel

Page 24: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 24

65%), la o concentrație de 21% oxigen este prezentată în figura de mai jos.

Figura 3.8. Variația EMF în funcție de concentrația de gaz

3.4. Senzorul pentru detecția ozonului MQ131

Senzorul pentru ozon MQ131 are ca material sensibil , astfel încât atunci când în

atmosferă este prezent ozonul, conductivitatea senzorului crește direct proporțional cu

concentrația gazului (MQ131 gas sensor).

MQ – 131 este extrem de sensibil la ozon dar este sensibil și la , și altele.

Caracteristici:

Sensibilitate crescută la ozon pe un domeniu larg de măsură

Durată crescută de viață și cost scăzut

Circuit simplu

Aplicații:

Detector casnic pentru depășirea concentrației de ozon

Detector industrial pentru depășirea concentrației de ozon

Detector portabil pentru depășirea concentrației de ozon

Page 25: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 25

Specificații tehnice

Model MQ131

Tip Senzor Semiconductor

Capsulă Bachelită

Gaz detectat Ozone

Domeniu de măsură 10-1000ppm Ozone

Tensiune în buclă Vc ≤24V DC

Circuit Tensiune încălzitor VH 5.0V±0.2V AC or DC

Rezistență de sarcină

RL Adjustable

Rezistență încălzitor RH 31Ω±3Ω(Room Tem.)

Consum PH ≤900mW

încălzitor

Caracteristici

Rezistența

Rs 50KΩ-500KΩ(in 50ppm O3)

senzorului

Senzitivitate S Rs(in air)/Rs(in 50ppm O3)≥3

Pantă α (R50ppm/R10ppm O3)

Tabelul 3.5. – Specificații tehnice

Specificațiile tehnice din tabelul de mai sus sunt pentru condiții normale de

funcționare adică temperatură de aproximativ 20ºC și umiditate relativă de 65%. În figura

următoare se poate observa caracteristica senzorului în funcție de rezistivitate, unde R0 este

rezistivitatea senzorului la 50 ppm iar Rs este rezistivitatea senzorului în diferite medii

gazoase (MQ131 gas sensor).

Figura 3.9. Caracteristica senzorului MQ – 131

Page 26: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 26

Structural, senzorul este alcătuit dintr-un microtub ceramic din , strat sensibil

din dioxid de Sn. Electrodul de măsură și încălzitorul sunt fixate într-o crustă de plastic și o

pânză din oțel inoxidabil. Pentru conectare, senzorul are 6 pini, dintre care 4 sunt utilizați

pentru transmisia semnalelor către microcontroller și 2 pentru alimentarea circuitelor de

încălzire.

Figura 3.10. Structura senzorului MQ – 131

Condiții specifice care pot afecta răspunsul senzorului:

Expunerea la silicon, latex siliconic

Expunerea la gaze corozive ca de exemplu acidul clorhidric (HCl)

Expunerea la metale alcaline și halogeni

Expunerea într-un mediu în care se formează condens

Expunerea la temperaturi scăzute (îngheț)

3.5. Multimetrul UNI-T-803

Multimetrul UNI-T-803 reprezintă o soluție extrem de fiabilă pentru măsurarea valorilor

de curent și tensiune, având ca principal avantaj capacitatea de a se conecta și la PC și de a

salva datele achiziționate în fișiere în scopul prelucrării ulterioare (UT803).

Figura 3.11. – Multimetrul UNI-T-803

Nr. Componente Materiale

1 Strat sensibil SnO2

2 Electrod Au

3 Linie electrod Pt

4 Bobină pentru încălzire aliaj Ni-Cr 5 Tub ceramic Al2O3

6 Protecție Oțel inoxidabil

7 Inel de prindere Cupru placat cu Nichel

8 Baza de rășină Bachelită (rășină sintetică) 9 Pini Cupru placat cu Nichel

Page 27: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 27

Tabelul 3.6. – Domeniile de măsură ale multimetrului UNI-T-803

Caracteristici principale

Măsoară parametri multipli;

Înaltă acuratețe;

Afișeaza maxim până la 6000;

Scală automată;

Lățime de bandă de 100KHz;

Verificare de diode;

Verificare de tranzistori;

Închidere automată;

Beep-er de continuitate;

Indicator de descărcare baterie;

Memorare date;

Afișare MAX/MIN;

Standard serial RS-232;

Interfață USB;

Afișaj luminos LCD;

Protecție pe intrare;

Impedanță de intrare pentru DCV;

Măsurare tensiune și curent CC și CA.

Funcții de bază Domeniu de măsurare Acuratețe

Tensiune CC 600mV/6V/60V/600V/1000V (0,3%+2)

Tensiune CA 600mV/6V/60V/600V/1000V (0,6%+5)

Curent CC 600µA/6000µA/60mA/600mA/10A (0,5%+3)

Curent CA 600µA/6000µA/60mA/600mA/10A (1%+5)

Rezistență 600W/6kW/60kW/600kW/6MW/60MW (0,5%+2)

Capacitate 6nF/60nF/600nF/6µF/60µF/600µF/6mF (2%+5)

Temperatură (°C) -40°C ~ 1000°C (1%+3)

Temperatură (°F) -40°F ~ 1832°F (1,5%+5)

Frecvență 6kHz/60kHz/600kHz/6MHz/60MHz (0,1%+3)

Page 28: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 28

Alimentare AC220V/50Hz sau baterii de 1,5V (tip R14) x 6

Dimensiuni afișaj LCD 128 x 28mm

Culoare Roșu și gri

Greutate Netă 2,4 kg

Dimensiuni 310 x 240 x 105mm

Accesorii standard

Fișe de măsurare, Cablu de alimentare 220V,Manual

în engleză, Sondă de temperatură, Clemă tip crocodil,

Priză (conector) multifuncțional, Cablu de interfață

RS232C Cablu de interfață USB, Software

Accesorii opționale Baterii de 1,5V (tip R14) x 6

Ambalare individuala Cutie cadou

Cantitatea standard pe bax 4 bucăți

Dimensiuni standard bax 685 x 370 x 325mm

Greutate bruta bax 15kg

Tabelul 3.7. – Specificații tehnice generale

În figura și tabelul de mai jos va fi realizată o scurtă descriere a panoului frontal al

multimetrului UNI-T-803

Figura 3.12. – Front Pannel UNI-T-803

Page 29: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 29

Tabelul 3.8. – Legendă Front Pannel UNI-T-803 în conformitate cu Figura 3.12.

4. Implementarea strategiilor adaptive de achiziție de date

Pentru a putea implementa strategiile adaptive de achiziție de date pentru senzorii de gaze

semiconductori, microcontrollerul AduC832 trebuie să fie programat astfel încât să

gestioneze în mod eficient funcționarea celor trei senzori prezenți pe placa de achiziție de

date.

Principiul general este urmatorul: se alimentează un element încălzitor la 5/6V, la

atingerea temperaturii nominale de functionare, stratul electrochimic depus pe suprafața

senzorului iși modifică rezistența electrică un funcție de concentrația gazului analizat

Număr Simbol Explicație

1 Indicator pentru valoarea reală RMS;

2

Memorarea de date este activată;

3

Funcția Sleep Mode este activată;

4 Citire valori negative;

5

Indicator curent alternativ;

6 Indicator curent continuu;

7 Indicator CA + CC;

8 Afară din scala de măsurare;

9

10 Tester diode;

11 Beep-erul este pornit;

12

Indicator selecție scală (automată / manuală);

13 Afișare valoare maximă / minimă;

14 Se realizează transmisia de date;

15

Baterie descărcată;

16 Tester tranzistori.

Page 30: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 30

(conform unor curbe specifice de selectivitate in condiții stabile de temperatură și umiditate

ambientală), ca regulă generală, rezistența scade la concentrații înalte ale gazului investigat.

Ieșirea utilă a senzorului este o valoare de tensiune provenită de la un divizor de tensiune, cu

alegerea corespunzatoare a rezistenței de sarcină.

Datorita consumului mare de curent al acestor senzori e.g. 170mA – 200mA la 5V este

necesară alimentarea externă de la un adaptor 220V -> 5V (MINI USB de tip B).

Comunicația plăcii de achiziție cu calculatorul este realizată prin intermediul conexiunii

seriale de tip RS 232. Pachetul software necesar programării și încărcării programelor pe

microcontrollerul AduC832 este compus din urmatoarele:

KEIL uVison 4 C51 care conține librăriile specifice pentru controllerul AduC832

și care permite scrierea și compilarea codului într-un limbaj adecvat (C și

Assembler).

Figura 4.1. – Mediul de programare KEIL uVision 4 C51

Este esențial pentru compilarea programului ca ținta (adică microcontrollerul) să fie

corect selectate din baza de date a dispozitivelor. Pentru acest lucru se va accesa meniul

Project și se va selecta submeniul Options for target iar din tab-ul Device se va selecta

microcontrollerul AduC832 după care se va apăsa butonul OK.

Page 31: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 31

Figura 4.2. – Selectarea dispozitivului țintă

Se selectează tab-ul Output și se configurează opțiunile pentru fișierul rezultat în urma

compilării (nume, folder destinație – care este inițial folderul în care se află proiectul)

Figura 4.3. – Configurarea fișierului de output

După configurarea acestor opțiuni se merge în meniul Project și se selectează Build Target

și se obține următorul mesaj:

Figura 4.4. – Confirmarea compilării codului sursă și crearea fișierului .hex

Page 32: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 32

Windows Serial Downloader pentru microcontrollere AduC8xx cu care putem

încărca efectiv programul (fișierul .hex creat). Se accesează meniul

Configuration și se setează programul ca în figură:

Figura 4.5. – Configurarea Windows Serial Downloader pentru AduC832

După configurarea Windows Serial Downloader, se fac urmatoarele: se alimentează placa

la 5V cu conectorul MINI USB de tip B, se conectează placa prin conexiunea serială RS 232

și se închide jumperul JP2. În Windows Serial Downloader se apasă butonul Reset și apoi

butonul Download. Dacă încărcarea programului a avut loc cu succes, atunci fereastra WSD

va arăta ca în figura de mai jos.

Page 33: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 33

Figura 4.6. – Program încărcat cu succes pe AduC832 folosind WSD

După încărcarea programului pe controller, se deschide jumperul JP2 și se apasă pe

butonul de reset de pe placa de achiziție, se aprinde LED-ul roșu ED6 care semnifică cererea

de reset (adică rularea de la început a programului), iar apoi la stingerea acestuia începe

execuția efectivă a aplicației care a fost descărcată de pe calculator în memoria

microcontrollerului AduC832.

În afară de cele două programe care permit dezvoltarea propriu-zisă a aplicației,

pentru studiul datelor achiziționate și al consumului energetic al plăcii vor mai fi folosite și

următoarele două programe:

ModScan 32 cu ajutorul căreia se pot citi date achiziționate de la senzori cu

referire la concentrația de gaz măsurată. Aplicația este un slave de tip modbus pe

COM1 cu setările 9600 ,8,n,1 cu funcția 03 (holding register) cu lungime 5(5

holding register de 16 biti fiecare unsigned int) și adresa de start 1.

Page 34: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 34

Figura 4.7. – Aplicația ModScan 32

UT803 Program Interface v1.10 pentru a facilita monitorizarea consumului de

curent al plăcii de achiziție de date. Acest program permite salvarea datelor citite

de multimetrul UNI-T 803 în fișiere Excel, făcând astfel posibilă prelucrarea

ulterioară a datelor.

Ceea ce se urmărește în această lucrare cu privire la implementarea strategiilor

adaptive de achiziție de date pentru senzorii de gaze semiconductori este monitorizarea

consumului de energie al plăcii de senzori. Pentru a realiza aceasta, în montajul experimental

a fost introdus multimetrul UNI-T-803. Placa de achiziție este alimentată la 5V printr-un

conector MINI USB de tip B a cărui structură este următoarea:

1. Cablu roșu (+5V)

2. Cablu alb (DATA+)

3. Cablu verde (DATA-)

4. Cablu identificare (permite diferențiere host connection de slave connection, dacă

conexiunea este de tip host, atunci acesta va fi legat la GND)

5. Cablu negru (GND)

Pentru a putea calcula puterea consumată de către placă, este necesară cunoașterea intensității

curentului electric care intră în consumator (modulul cu senzori de gaz). De aceea cablul a

fost parțial dezizolat iar cablul roșu (+5V) din interior a fost secționat, fiind dezizolat la

Page 35: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 35

fiecare capat al său. Multimetrul a fost legat în serie la cablul +5V ca în figură:

Figura 4.8. – Realizarea circuitului de măsură al intensității curentului electric

Se realizează alimentarea circuitului prin conectarea la port-ul MINI USB de tip B, se

conectează la calculator prin USB multimetrul și se setează corespunzător (scala de 10A). În

utilitarul UT803 Program Interface se dă click USB Connect iar apoi butonul RS232 este

apăsat de pe panoul frontal al multimetrului UNI-T-803. Aplicația va înregistra în tabel date

achiziționate de la aparatul de măsură în funcție de perioada de eșantionare aleasă. După

terminarea măsurătorilor, UT803 Program Interface permite salvarea tabelului de măsurători

atat în format text, Excel cât și în format database (.db).

4.1. Implementarea soluției de achiziție continuă a datelor

Soluția de monitorizare continuă a concentrațiilor de gaz este extrem de importantă în

contextul implementării strategiilor adaptive de achiziție de date deoarece aceasta oferă

posibilitatea cunoașterii valorii maxime de energie consumată de placă prin funcționarea

continuă și paralelă a celor trei senzor de gaz.

Este propus următorul ciclu de funcționare:

1. Pornirea simultană a senzorilor:

Ciclu de măsură CO cu o perioadă TA_POWER_CO =390 secunde cu alimentare

la 5Vcc evidențiat de LED=ul ED4 verde.

Ciclu de măsură O3 cu o perioadă TA_POWER_O3 = 390 secunde de alimentare

la 6Vcc evidențiat de LED-ul ED1 verde.

Ciclu de măsură CO2 cu o periadă TA_POWER_CO2 = 390 secunde de

alimentare la 6Vcc evidențiat de LED-ul ED2 roșu.

Page 36: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 36

2. Ciclu de pauză între măsurători cu o perioadă TA_PAUSE = 50 secunde evidențiat

prin aprinderea simultană a diodelor LED ED1 , ED2 ,ED4.

Figura 4.9. – Funcționarea continuă a celor trei senzori semiconductori

Mai jos este inserată o mică parte din codul aferent programului implementat pentru

monitorizarea continuă a concentrației de gaz după cum urmează:

Header-ul util.h

void ToHex(unsigned char x,unsigned char *hi,unsigned char *lo);

unsigned char ToByte(unsigned char hi,unsigned char lo);

unsigned char Lrc(unsigned char *bufx,unsigned char lb);

unsigned char FByte(float fl,unsigned char ix);

void LightOnPow(void);

void LightOffPow(void);

void Make_cicle(void);

void Power_on_CO(void);

void Power_off_CO(void);

void Cicle_on_CO(void);

void Cicle_off_CO(void);

void Power_on_O3(void);

void Power_off_O3(void);

void Power_on_CO2(void);

void Power_off_CO2(void);

void Pause_on(void);

void Pause_off(void);

#define TA_POWER_CO 390

Page 37: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 37

#define TA_POWER_O3 390

#define TA_POWER_CO2 390

#define TA_PAUSE 50

Fragment din funcția the_main.c

T0_Set(1,TA_POWER_CO); //pornește timer CO

Power_on_CO();

T0_Set(2,TA_POWER_CO2); //pornește timer CO2

Power_on_CO2();

T0_Set(3,TA_POWER_O3); //pornește timer O3

Power_on_O3();

while(1) //repetă ciclul la infinit

Make_cicle();

Get_parameters();

if(SIsMsg) ModProceed();

Fragment din funcția util.c

void Make_cicle(void)

if (T0_Over(1)) // dacă timer CO a expirat

Power_off_CO();

if (T0_Over(2)) // dacă timer CO2 a expirat

Power_off_CO2();

if (T0_Over(3)) // dacă timer O3 a expirat

Power_off_O3();

Pause_on();

T0_Set(4,TA_PAUSE); // pornește timer pauză

if (T0_Over(4)) // dacă timer pauză a expirat atunci

// pornește din nou timerele pentru cei trei senzori de gaz

//

Pause_off();

T0_Set(1,TA_POWER_CO) ;

Power_on_CO();

Page 38: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 38

T0_Set(2,TA_POWER_CO2) ;

Power_on_CO2();

T0_Set(3,TA_POWER_O3) ;

Power_on_O3();

După compilarea programului, se încarcă fișierul .hex generat pe microcontroller,

apoi se resetează și se conectează multimetrul în serie pe firul de +5V ca în figura 4.8. Se

pornește aplicația UT803 Program interface, se selectează USB connect și se apasă butonul

RS232 de pe panoul frontal al aparatului de măsură. Pe durata ciclului de funcționare

programul înregistrează valorile de intensitate a curentului electric la intrarea în placa de

achiziție. După terminarea celor 390s, alimentarea senzorilor este oprită și se constată o

scădere semnificativă a intensității curentului electric, iar după trecerea a încă 50s programul

reinițiază ciclul de funcționare.

Se remarcă două valori distincte ale intensității curentului electric:

I_senzori_porniți= 0.65A

I_pauză = 0.05A

Se poate deci calcula puterea, fiind produsul dintre tensiunea de alimentare a plăcii și

intensitatea curentului electric.

(4.1.)

(4.2.)

Pentru această implementare ne interesează numai calcularea energiei pe perioada în

care toți cei trei senzori sunt porniți, deci calculul energiei se face după ecuația următoare:

(4.3.)

În perioada de pauză, energia este dată de:

(4.4.)

Această metodă de implementare pune în evidența consumul maxim de energie al

plăcii de achiziție de date. Totuși, pe lângă consumul energetic ridicat, mai apare o altă

problemă funcțională legată de senzorul de monoxid de carbon MQ -7 TH deoarece acesta

necesită un ciclu de funcționare specific, măcar 30s alimentat la 5V pentru "curatare" iar apoi

100s la 1,4V - spre finalul celor 130s putându-se determina valoarea utilă.

Page 39: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 39

Din aceste considerente, în cele ce urmează vor fi prezentate două posibile

implementări pentru a utiliza cu precizie toți senzorii și a diminua semnificativ consumul

energetic. Prima implementare este una statică, temporizată, astfel încât la orice moment de

timp să funcționeze numai un senzor, iar după ce s-a detectat concentrația de gaz cu fiecare

dintre ei urmează un ciclu de pauză. Cea de-a doua implementare este una adaptivă, în sensul

că perioada ciclului de funcționare al senzorilor va fi determinată de valorile concentrațiilor

pe care aceștia le măsoară în mod activ.

4.2. Implementarea soluției de achiziție temporizată a datelor

În vederea diminuării consumului de energie electrică, pornind de la măsurătorile

efectuate pe soluția de achiziție continuă a datelor, în acest subcapitol va fi descrisă o

strategie de achiziție temporizată a datelor de la cei trei senzri de gaze semiconductori.

Senzorii vor fi porniți și vor măsura pe rând, ciclul incluzând de asemenea o perioadă în care

alimentarea senzorilor va fi complet oprită, iar controllerul va intra în modul idle (perioadă de

pauză). Ciclurii de funcționare ai aplicației vor fi următorii:

1. Power sensor CO cu o perioadă TA_POW_CO = 30 secunde cu alimentare la 5Vcc

evidențiat de LED-ul ED4 verde

2. Ciclu de măsură CO cu o perioadă TA_CICLE_CO = 100 secunde cu alimentare la

1,4Vcc la finalul căreia canalula analogic DA_0 se updatează cu valoarea AI_0 de la

acest moment. Ciclul este evidențiat de LED-ul ED2 roșu

3. Ciclu de măsură O3 cu o periadă TA_POWER_O3 = 30 secunde de alimentare la

6Vcc evidențiat de LED-ul ED1 verde.

4. Ciclu de măsură CO2 cu o perioadă TA_POWER_CO2 = 30 secunde de alimentare la

6Vcc evidențiat de LED-ul ED2 roșu

5. Ciclu de pauză între măsurători cu o perioadă TA_PAUSE = 200 secunde evidențiat

prin aprinderea simultană a diodelor LED ED1 , ED2 ,ED4. În pauză sursa de 6Vcc și

alimentarea traductorelor de gaz este oprita pentru diminuarea consumului.

Figura 4.10. – Ciclul de funcționare al aplicației cu temporizare

Page 40: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 40

Mai jos este inserată o mică parte din codul aferent programului implementat pentru

monitorizarea temporizată a concentrației de gaz după cum urmează:

Fragment din header-ul util.h

void ToHex(unsigned char x,unsigned char *hi,unsigned char *lo);

unsigned char ToByte(unsigned char hi,unsigned char lo);

unsigned char Lrc(unsigned char *bufx,unsigned char lb);

unsigned char FByte(float fl,unsigned char ix);

void LightOnPow(void);

void LightOffPow(void);

void Make_cicle(void);

void Power_on_CO(void);

void Power_off_CO(void);

void Cicle_on_CO(void);

void Cicle_off_CO(void);

void Power_on_O3(void);

void Power_off_O3(void);

void Power_on_CO2(void);

void Power_off_CO2(void);

void Pause_on(void);

void Pause_off(void);

#define TA_POWER_CO 30

#define TA_CICLE_CO 100

#define TA_POWER_O3 30

#define TA_POWER_CO2 30

#define TA_PAUSE 200

Fragment din funcția the_main.c

T0_Init();

UartInit();

CalibrareADC();

CO_measure = 0;

O3_measure = 0;

EA=1;

FirstRead=1; // tine de filtru ordin I

T0_Set(1,TA_POWER_CO);

Power_on_CO();

while(1)

Make_cicle();

Get_parameters();

if(SIsMsg) ModProceed();

Page 41: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 41

Fragment din funcția util.c

void Make_cicle(void)

if (T0_Over(1))

Power_off_CO();

Cicle_on_CO();

T0_Set(2,TA_CICLE_CO);

if(T0_Over(2))

DAC0H = FCh[0]>>8; // CO catre Iris

DAC0L = FCh[0]&0x0f; // Co catre Iris

CO_measure = FCh[0];

// DAC1H = FCh[1]>>8; // O3 catre Iris

// DAC0L = FCh[1]&0x0f; // O3 catre Iris

Cicle_off_CO();

Power_on_O3();

T0_Set(3,TA_POWER_O3) ;

if(T0_Over(3))

DAC1H = FCh[1]>>8; // CO catre Iris

DAC1L = FCh[1]&0x0f; // Co catre Iris

O3_measure = FCh[1];

Power_off_O3();

Power_on_CO2();

T0_Set(4,TA_POWER_CO2) ;

if (T0_Over(4))

Power_off_CO2();

T0_Set(5,TA_PAUSE) ;

Pause_on();

if (T0_Over(5))

Pause_off();

T0_Set(1,TA_POWER_CO) ;

Power_on_CO();

După compilarea programului, se încarcă fișierul .hex generat pe microcontroller,

apoi se resetează și se conectează multimetrul în serie pe firul de +5V ca în figura 4.8. Se

pornește aplicația UT803 Program interface, se selectează USB connect și se apasă butonul

RS232 de pe panoul frontal al aparatului de măsură. Pe durata ciclului de funcționare

Page 42: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 42

programul înregistrează valorile de intensitate a curentului electric la intrarea în placa de

achiziție. După terminarea celor 190 de secunde, alimentarea senzorilor este oprită și se

constată o scădere semnificativă a intensității curentului electric, iar după trecerea a încă 200

de secunde programul reinițiază ciclul de funcționare.

Se pot distinge următoarele valori pentru intensitatea curentului electric:

I_alim_CO = 0.20A

I_măsurare_CO = 0.11A

I_alim_O3 = 0.17A

I_alim_CO2 = 0.18A

I_pauză = 0.05A

Se poate deci calcula puterea, fiind produsul dintre tensiunea de alimentare a plăcii și

intensitatea curentului electric în fucție de ciclul de funcționare în care se află placa de

achiziție

(4.5.)

(4.6.)

(4.7.)

(4.8.)

(4.9.)

Cunoscând perioada ciclurilor de funcționare și puterea consumată de placa de achiziție în

fiecare ciclu, putem deduce cantitatea de energie electrică consumată pe perioada ciclului de

390 de secunde cu următoarea formulă:

(4.10)

Utilizarea strategiei temporizate de achiziție de date este conform calculului 4.10. extrem

de avantajoasă din punct de vedere energetic însă datorită perioadei mari de pauză introdusă,

achiziția de date făcându-se odată la 390 de secunde pentru fiecare senzor în parte, aceasta nu

ar putea să constituie o metodă bună de măsurare mai ales pentru determinarea concetrației de

monoxid de carbon care, datorită efectelor imediate, extrem de nocive, poate pune în pericol

viața celor care se bazează pe sistemul de monitorizare (conform tabelului 2.2. la o

concentrație de 12800 p.p.m. de monoxid de carbon moartea survine în mai puțin de 3

Page 43: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 43

minute).

4.3. Implementarea soluției de achiziție a datelor bazată pe eșantionare

adaptivă

Pentru a rezolva problema duratei prea mari de timp între două cicluri de achiziție a

datelor pentru același gaz investigat, în cele ce urmează va fi propusă o strategie bazată pe

eșantionare adaptivă.

Aceasta va fi aplicată numai pe senzorii de detectare a dioxidului de carbon și a ozonului,

achiziția datelor referitoare la monoxidul de carbon fiind efectuată în mod continuu datorită

riscului sporit pe care îl presupune expunerea la acest gaz chiar și pe o perioadă scurtă de

timp.

Similar primelor două experimente, vom monitoriza energia electrică consumată pe o

perioadă totală de 390 de secunde. Descrierea ciclurilor de funcționare este prezentată mai

jos:

1. Pornirea simultană a senzorilor

Ciclu de încălzire CO cu o perioadă TA_POWER_CO =30 secunde cu alimentare

la 5Vcc evidențiat de LED=ul ED4 verde.

Ciclu de măsură O3 cu o perioadă TA_POWER_O3 = 30 secunde de alimentare la

6Vcc evidențiat de LED-ul ED1 verde.

Ciclu de măsură CO2 cu o periadă TA_POWER_CO2 = 30 secunde de alimentare

la 6Vcc evidențiat de LED-ul ED2 roșu.

2. Ciclul de măsură CO cu o perioadă TA_CICLE_CO=100 sec cu alimentare la 1.4 Vcc

evidențiat de LED-ul roșu ED2.

Dacă valoarea returnată pe canalele analogice la măsurarea concentrației de ozon

sau dioxid de carbon depășește o valoare limită impusă de programator, atunci se

continuă monitorizarea gazului sau gazelor cu o concentrație ridicată până când

TA_CICLE_CO expiră.

3. Revenire la pasul 1.

A fost deci eliminată în totalitate perioada de pauză în care nici un senzor nu măsura,

senzorul de monoxid de carbon fiind mereu activ și aflându-se în ciclul său normal de

funcționare, ciclu optim pentru o achiziție de date precisă.

Mai jos este o descriere grafică a ciclurilor de funcționare pentru cei trei senzori de gaz în

cadrul strategiei adaptive de achiziție de date.

Page 44: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 44

Figura 4.11. – Funcționarea strategiei adaptive de achiziție de date

În continuare este inserată o mică parte din codul aferent programului implementat pentru

monitorizarea adaptivă a concentrației de gaz după cum urmează:

Page 45: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 45

Fragment din header-ul util.h

void ToHex(unsigned char x,unsigned char *hi,unsigned char *lo);

unsigned char ToByte(unsigned char hi,unsigned char lo);

unsigned char Lrc(unsigned char *bufx,unsigned char lb);

unsigned char FByte(float fl,unsigned char ix);

void LightOnPow(void);

void LightOffPow(void);

void Make_cicle(void);

void Power_on_CO(void);

void Power_off_CO(void);

void Cicle_on_CO(void);

void Cicle_off_CO(void);

void Power_on_O3(void);

void Power_off_O3(void);

void Power_on_CO2(void);

void Power_off_CO2(void);

void Pause_on(void);

void Pause_off(void);

#define TA_POWER_CO 30

#define TA_CICLE_CO 100

#define TA_POWER_O3 30

#define TA_POWER_CO2 30

#define TA_PAUSE 50

Fragment din funcția the_main.c

T0_Init();

UartInit();

calibrareADC();

CO_measure = 0;

O3_measure = 0;

CO2_measure = 0;

EA=1;

FirstRead=1; // tine de filtru ordin I

Power_on_CO();

Power_on_CO2();

Power_on_O3();

T0_Set(1,TA_POWER_CO);

while(1)

Make_cicle();

Get_parameters();

if(SIsMsg) ModProceed();

Page 46: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 46

Fragment din funcția util.c

void Make_cicle(void)

if (T0_Over(1))

Power_off_CO();

DAC1H = FCh[1]>>8; // O3 catre Iris

DAC1L = FCh[1]&0x0f;

O3_measure = FCh[1];

Power_off_O3();

if (O3_measure>limit_O3)

Power_on_O3();

DAC0H = FCh[2]>>8; // CO2 catre Iris

DAC0L = FCh[2]&0x0f;

CO2_measure = FCh[2];

Power_off_CO2();

if (CO2_measure>limit_CO2)

Power_on_CO2();

Cicle_on_CO();

T0_Set(2,TA_CICLE_CO);

if(T0_Over(2))

Cicle_off_CO();

T0_Set(1,TA_POWER_CO) ;

Power_on_O3();

Power_on_CO();

Power_on_CO2();

După compilarea programului, se încarcă fișierul .hex generat pe microcontroller,

apoi se resetează și se conectează multimetrul în serie pe firul de +5V ca în figura 4.8. Se

pornește aplicația UT803 Program interface, se selectează USB connect și se apasă butonul

RS232 de pe panoul frontal al aparatului de măsură. Pe durata ciclului de funcționare

programul înregistrează valorile de intensitate a curentului electric la intrarea în placa de

achiziție.

Monitorizarea se face la concentrații normale de gaz, senzorii de dioxid de carbon și

ozon fiind porniți timp de 30 de secunde, o dată la 100 de secunde, această situație

reprezentând cel mai bun scenariu posibil din punct de vedere energetic.

Page 47: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 47

Se pot distinge următoarele valori pentru intensitatea curentului electric:

I_senzori_porniți = 0.65A

I_măsurare_CO = 0.11A

De aici rezultă următoarele valori ale puterii consumate:

(4.11.)

(4.12.)

Cunoscând perioada ciclurilor de funcționare și puterea consumată de placa de achiziție în

fiecare ciclu, putem deduce cantitatea de energie electrică consumată pe perioada ciclului de

390 de secunde cu următoarea formulă:

(4.13)

În continuare va fi studiat scenariul cel mai dezavantajos posibil din punct de vedere

energetic și anume după fiecare ciclu de măsură al dioxidului de carbon și al ozonului

microcontrollerul citește pe canalele analogice valori ale concentrației gazelor mai mari decât

limita impusă și ia decizia de a monitoriză în continuare valorile achiziționate. Se pot

aproxima următoarele valori ale curentului care intră în placa de achiziție:

I_senzori_porniți = 0.65A

I_alim_CO2_alim_O3_măsurare_CO ≈ 0.5A

I_alim_O3_măsurare_CO ≈ 0.3A

I_alim_CO2_măsurare_CO ≈ 0.3A

Având în vedere că cel mai rău scenariu posibil din punct de vedere energetic este compus

din șase cicluri și anume trei cicluri în care toți senzorii sunt alimentați timp de 30 de secunde

la tensiunile maxime și trei cicluri în care senzorii de dioxid de carbon și ozon sunt alimentați

la maxim iar senzorul de monoxid de carbon este alimentat la tensiune scăzută pentru ciclu de

măsură (1.4V) timp de 100 de secunde, atunci rezultă următoarele puteri consumate:

(4.14.)

(4.15.)

Cunoscând perioada ciclurilor de funcționare și puterea consumată de placa de achiziție în

Page 48: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 48

fiecare ciclu, putem deduce cantitatea de energie electrică consumată pe perioada ciclului de

390 de secunde cu următoarea formulă:

(4.16)

5. Concluzii

Această lucrare reprezintă o introducere în problematica strategiilor adaptive de achiziție

de date pentru senzorii de gaz semiconductori, urmărindu-se în principal diminuarea

consumului energetic aferent achiziției prin utilizarea unor algoritmi care să permită folosirea

eficientă a senzorilor.

S-a plecat de la implementarea unui algoritm care monitorizează în permanență

concentrațiile celor trei gaze investigate, pe o perioadă de 390 de secunde și s-a obținut

următorul consum de energie electrică:

În scopul diminuării consumului s-a adoptat în continuare o strategie temporizată de

achiziție de date, aceasta reprezentând defapt o strategie adaptivă bazată pe declanșarea unor

evenimente (în cazul de față expirarea unor timere). Similar monitorizării continue, perioada

unui ciclu complet de măsură a fost de 390 de secunde și s-a obținut următorul consum de

energie electrică:

Totuși, deși avantajoasă din punct de vedere energetic folosirea acestei strategii poate fi

riscantă deoarece perioada dintre două măsurări consecutive ale aceluiași gaz ar fi de 390 de

secunde, ceea ce în contextul monitorizării concentrației de monoxid de carbon poate fi prea

mult. De aceea pentru îmbunătățirea preciziei de măsurare, se va elimina perioada de pauză,

obținându-se următorul consum de energie electrică estimat:

Această strategie temporizată, fără perioadă de pauză este mai relevantă din punctul de

vedere al preciziei de măsurare, însă dezavantajul major este că durata dintre două măsurări

alea aceluiași gaz este fixă, de 190 de secunde. Astfel s-a ajus la implementarea unei strategii

adaptive care să permită ajustarea perioadei dintre două măsurători ale aceluiași gaz în funcție

de valorile detectate. Strategia nu a fost aplicată pentru senzorul de monoxid de carbon. Pe o

Page 49: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 49

perioadă de 390 de secunde se disting două scenarii relevante din punct de vedere al

consumului energetic:

Scenariul cel mai favorabil din punct de vedere energetic cu un consum calculat de:

Scenariul cel mai defavorabil posibil din punct de vedere energetic cu un consum

estimat de:

De aici reiese următoarea figură, care ilustrează consumul energetic al strategiilor

implementate pe durata unui ciclu de 390 de secunde.

Figura 5.1. – Grafic al tipurilor de monitorizare în funcție de consum

Page 50: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 50

6. Anexe

Util.h

void ToHex(unsigned char x,unsigned char *hi,unsigned char *lo);

unsigned char ToByte(unsigned char hi,unsigned char lo);

unsigned char Lrc(unsigned char *bufx,unsigned char lb);

unsigned char FByte(float fl,unsigned char ix);

void LightOnPow(void);

void LightOffPow(void);

void Make_cicle(void);

void Power_on_CO(void);

void Power_off_CO(void);

void Cicle_on_CO(void);

void Cicle_off_CO(void);

void Power_on_O3(void);

void Power_off_O3(void);

void Power_on_CO2(void);

void Power_off_CO2(void);

void Pause_on(void);

void Pause_off(void);

#define TA_POWER_CO 30

#define TA_CICLE_CO 100

#define TA_POWER_O3 30

#define TA_POWER_CO2 30

#define TA_PAUSE 50

AduC832.h

/*------------------------------------------------------------------

------

ADUC832.H

Header file for Analog Devices ADuC832 controller.

Rev. 3.0 02nd July 2007

Copyright (c) 1999 - 2007 Keil - An ARM Company

All rights reserved.

--------------------------------------------------------------------

----*/

/* BYTE Register */

sfr P0 = 0x80;

sfr SP = 0x81;

sfr DPL = 0x82;

sfr DPH = 0x83;

sfr DPP = 0x84;

sfr PCON = 0x87;

sfr TCON = 0x88;

sfr TMOD = 0x89;

sfr TL0 = 0x8A;

Page 51: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 51

sfr TL1 = 0x8B;

sfr TH0 = 0x8C;

sfr TH1 = 0x8D;

sfr P1 = 0x90;

sfr SCON = 0x98;

sfr SBUF = 0x99;

sfr I2CDAT = 0x9A;

sfr I2CADD = 0x9B;

sfr T3FD = 0x9D;

sfr T3CON = 0x9E;

sfr P2 = 0xA0;

sfr TIMECON = 0xA1;

sfr HTHSEC = 0xA2;

sfr SEC = 0xA3;

sfr MIN = 0xA4;

sfr HOUR = 0xA5;

sfr INTVAL = 0xA6;

sfr DPCON = 0xA7;

sfr IE = 0xA8;

sfr IEIP2 = 0xA9;

sfr PWMCON = 0xAE;

sfr CFG832 = 0xAF;

sfr P3 = 0xB0;

sfr PWM0L = 0xB1;

sfr PWM0H = 0xB2;

sfr PWM1L = 0xB3;

sfr PWM1H = 0xB4;

sfr SPH = 0xB7;

sfr IP = 0xB8;

sfr ECON = 0xB9;

sfr EDATA1 = 0xBC;

sfr EDATA2 = 0xBD;

sfr EDATA3 = 0xBE;

sfr EDATA4 = 0xBF;

sfr WDCON = 0xC0;

sfr CHIPID = 0xC2;

sfr EADRL = 0xC6;

sfr EADRH = 0xC7;

sfr T2CON = 0xC8;

sfr RCAP2L = 0xCA;

sfr RCAP2H = 0xCB;

sfr TL2 = 0xCC;

sfr TH2 = 0xCD;

sfr PSW = 0xD0;

sfr DMAL = 0xD2;

sfr DMAH = 0xD3;

sfr DMAP = 0xD4;

sfr PLLCON = 0xD7;

sfr ADCCON2 = 0xD8;

sfr ADCDATAL = 0xD9;

sfr ADCDATAH = 0xDA;

sfr PSMCON = 0xDF;

sfr ACC = 0xE0;

sfr DCON = 0xE8;

sfr I2CCON = 0xE8;

Page 52: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 52

sfr ADCCON1 = 0xEF;

sfr B = 0xF0;

sfr ADCOFSL = 0xF1;

sfr ADCOFSH = 0xF2;

sfr ADCGAINL = 0xF3;

sfr ADCGAINH = 0xF4;

sfr ADCCON3 = 0xF5;

sfr SPIDAT = 0xF7;

sfr SPICON = 0xF8;

sfr DAC0L = 0xF9;

sfr DAC0H = 0xFA;

sfr DAC1L = 0xFB;

sfr DAC1H = 0xFC;

sfr DACCON = 0xFD;

/* BIT Register..... */

/* TCON */

sbit TF1 = 0x8F;

sbit TR1 = 0x8E;

sbit TF0 = 0x8D;

sbit TR0 = 0x8C;

sbit IE1 = 0x8B;

sbit IT1 = 0x8A;

sbit IE0 = 0x89;

sbit IT0 = 0x88;

/* P1 */

sbit T2EX = 0x91;

sbit T2 = 0x90;

/* SCON */

sbit SM0 = 0x9F;

sbit SM1 = 0x9E;

sbit SM2 = 0x9D;

sbit REN = 0x9C;

sbit TB8 = 0x9B;

sbit RB8 = 0x9A;

sbit TI = 0x99;

sbit RI = 0x98;

/* IE */

sbit EA = 0xAF;

sbit EADC = 0xAE;

sbit ET2 = 0xAD;

sbit ES = 0xAC;

sbit ET1 = 0xAB;

sbit EX1 = 0xAA;

sbit ET0 = 0xA9;

sbit EX0 = 0xA8;

/* P3 */

sbit RD = 0xB7;

sbit WR = 0xB6;

sbit T1 = 0xB5;

sbit T0 = 0xB4;

sbit INT1 = 0xB3;

sbit INT0 = 0xB2;

sbit TXD = 0xB1;

sbit RXD = 0xB0;

Page 53: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 53

/* IP */

sbit PSI = 0xBF;

sbit PADC = 0xBE;

sbit PT2 = 0xBD;

sbit PS = 0xBC;

sbit PT1 = 0xBB;

sbit PX1 = 0xBA;

sbit PT0 = 0xB9;

sbit PX0 = 0xB8;

/* WDCON */

sbit PRE3 = 0xC7;

sbit PRE2 = 0xC6;

sbit PRE1 = 0xC5;

sbit PRE0 = 0xC4;

sbit WDIR = 0xC3;

sbit WDS = 0xC2;

sbit WDE = 0xC1;

sbit WDWR = 0xC0;

/* T2CON */

sbit TF2 = 0xCF;

sbit EXF2 = 0xCE;

sbit RCLK = 0xCD;

sbit TCLK = 0xCC;

sbit EXEN2 = 0xCB;

sbit TR2 = 0xCA;

sbit CNT2 = 0xC9;

sbit CAP2 = 0xC8;

/* PSW */

sbit CY = 0xD7;

sbit AC = 0xD6;

sbit F0 = 0xD5;

sbit RS1 = 0xD4;

sbit RS0 = 0xD3;

sbit OV = 0xD2;

sbit F1 = 0xD1;

sbit P = 0xD0;

/* ADCCON2 */

sbit ADCI = 0xDF;

sbit DMA = 0xDE;

sbit CCONV = 0xDD;

sbit SCONV = 0xDC;

sbit CS3 = 0xDB;

sbit CS2 = 0xDA;

sbit CS1 = 0xD9;

sbit CS0 = 0xD8;

/* I2CCON */

sbit MDO = I2CCON^7;

sbit MDE = I2CCON^6;

sbit MCO = I2CCON^5;

sbit MDI = I2CCON^4;

sbit I2CM = I2CCON^3;

sbit I2CRS = I2CCON^2;

sbit I2CTX = I2CCON^1;

sbit I2CI = I2CCON^0;

/* DCON */

Page 54: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 54

sbit D1 = DCON^7;

sbit D1EN = DCON^6;

sbit D0 = DCON^5;

sbit D0EN = DCON^3;

/* SPICON */

sbit ISPI = 0xFF;

sbit WCOL = 0xFE;

sbit SPE = 0xFD;

sbit SPIM = 0xFC;

sbit CPOL = 0xFB;

sbit CPHA = 0xFA;

sbit SPR1 = 0xF9;

sbit SPR0 = 0xF8;

Timer.h

extern void T0_Init(void);

extern unsigned char WDFlag;

extern unsigned char T0_Over(unsigned char nrt);

extern void T0_Set(unsigned char nrt,unsigned int sec);

The_main.C

#include <ADUC832.h>

#include <absacc.h>

#include <stdio.h>

#include <string.h>

#include "timer0.h"

#include "uart.h"

#include "modbus.h"

#include "util.h"

extern void Get_parameters(void);

extern int CO_measure , O3_measure, CO2_measure ;

int Ch_inst[8],FCh[9],FCh_inst[8],FChOld[8];

unsigned int DI;

unsigned char FirstRead ;

far unsigned char dummy _at_ 0x010000L; // stii bag Keil

void calibrareADC(void)

ADCCON1 = 0xAC;

ADCCON2 = 0x0B;

ADCCON3 = 0x35;//start calibrare Offset

while ((ADCCON3&0x01)!=0); // asteapta terminarea calibrarii

de offset

ADCCON2 = 0x0C;

ADCCON3 = 0x37;//start calibrare Gain

Page 55: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 55

while ((ADCCON3&0x01)!=0); // asteapta terminarea calibrarii

Gain

void main(void)

//idata unsigned int i,j;

// idata unsigned int val_l,val_h,retai;

PLLCON=0x00; //16.777.216MHz

CFG831|=0x01; //xramu onchip im primii 2k

EA=0;

WDE=0;

T1 = 1 ;

// Power management

//P0.4 =1; //En_6Vcc

// P0.0 =0; //Power_CO

o

// P0.1 =0; //CO_Cicle

// P0.2 =1; //Power_O3

// P0.3 =1; //Power_CO2

//P0 =0x03; // reset all power suplay and

switch

P0 = 0x1e; // enable 6Vcc and Power_CO

T0_Init();

UartInit();

calibrareADC();

CO_measure = 0;

O3_measure = 0;

CO2_measure = 0;

EA=1;

FirstRead=1; // tine de filtru ordin I

Power_on_CO();

Power_on_CO2();

Power_on_O3();

T0_Set(1,TA_POWER_CO);

while(1)

Make_cicle();

//LightOffPow();

Get_parameters();

//LightOnPow();

if(SIsMsg) ModProceed();

Page 56: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 56

UTIL.C

#include <ADUC832.h>

#include "util.h"

#include "timer0.h"

unsigned char CO_enable=0;

extern int FCh[],CO_measure, O3_measure, CO2_measure;

void ToHex(unsigned char x,unsigned char *hi,unsigned char *lo)

unsigned char z;

z=x & 0x0f;

if ( z < 0x0a) *lo='0'+z;

else *lo=z-0x0a+'A';

z=(x & 0xf0)>>4;

if ( z < 0x0a) *hi='0'+z;

else *hi=z-0x0a+'A';

unsigned char ToByte(unsigned char hi,unsigned char lo)

unsigned char lox,hix;

if (hi >='A') hix=hi-'A'+0x0a;

else hix=hi-'0';

if (lo >='A') lox=lo-'A'+0x0a;

else lox=lo-'0';

return (hix*16+lox);

/*

unsigned char Lrc(unsigned char *bufx,unsigned char lb)

unsigned char sx,cs=0,po;

for(sx=0;sx<lb;sx++)

cs+=bufx[sx];

po=255-cs;

po++;

return po;

*/

Page 57: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 57

unsigned char *pc;

/*

unsigned char FByte(float fl,unsigned char ix)

pc=(unsigned char *)&fl;

return *(pc+ix);

*/

void LightOnPow(void)

P2 = P2&0xd;

void LightOffPow(void)

P2 = P2|0x2;

void Make_cicle(void)

if (T0_Over(1))

Power_off_CO();

DAC1H = FCh[1]>>8; // O3 catre Iris

DAC1L = FCh[1]&0x0f;

O3_measure = FCh[1];

Power_off_O3();

if (O3_measure>limit_O3)

Power_on_O3();

DAC0H = FCh[2]>>8; // CO2 catre Iris

DAC0L = FCh[2]&0x0f;

CO2_measure = FCh[2];

Power_off_CO2();

if (CO2_measure>limit_CO@)

Power_on_CO2();

Cicle_on_CO();

T0_Set(2,TA_CICLE_CO);

if(T0_Over(2))

Cicle_off_CO();

T0_Set(1,TA_POWER_CO) ;

Power_on_O3();

Power_on_CO();

Page 58: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 58

Power_on_CO2();

/* if(T0_Over(3))

DAC1H = FCh[1]>>8; // CO catre Iris

DAC1L = FCh[1]&0x0f; // Co catre Iris

O3_measure = FCh[1];

Power_off_O3();

Power_on_CO2();

T0_Set(4,TA_POWER_CO2) ;

if (T0_Over(4))

Power_off_CO2();

T0_Set(5,TA_PAUSE) ;

Pause_on();

if (T0_Over(5))

Pause_off();

T0_Set(1,TA_POWER_CO) ;

Power_on_CO();

*/

void Power_on_CO(void)

P0 = P0&0x00 ;

LightOnPow();

void Power_off_CO(void)

P0 = P0|0x03 ;

LightOffPow();

void Cicle_on_CO(void)

P0 = P0&0x01 ;

INT0=0;

void Cicle_off_CO(void)

P0 = P0|0x03 ;

INT0=1;

void Power_on_O3(void)

P0 = P0|0x17 ;

T1=0;

void Power_off_O3(void)

P0 = P0&0x03 ;

Page 59: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 59

T1=1;

void Power_on_CO2(void)

P0 = P0|0x1b ;

INT0=0;

void Power_off_CO2(void)

P0 = P0&0x03 ;

INT0=1;

void Pause_on(void)

INT0=0;

T1=0;

LightOnPow();

void Pause_off(void)

INT0=1;

T1=1;

LightOffPow();

//P0.4 =1; //En_6Vcc

// P0.0 =0; //Power_CO

o

// P0.1 =0; //CO_Cicle

// P0.2 =1; //Power_O3

// P0.3 =1; //Power_CO2

//P0 =0x1d;

Modbus.C

/*Mod Bus comm */

//#include <ADUC832.H>

#include <absacc.h>

#include "uart.h"

#include "timer0.h"

#include "util.h"

extern unsigned int FCh[];

#define MyAddress 0x01

unsigned char ModHex[160]; //Used for modbus

serial transfer

unsigned char ModAdr,ModFun,ModLen; //ModBus

parameters

Page 60: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 60

unsigned int ModStart,ModNr;

void ModProceed(void);

void MakeRegister(unsigned int *FCh)

unsigned char c=0;

unsigned int gx,len=0;

c=0;

ModHex[0]=':';

ToHex(ModAdr,ModHex+1,ModHex+2);c+=ModAdr; //add

address field

ToHex(ModFun,ModHex+3,ModHex+4);c+=ModFun; //add fun

field

ToHex(ModNr*2,ModHex+5,ModHex+6);c+=(ModNr*2); //nr of

bytes

for(gx=0;gx<ModNr;gx++)

ToHex(FCh[ModStart+gx]>>8,ModHex+7+4*gx,ModHex+7+4*gx+1);

c+=(FCh[ModStart+gx]>>8);

ToHex(FCh[ModStart+gx]&0x00ff,ModHex+7+4*gx+2,ModHex+7+4*gx+3)

;

c+=(FCh[ModStart+gx])&0x00ff;

c=255-c; //checksum

c++;

ToHex(c,ModHex+7+4*gx,ModHex+7+4*gx+1);

ModHex[7+4*gx+2]='\r'; //add

final chars

ModHex[7+4*gx+3]='\n';

len=7+4*gx+4;

// LightOffPow();

UartPutb(ModHex,len);

//send them

// LightOnPow();

/*

Proceeding with any incoming message from MODBUS

*/

void ModProceed(void)

unsigned char mi,cr=0;

Page 61: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 61

WDFlag=1;

ModLen = UartGetMsg(ModHex);

if(ModLen!=-1)

for(mi=0;mi<(ModLen/2)-1;mi++)

cr+=ToByte(ModHex[1+2*mi],ModHex[2+2*mi]);

if(cr != 0) //crc error

return;

ModAdr = ToByte(ModHex[1],ModHex[2]);

ModFun = ToByte(ModHex[3],ModHex[4]);

ModStart = ToByte(ModHex[5],ModHex[6]);

ModStart<<=8;

ModStart+=ToByte(ModHex[7],ModHex[8]);

ModNr = ToByte(ModHex[9],ModHex[10]); ModNr<<=8;

ModNr+=ToByte(ModHex[11],ModHex[12]);

if((ModFun == 0x03)&&(ModAdr == MyAddress)&&(ModNr ==

5)) //read

//compune mesaju

// trimite

MakeRegister(FCh);

AI.C

#include <ADuC832.h>

#include "util.h"

#include "timer0.h"

//extern unsigned int DI;

extern int Ch_inst[],FCh[],FCh_inst[],FChOld[];

extern unsigned char FirstRead ;

int CO_measure =0 , O3_measure =0, CO2_measure = 0 ;

unsigned int IO_ReadAi(unsigned char chn)

Page 62: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 62

idata unsigned int val_l,val_h,retai;

ADCCON2=0x10 |chn; // 812 era 0x10

while(ADCCON3 & 0x80);

val_l = ADCDATAL;

val_h = ADCDATAH&0x0F;

retai=(val_l|(val_h<<8));

return (retai);

void Read_8_channels(void)

unsigned int ii;

for(ii=0;ii<8;ii++)

Ch_inst[ii]=IO_ReadAi(ii);

void Filtru_ordin_AI(void)

float CFP = 0.3 ; // constanta filtrului CFP E (0,1]

unsigned int ii;

Read_8_channels();

if(FirstRead)

FirstRead=0;

for(ii=0;ii<8;ii++)

FChOld[ii]=Ch_inst[ii];

for(ii=0;ii<8;ii++)

FCh[ii]=FChOld[ii] + (int)(CFP*(Ch_inst[ii]-

FChOld[ii]));

FChOld[ii]=FCh[ii];

void Get_parameters(void)

Filtru_ordin_AI();

//DI = (unsigned int)P0&0x00ff; //DI pe pozitia 0 din FCh[]

//FCh[0] = DI;

FCh[3] = CO_measure;

FCh[4] = O3_measure;

TIMER.C

Page 63: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 63

#include <ADUC832.H>

#include <absacc.h>

unsigned int WDCounter=0;

unsigned char WDFlag=1;

unsigned char T0M=0,T0S=0,T0H=0,d50=0;

unsigned char T0Day=0, T0Month=0, T0Year=0;

/*4 independent timings */

unsigned int Flag0=0,Flag1=0,Flag2=0,Flag3=0,Flag4=0,Flag5=0;

unsigned int Cnt_0=0,Cnt_1=0,Cnt_2=0,Cnt_3=0,Cnt_4=0,Cnt_5=0;

unsigned int Max0=0,Max1=0,Max2=0,Max3=0,Max4=0,Max5=0;

unsigned int T0_Ms=0;

unsigned int tx;

unsigned char retv;

//Uart timeout message measuring

extern unsigned char SMsgIn;

extern unsigned char SIsMsg;

extern unsigned char STimerCnt;

void T0_Set(unsigned char nrt,unsigned int sec)

//unsigned int tx;

tx=sec;

ET0=0;

if(nrt==0)

Cnt_0=0;

Max0=tx;

Flag0=1;

else if(nrt==1)

Cnt_1=0;

Max1=tx;

Flag1=1;

else if(nrt==2)

Cnt_2=0;

Max2=tx;

Flag2=1;

else if(nrt==3)

Cnt_3=0;

Max3=tx;

Flag3=1;

Page 64: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 64

else if(nrt==4)

Cnt_4=0;

Max4=tx;

Flag4=1;

else if(nrt==5)

Cnt_5=0;

Max5=tx;

Flag5=1;

TL0=0;

ET0=1;

unsigned char T0_Over(unsigned char nrt)

retv=0;

if(nrt==0)

if((Cnt_0==Max0)&&(Max0>0))

if(Flag0)

Flag0=0;

retv=1;

else if(nrt==1)

if((Cnt_1==Max1)&&(Max1>0))

if(Flag1)

Flag1=0;

retv=1;

else if(nrt==2)

if((Cnt_2==Max2)&&(Max2>0))

if(Flag2)

Flag2=0;

retv=1;

Page 65: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 65

else if(nrt==3)

if((Cnt_3==Max3)&&(Max3>0))

if(Flag3)

Flag3=0;

retv=1;

else if(nrt==4)

if((Cnt_4==Max4)&&(Max4>0))

if(Flag4)

Flag4=0;

retv=1;

else if(nrt==5)

if((Cnt_5==Max5)&&(Max5>0))

if(Flag5)

Flag5=0;

retv=1;

return retv;

void timer0(void) interrupt 1

EA=0;

TH0=0x92; //every 20 ms 0x92

if(WDFlag==1)

WDFlag=0;

WDCounter=0;

if(WDCounter<20*60*5) // 5 minutes watch dog period

//watch dog refresh

T0=0;

T0=1;

WDCounter++;

Page 66: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 66

if(SMsgIn)

STimerCnt++;

if(STimerCnt>=3) //la 20 -> 40-42 ms

SIsMsg=1;

SMsgIn=0;

T0_Ms++;

if(T0_Ms>=50) //trebiue pus 50

T0_Ms=0;

if(Cnt_0<Max0)

Cnt_0++;

if(Cnt_1<Max1)

Cnt_1++;

if(Cnt_2<Max2)

Cnt_2++;

if(Cnt_3<Max3)

Cnt_3++;

if(Cnt_4<Max4)

Cnt_4++;

if(Cnt_5<Max5)

Cnt_5++;

d50++;

if(d50==50)

d50=0;

T0S++;

if(T0S>=60)

T0S=0;

T0M++;

if(T0M>=60)

T0M=0;

T0H++;

if(T0H>=24)

T0H=0;

Page 67: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 67

EA=1;

void T0_Init(void)

EA=0;

TMOD|=0x1; //0 8bit and5scaler = (clk/12)/256/(32-TH0)

//1 16 bit

//2=8 bit auto reload

//la fiecare depasire a lui TL0 , TL0 se

reincarca cu TH0

//freq = (clk/12)*(1/(256-TH0));

//ex TH0=0 ->freq=3.6KHz ;3.6 ori / msec (3600

/s)

//ex TH0=250->freq=153KHz

TL0=0x00;

TH0=0x92; // 0x4c cica 20Hz sau 50ms

T0_Ms=0;

T0S=0;

T0M=0;

T0H=0;

TR0=1; //start the timer

ET0=1; //enable timer0 interrupt

EA=1;

Uart.c

#include <ADUC832.H>

#include "string.h"

unsigned char URxBuf[255];

unsigned char URxCnt=0;

unsigned char URxMsg=0;

unsigned char UTxBuf[255];

unsigned char UTxCnt=0;

unsigned char UTxLen=0;

unsigned char UTxFree=1;

unsigned char bufs[30];

unsigned char SMsgIn=0 ;

unsigned char SIsMsg=0;

unsigned char STimerCnt=0;

sbit P3_5 = P3^5;

Page 68: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 68

/*

.Uart interrupt handler

*/

void serial() interrupt 4

EA=0;

if(RI)

if(SBUF==0x0D) //new message

SIsMsg=1;

URxBuf[URxCnt++]=SBUF;

URxBuf[URxCnt]=0;

else if(SBUF==0x0A) //ignore 0x0A char

;

else if(SBUF==':') //start :

URxCnt=0;

URxBuf[URxCnt++]=SBUF; //save current incoming

message

else

URxBuf[URxCnt++]=SBUF; //save current incoming

message

RI=0;

if(TI)

if(UTxCnt < UTxLen)

if(UTxBuf[UTxCnt]&0x0100)

TB8=1;

else

TB8=0;

SBUF=UTxBuf[UTxCnt++];

else

UTxFree=1;

TI=0;

EA=1;

/*

.Send a buffer over the uart

*/

Page 69: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 69

void UartPutb(unsigned char *buf,unsigned char lens)

unsigned char ux;

for(ux=0;ux<lens;ux++)

UTxBuf[ux]=buf[ux];

UTxLen=ux;

UTxCnt=0;

UTxFree=0;

TI=1;

while(!UTxFree);

/*

void UartPutStr(unsigned char *buf)

unsigned char ux=0;

while(buf[ux]!=0)

UTxBuf[ux]=buf[ux];

ux++;

UTxLen=ux;

UTxCnt=0;

UTxFree=0;

TI=1;

while(!UTxFree);

*/

/*

.Send a string zero terminated over the serial line

*/

/*

void UartPuts(char *buf)

UartPutb((unsigned char*)buf,strlen(buf));

*/

/*

void UartPutc(unsigned char c)

UartPutb(&c,1);

*/

/*

void UartPutCh(unsigned char c)

Page 70: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 70

while(!TI);

TI = 0;

SBUF = c;

*/

/*

unsigned char UartTxFree(void)

return UTxFree;

*/

/*

,.Initialize the uart

*/

void UartInit(void)

RI=0;

TI=0;

SCON= 0x50; // SCON setup serial port

control 8,n,1

// TB8=1;

// TMOD|=0x20;

// TMOD hardware (9600 BAUD @11.059MHz)

// TH1=0xF9; //9600 default

// PCON |= 0x80;

// RCAP2H=0xFF; //9600 PE TIMERU 2

// RCAP2L=0xC9;

// RCLK = 1;

// TCLK = 1;

// TR2=1; //run timer 2

// TR1=1; //run timer 1

T3CON=0x85;

T3FD=0x2D; //9600 using timer 3

PS=1;

ES=1;

// RI=1;// testing

// TI=1;

Page 71: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 71

/*

.Close the serial port (and go to have a drink)

*/

/*

void UartClose(void)

// TR1 = 0; //stop timer 1

ES = 0; //disable serial int

/*

/*

.Set a new baudrate

.2400,4800,9600,19200,38400

.8,E,1

.8,O,1

.8,N,2

.8,N,1

*/

/*void UartSet(unsigned int baudr,unsigned char

parity,unsigned char lstop)

EA=0;

ES=0;

TR1=0;

UParity=parity;

if(lstop==1 && ((parity=='N') || (parity=='n')) )

SCON= 0x50; // SCON setup serial port

control 8,n,1

else

SCON= 0xD0; // SCON setup serial port

control 9,n,1

PCON&=~0x80; //remove SMOD bit

if(baudr==2400)

TH1=0xE8;

else if(baudr==4800)

TH1=0xF4;

else if(baudr==9600)

TH1=0xFA;

else if(baudr==19200)

TH1=0xFD;

else if(baudr==38400)

TH1=0xFD;

PCON|=0x80;

TR1=1;

ES=1;

Page 72: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 72

EA=1;

*/

/*

.Uart get the message.

.Return -1 if no msg

length of the msg otherwise

*/

int UartGetMsg(unsigned char *bu)

unsigned char ix;

int rv=-1;

if(SIsMsg)

SIsMsg=0;

for(ix=0;ix<URxCnt;ix++)

bu[ix]=URxBuf[ix];

rv = URxCnt;

URxCnt=0;

return rv;

Page 73: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 73

7. Bibliografie

ADuC832 datasheet. (n.d.). Retrieved July 5, 2013, from http://www.analog.com:

http://www.analog.com/static/imported-files/data_sheets/ADUC832.pdf

Cesare Alippi, F. I. (2010). An Adaptive Sampling Algorithm for Effective Energy Management in

Wireless Sensor Networks With Energy-Hungry Sensors. IEEE TRANSACTIONS ON

INSTRUMENTATION AND MEASUREMENT, VOL. 59, NO. 2.

Cesare Alippi, G. A. (2009). Energy Management in Wireless Sensor Networks with Energy-Hungry

Sensors.

Elmi, I., Zampolli, S., Cozzani, E., Mancarella, F., & Cardinali, G. (2008). Development of ultra-low-

power consumption MOX sensors with ppb-level VOC detection capabilities for emerging

applications. In Sens. Actuat. B-Chem (pp. 135, 342–351).

George F. Fine, L. M. (2010). Metal Oxide Semi-Conductor Gas Sensors in Environmental Monitoring.

Sensors 2010.

HANWEI ELECTRONICS CO. (n.d.). Retrieved July 5, 2013, from MG811 Gas sensor:

http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/MG811Datasheet.pdf

Korotcenkov, G., Blinov, I., Brinzari, V., & Stetter, J. (2007). Effect of air humidity on gas response of

SnO2 thin film ozone sensors. In Sens. Actuat. B-Chem (pp. 122, 519–526).

Martin, R. (2004). Electronic Structure: Basic Theory and Practical Methods. Cambridge.

MQ131 gas sensor. (n.d.). Retrieved July 5, 2013, from HANWEI ELECTRONICS CO:

http://www.cooking-hacks.com/skin/frontend/default/cooking/pdf/MQ-131.pdf

MQ-7 gas sensor. (n.d.). Retrieved July 5, 2013, from Hawnei electronic CO.:

https://www.sparkfun.com/datasheets/Sensors/Biometric/MQ-7.pdf

Patel, N., Patel, P., & Vaishnav, V. (2003). Indium tin oxide (ITO) thin film gas sensor for detection of

methanol at room temperature. In Sens. Actuat. B-Chem (pp. 96, 180–189).

Seiyama, T., Kato, A., Fujiishi, K., & Nagatani, M. (1962). A new detector for gaseous components

using semiconductive thin films. In Anal. Chem (pp. 34, 1502–1503).

Shriver, A. (2006). Inorganic Chemistry. Oxford University Press.

UT803. (n.d.). Retrieved July 5, 2013, from www.uni-trend.com: http://www.uni-

trend.com/UT803.html

Varon, J., Marik, P., Fromm, R. J., & Gueler, A. (1999). Carbon monoxide poisoning: A review for

clinicians. In J. Emer. Med (pp. 17, 87–93).

Page 74: LUCRARE DE LICENȚĂ · de fabricație au permis producerea unor senzori ieftini și cu sensibilitate și grad de încredere crescut față de cei obținuți prin metodele precedente

Olteanu Gheorghe Daniel 74

Vincenzi, D., Butturi, M., Guidi, V., Carotta, M., Martinelli, G., Guarnieri, V., et al. (2000). Gas-sensing

device implemented on a micromachined membrane: A combination of thick-film and very

large scale integrated technologies. In J. Vac. Sci. Technol (pp. 2441–2445).

Wang, Z., & Hu, X. (1999). Fabrication and electrochromic properties of spin-coated TiO2 thin films

from peroxo-polytitanic acid. In Thin Solid Films (pp. 352, 62–65).

Wiegleb, G., & Heitbaum, J. (1994). Semiconductor gas sensor for detecting NO and CO traces in

ambient air of road traffic. In Sens. Actuat. B-Chem (pp. 17, 93–99).

Williams, D. (1999). Semiconducting oxides as gas-sensitive resistors. In Sens. Actuat. B-Chem (pp.

57,1–19).