PROIECTAREA ȘI IMPLEMETAREA UNUI DETECTOR DE GAZ CU NOTIFICARE TELEFONICA COORDONATOR ȘTIINȚIFIC ș.l. dr. ing. POSZET OTTO ABSOLVENT ȘIMON GABRIEL… [311183]
UNIVERSITATEA DIN ORADEA
FACULTATEA DE INGINERIE ELECTRICĂ ȘI
TEHNOLOGIA INFORMAȚIEI
SPECIALIZAREA CALCULATOARE
FORMA DE ÎNVĂȚĂMÂNT IF
LUCRARE DE DIPLOMĂ
COORDONATOR ȘTIINȚIFIC
ș.l. dr. ing. POSZET OTTO
ABSOLVENT: [anonimizat]
2016
UNIVERSITATEA DIN ORADEA
FACULTATEA DE INGINERIE ELECTRICĂ ȘI
TEHNOLOGIA INFORMAȚIEI
SPECIALIZAREA CALCULATOARE
FORMA DE ÎNVĂȚĂMÂNT IF
PROIECTAREA ȘI IMPLEMETAREA UNUI DETECTOR DE GAZ CU NOTIFICARE TELEFONICA
COORDONATOR ȘTIINȚIFIC
ș.l. dr. ing. POSZET OTTO
ABSOLVENT: [anonimizat]
2016
UNIVERSITATEA DIN ORADEA
FACULTATEA DE INGINERIE ELECTRICĂ ȘI TEHNOLOGIA INFORMAȚIEI
DEPARTAMENTUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
TEMA_________
Proiectul de finalizare a studiilor a student: [anonimizat]
1). Tema proiectului de finalizare a studiilor:
Proiectarea și implemetarea unui detector de gaz cu notificare telefonică
2). Termenul pentru predarea proiectului 05.07.2016
3). Elemente inițiale pentru elaborarea proiectului de finalizare a [anonimizat], [anonimizat] 16×2 caractere
4). Conținutul proiectului de finalizare a studiilor
Capitolul 1. Introducere
Capitolul 2. Echipamente utilizate
Capitolul 3. Prezentarea aplicației
Capitolul 4. Concluzii
5). Material grafic: [anonimizat]
6). Locul de documentare pentru elaborarea proiectului: internet, bibliotecă universitară.
7). Data emiterii temei 01.10.2015
Coordonator științific
ș.l. dr. ing. POSZET OTTO
CUPRINS
Contents
CAPITOLUL I. Introducere
Lucrarea de față are ca scop realizarea unui detector de gaz care să ne avertizeze atât vizual cât și acustic în cazul unei detecții și închiderea circuitul de gaz pentru prevenirea unor accidente.
Proiectul a [anonimizat] o mai bună înțelegere a proiectelor făcute. [anonimizat] o mulțime de accidente care se petrec din cauza neatenție în operarea cu substanțele inflamabile. Aplicația transmite un mesaj prin bluetooth către telefonul mobil al utilizatorului în cazul unei detecții.
[anonimizat], în care am implementat modul prin care utilizatorul poate trimite date catre Arduino. [anonimizat] o problema asupra detctorului de gaz. [anonimizat] o electrovalva care va închide circuitul de gaz până în momentul în care utlizatorul va transmite un mesaj de reinițializare a programului.
Există de asemenea avertizare acunstică în cazul unei detecții dar și în cazul în care ceva nu ruleaza corespunzător sau în momentul în care utilizatorul pornește aplicația.
[anonimizat] o baterie. Această baterie se va încarca în momentul în care folosim alimentarea de la rețeaua electrică și are scopul de a menține energia electrică necesară funcționării astfel încat aplicația să ruleze în cazul unei intreruperi de energie.
CAPITOLUL II. Echipamente utilizate
II.1 Arduino
Arduino este o companie lansată in 2005, [anonimizat], care ne permite să realizăm aproape orice proiect.
Numele de Arduino provide la un bar din Italia, Ivrea, unde fondatorii obișnuiau să se intalnească. Plăcuța Arduino și modulele aferente fiind disponibile comercial preasamblate sau sub forma de kituri pentru asamblare ulterioară. Evoluția acestora fiind una impresionantă de la 300.000 de plăcute Arduino pe la mijlocul anului 2011, la peste 700.000 în anul 2013. [ HYPERLINK \l "Arduino" 1 ]
Având la baza un microcontroler și fiind o platforma simplu de folosit, poate fi considerată minicalculator căreia putem să îi controlăm întrările si ieșirile, capabil de a interacționa cu mediul exterior, datorită faptului ca în jurul lui există un sistem bine dezvoltat, având la dispoziție o multitudine de dispozitive si senzori cu care acesta poate crea o legătura. Fiind un sistem extrem de popular, are o varietate mare de componete cu care se poate asocia în vederea culegerii de informații.2]
Cu ajutorul plăcii de dezvoltare Arduino și cu componenetle necesare putem în interacționa in zona transferului de date prin internet cu ajutorul plăcilor de retea Ethernet având posibilitatea de a se conecta la retele WIFI sau dispozitive GSM pentru Arduino sau module bluetooth, la fel de multe posibilități avem chiar dacă interacționăm cu mediu exterior prin senzori de umiditate, senzori de gaz, senzori de foc sau senzori de lumina. Putem dezvolta aplicații chiar și în zona mecanică unde există motoare de curent continuu, motoarea servo sau motoare pas cu pas. Afișarea informațiilor făcându-se prin intermediul ecranelor LCD, începând de la cele mai simple cum ar fi ecrane LCD text cu 16 caractere, până la ecrane grafice LCD. [ HYPERLINK \l "htt" 3 ]
La nivel comercial există mai multe tipuri de Arduino disponibile pentru utilizatori, dintre acestea putem aminti: Arduino MEGA, Arduino DECIMILA, Arduino DUEMILANOVE, Arduino MINI, Arduino NANO sau chiar Arduino BLUETOOTH. Cele mai noi produse fiind Arduino UNO si Arduino MEGA 2560. 2]
Aceste tipuri diferă prin dimensiunea plăcii, tipul portului prin care se conectează la un calculator și prin numărul de pinii în care putem conecta diferite module pentru realizarea proiectelor.
Modelul de placă pe care l-am ales în realizarea aplicației mele este Arduino UNO R3.
Figura II.1.1 Placa de dezvoltare Arduino
Arduino UNO R3 este o placă de dezvoltare care la bază un microprocesor AVR Atmel de 8 biti, un oscilator cu cuarț de 16MHz si un regulator de tensiune.
ATMEGA328PU este un microprocesor de 8 biti, un circuit integrat cu o performanță de până la 20 MIPS(Milioane instructiuni pe secunda)la o frecventa de 20MHz, având o memorie flash de 32Kiloocteți care permite scrie și ștergerea programului din celulele de memorie, 2Kiloocteți memorie SRAM si 1Kilooctet memorie EEPROM. [ HYPERLINK \l "Arduino" 1 ]
Microprocesorul este destul de utilizat in proiecte si sisteme autonome având un consum redus de energie si un cost redus. Atmega328 permite conectarea dispozitivelor prin intermediul celor 14 pini digitali(dintre care 6 pini PWM), care pot fi setați ca și intrare sau iesire, toți situați pe partea superioară a plăcii, de asemenea mai cuprinde 6 pini pentru întrări analogice la care putem conecta senzori care ne indica o valoare exacta a nivelului măsurabil (de exemplu nivelul de gaz) si pini de alimentare care au la ieșire 3.3v respectiv 5v. 4]
Pe aproape toate platformele se poate observa că pinul 13 este conectat la un led aflat pe placă, acesta este un martor de test in cazul experimentelor în timpul dezvoltării programelor. Tensiune de lucru a microprocesorului fiind între 1.8 – 5.5V, având un consum de 0.2A in modul activ. [ HYPERLINK \l "Des" 4 ]
Pini PWM (Pulse Width Modulation) este folosită pentru a varia tensiunea dată de un dispozitiv electronic si schimba foarte rapid tensiunea oferită data dispozitivului, din starea pornit în starea oprit și invers. În cazul practic cu ajutorul pinilor PWM vom putea modifica rotațiile pe minut a unui motor electric.5]
Microprocesorul Atmega328 vine de la producătorul preinstalat cu un bootloader care permite scrierea programelor în memoria flash a cipului fără a fi nevoie de programator extern. Acest bootloader este un program mic care ocupă ultimii 2 Kiloocteți ai memoriei flash, care semnalizează microcontrolerului să intre în bootloading, care va prelua datele de la programator și le va scrie în restul memoriei. [ HYPERLINK \l "htt1" 6 ]
Programarea placutelor se face prin conexiune serială, astfel încat plăcuța Arduino se conectează la calculator printr-un port USB, având integrat pe placă cip de conversie USB-serial.
Microcontrolerul folosește următoarele protocoale de comunicații: Serial (TX, RX), SPI (SS, MOSI, MISO, SCK), I2C(SDA SCL). În toate aceste comnicații transferul de date se face bit cu bit.
Figura II.1.2 Platforma Arduino IDE
Programele Arduino se incarcă în microprocesor cu ajutorul Arduino IDE (Integrated Development Environment), un program oferit gratuit de Arduino care permite scrierea pas cu pas a programelor ce urmează a fi încărcate în Arduino.
Arduino IDE fiind un mediu de dezvoltare ce oferă o combinație între limbalul de programare C si C++, având bazele proiectului Processing. Este un mediu de dezvoltare cu o interfață simplă, putând fi ințeles și de persoanele care nu sunt familiarizate cu aceast mediu de programare.
Programele scrise in Arduino IDE se numesc sketch.Programele putând fi compilate și încarcate în microprocesor cu un singur click. Pentru ca un program sa poata fi incărcat în microprocesor mai întai trebuie din meniul Tools trebuie să alegem modelul plăcii pe care o utilizăm și portul aferent plăcii pe care facem scrierea programului.
Figura II.1.3 Structura unui program in Arduino
Un program tipic în Arduino este format din două funcții care sunt compilate și legate de un program main. Aceste două funcții trebuie să se regăsească în orice program.Funcția setup se rulează o singură dată în mometul în care alimentăm sau resătăm placa. În această secțiune se pune cod de inițializare, în care definim variabilele cu care vom opera pe parcursul programului. Funcția loop rulează în ciclu în mod repetat (de la care vine și denumirea), în acestă secțiune vom scrie partea principală a programului care se va executa in mod repetat pană la resetarea plăcii când programul va fi reințializat.
II.2 Modul Bluetooth HC-05
Figura II.2.1 Modul bluetooth HC-05
Bluetooth HC-05 este un modul compatibil cu Arduino, care ajută la conectarea wireless a dispozitivelor. Comunicațiile bluetooth au luat naștere în 1994 când compania Ericsson Mobile Communication a decis crearea unei interfețe radio cu cost redus și de mică putere.
Sistemul bluetooth este cel mai potrivit în cazul comunicațiilor pe distanțe scurte. Specificațiile bluetooth sunt capabile de a stabili conexiuni radio de până la 10 metri sau în cazuri speciale ajungând să stabilească conexiuni de până la 100 metri, fiind utilizate pentru transmisii de date sau vocale de până la 720 kbps pe canal. Datorită transferului mare al datelor, specificațiile bluetooth reprezintă una dintre cele mai avansate tehnologii de comunicare, care practic sunt acoperite de standardul IEEE 802.15.1
Conexiunile bluetooth se încadrează intr-o gamă de frecvențe de la 2.4 GHz la 2.48 GHz, utilizând salturi de frecvență a semnalului duplex de până la 1600 de salturi pe secundă. La fercvențele de 1MHz semnalul execută 79 de salturi pentru o bună protecție la interferențe. Construcția modulelor bluetooth fiind incapsulată intr-un singur cip CMOS, în acest fel reducându-se consumul de energie și dimensiunile, necesare pentru implementarea în dispozitivele mobile.
Pentru comunicațiile vocale sunt utilizate până la trei canale vocale sincrone, fiecare canal suportând in mod sincron până la 64 kb/s. Comunicațiile de date sunt realizate e un singur canal asincron care suportă până la 723.2 kbps în sens sirect în conexiune asimetrică sau 433.9 kbps în conexiune simetrică. Deoarece scopului unei rețele bluetooth este de a interconecta cât mai multe dispozitive, protocolul de sincronizare se bazează pe structura de tip master-slave. Fiecare master poate stabili o conexiune cu încă 7 dispozitive, dar numai o conexiune poate fi activă la un moment dat, iar celelalte conexiuni fiind intr-un mod semi-activ
Principalele moduri în care se poate folosi conexiunea bluetooth:
Una dintre cele mai populare aplicații fiind controlul wireless între telefonul mobil și căști la car kitul mașinii
La fel de populare fiind si comunicațiile wireless între dispozitivele de intrare și ieșire a unui calculator, mouse sau tastatura
Tehnologia bluetooth fiind folosită și în contrlul wireless al consolei de jocuri
Comunicare wireless între calculatoare într-un spațiu limitat ca lungime, fiind necesară o lungime de bandă mică
Conexiunea bluetooth fiind folosită în echipamente medicale și receptoare GPS
Datorită faptului că semnalele radio pot fi ușor interceptate, sistemul bluetooth are incorporat câteva procesuri de securitate pentru prevenirea receptorilor nedoriți. Metodele de securizare bluetooth sunt de 3 feluri:
O rutină pentru autentificare
O metodă de securitate fiind cifrarea fluxului informațional
Generarea unei chei de sesiune, care poate fi schimbată pe parcursul unei conexiuni stabilite
În cazul conectării prin bluetooth a unui telefon mobil un laptop, descoperirea dispozitivelor se va face în felul următor, telefonul mobil are posibilitatea de a lua rolul unui modem folosind profilul Dial-Up Networking și va fi într-o permanentă căutate a dispozitivelor care doresc să-l utilizeze. În vederea unei conexiuni, laptop-ul va utiliza o aplicație cu legatură bluetooth dial-up. Pentru ca laptop-ul să vadă ce dispozitive se află în jurul lui inițiază o procedură Inquiry pentru a verifica ce dispozitive sunt în zona. În această situație laptop-ul va trimite o serie de pachete de interogare(Inquiry), iar telefonul va răspunde cu un pachet FHS(Frequency Hop Sincronisation) în care sunt toate datele de care are nevoie pentru crearea unei conexiuni.
Modulul Bluetooth permite o conectare serială cu alte dispozitive. Modul de conectare îm circuit se face cu ajutorul celor 6 pini situați în partea inferioară a acestuia.
Pinul Key intră in setup mode daca e HIGH inainte să îl alimentăm
Pinul VCC și GND permite alimentarea modului cu o tensiune de 5v
Pinul TXD permite transmiterea datelor
Pinul RXD permite recepționara datelor
Pinul STATE ne indică daca este conectat modulul
În partea superioară a modului se află antena prin care sunt transmise datele.
Figura II.2.2 schema pinilor bluetooth HC-05
Pe placă se află 2 leduri, unul indică dacă modulul este alimentat cu 5v tensiune continuă, iar al doilea led va funcționa intermintent în cazul în care așteaptă să fie conectat la un telefon mobil.
II.3 Senzor de gaz MQ-2
Senzolul de gaz MQ-2 este un dispozitiv capabil să indentifice gazele inflamabile din aer. Pot fi folosiți în echipamente de detectare a gazelor din întreaga lume, în domeniul sănătății, aparate de măsură sau sisteme de control. Aplicațiile uzuale ale senzorilor includ alarme în locuințe sau la nivel comercial, sisteme de control a calității aerului, verificarea alcoolului în respirație sau chiar și în automobile.
Figura II.3.1 Senzor MQ-2
Senzorii in general sunt de 2 felul, activi si pasivi. Senzorul de gaz MQ-2 este un senzor activ datorită faptului ca acesta are nevoie de alimentare cu energie electrică pentru că ei nu au proprietatea de a-și mări sau micșora rezistenta în funcție de un stimul extern aplicat.
Senzorii de gaz sunt formați dintr-un semiconductor din metal-oxid obținut printr-un procedeu de înprimare cu ajutorul unui ecran de matase de peliculă groasă. Acesta include un strat chimic care este format dintr-o pastă preparată din pulbere de metal-oxid, aditivi anorganici si lianți organici. Pasta este depusă pe un suport de alumină care conține electrolizi film din metal și un rezistor de încălzire, urmând ca pe urmă să fie introdusă intr-un cuptor termic sau cu raze infraroșii. Măsurarea concentrației de gaze din aer este posibilă datorită oxidului de staniu care este cel mai utilizat material în construcția senzorilor de gaz. Proprietatea senzorilor de a detecta un anume tip de gaz se face prin adăugarea de catalizatori și promotori.
Principiul de funcționare a unui senzor de gas se bazează pe următoarele elemente, cum ar fi elementul detector-acesta fiind un cip, o bază pentru cipul detector și un capac prin care se face detecția de gaz. Elementul folosit pentru detectarea gazului conține materiale sensibile la un anumit tip de gaz și un elemente de încălzire a materialului sensibil. Sistemul de încălzire este setat temperatura de lucru deorece anumite tipuri de senzori lucrează la o temperatură cuprinsă între 150 și 600 grade Celsius.
Senzorii de gaz sunt clasificați după tipul de gaz pe care aceștia pot să il detecteze, în funcție de tipul de gaz pe ccare îl detectează, elementul sensibil va utiliza diferite materiale, cum ar fi dioxidul de staniu(SnO2) fiind unul dintre cel mai utilizat material semicinductor sensibil la gaze, oxid de wolfram(WO3) etc.
Analiza aerului de către detectorul de gaz prin absorția pe suprafața cristalului primind o sarcină negativă numai atunci când un cristal de oxid este încălzit la o anumită temperatură. Rezistența electrică a substanței modificându-se chiar și în cazul unei concentrații scăzute de gaz. Electronii donatori de pe suprafața cristalului sunt transferați la oxigenul absorbit. Rezistența electrică a unui senzor este dată de o barieră de potențial, care are rolul de a întrerupe trecerea unui curent între doi electrozi.
Răspunsul senzorului în cazul detectării de gaz se face pe suprafața materialului oxidic, care imobilizează un electron din banda de conducție. În cazul unui gaz reducător în aer, acesta se combină cu oxigenul absorbit, iar fiecare atom de oxigen ce părăsește suprafața senzorului va elibera un electron în banda de conducție a semiconductorului, în acest caz mărindu-i conductivitatea.
Senzorul de gaz MQ-2 este capabil de a detecta gaze precum hidrogen, gaz metan, gaz butan, fum, propan, alcool și dioxid de carbon. Temperatura de funcționare a acestui senzor fiind cuprinsă -20 și 50 grade Celsius.
În circuitul de mai jos se pot observa componentele aflate pe plăcuța modului dar și traseul acestuia, pentru o mai buna înțelegere a principiului de funcționare
FiguraII.3.2 circuitul de funcționare a senzorului de gaz
Senzorul de gaz este prevăzut cu 4 pini care asigură interfațarea cu alte componete ale unui circuit. Pinul 1 și 4 sunt folosiți pentru alimentaea modului. Senzorul de gaz trebuie alimentat dintr-o sursă de tensiune stabilizată sau cu ajutorul unui regulator de tensiune (LM7805), acesta având nevoie de o tensiune de funcționare de 5v, iar curentul necesar funcționării lui fiind 150 mA. Pinul 2 reprezintă ieșirea digitală(DO – Digital Output), care ne indică printr-un semnal logic eventualele scurgeri de gaze fără a putea măsura valoarea acestuia. Senzorul dispune de un comparator, cu ajutorul căruia putem citi date analogice în timp real și putem observa dacă concentrația de gaz a depășit o anumită valoare. Aceste semale fiind trimise prin pinul 3 (AO – Analogic Output) al modului.
În circuitul senzorului se afla un potențiometru cu care putem regla sau cablibra sensibilitatea senzorului pentru a putea avea niște rezultate cât mai precise. În modul fiind prezente două leduri, unul ne indică dacă senzorul este alimentat și funcționează iar al doilea led simulează ieșirea digitală, acesta va funcționa doar dacă pe ieșirea digitală vom avea 1 logic.
Senzorul de gaz are o dimensiune de 33 mm x 14 mm (lungine x lățime), perfect pentru integrarea în majoritatea proiectelor, atât fixe cât și portabile.
II.4 LCD Alfanumeric 16×2
Display-urile sunt cele mai folosite dispozitive de afișare a unui conținut sau de a prezenta informații utilizatorului. Cele mai multe dispozitive folosesc display de tip LCD (Liquid Qrystal Display). Aceste LCD-uri sunt de două tipuri:
LCD alfanumeric
LCD grafic
Modelul pe care l-am folosit în relizarea proiectului este de tip alfanumeric, modelul 16×02.
Prin construcție, afișarea caracterelor pe display poate fi:
Cu lumină pe fundal (pentru o mai buna vedere pe timp de noapte)
Figura II.4.1 LCD 16×02 cu lumină pe fundal
Fără lumină de fundal
Figura II.4.2 LCD 16×02 fără lumină pe fundal
Afișajele LCD sunt de mai multe dimensiuni, cele mai des denumite fiind după numărul de linii și numărul de coloane. Spre exemplu modelul de display folosit de mine, LCD 16×02, 16 reprezintă numărul de caractere permise pe un rând, iar 02 reprezintă numărul de rânduri pe care pot fi reprezentate caractere. De asemenea există LCD 20×04 are 4 rânduri a câte 20 carectere pe rând.
Ca procesul de afișare a caracterelor să fie cât mai simplă, pe lângă display este implementat și un microcontroller LCD care face legătura între codul scris și afișarea pe display. Majoritatea display-urilor alfanumerice dispun de controller-ul Hitachi 44780, pe display având înscripționat HD44780 , un controller ieftin și ușor de găsit. Conectarea în circuit a acestuia este posibilă datorită celor 16 pini, sau 14 pini în cazul display-urilor fără lumină de fundal.
Modelul de display pe care l-am utilizat în această aplicație este compus din 16 pini iar semnificația acestuia se poate observa în figura de mai jos:
Figura II.4.3 Semnificația pinilor a display-ului 16×02
Display-urile alfanumerice suportă 2 moduri de transfer a datelor
Transfer pe 8 biți: Prima dată se setează caracterul de urmează a fi afișat pe magistrala de 8 biți, apoi se setează modul RS=1 (modul caracter), iar pe urmă trimitem un impuls spre pinul Enable (E). La acest tranfer se utilizează toți cei 8 biți (D0 – D7) ai microcontroller-ului aflat pe display
Transfer pe 4 biți: În acest transfer se vor utliza doar 4 biți (D4 – D7), pe urmă vomn seta modul RS = 1(modul caracter), apoi se va trimite un impuls spre pinul Enable
Figura II.4.4 Modul de conectare în circuit display-ului
În momentul în care dorin să afișăm caractere pe display, acestea se duc prima dată spre memoria mocrocontroller-ului iar pe urmă sunt trimise spre afișare. Memoria controler-ului LCD conține 3 blocuri de memorie:
DDRAM (Display Data RAM)
CGROM (Character Generator ROM)
CGRAM (Character Generator RAM)
Memoria DDRAM este folosită pentru stocarea caracaterelor ce urmează a fi afișate pe ecran. Această emorie poate deține până la 80 de caractere dintre care doar 16 caractere pot fi vizibile. Pentru a putea afișa toate cele 80 de caractere trebuie să configurăm ecranul să incrementeze automat caractere de la stânga la dreapta. Toate caracterele trimise pe liniile D4 – D7 se vor afișa de la stânga la dreapta începând de la adresa de start. În cazul în care se trimit mai multe caractere, acestea se pot afișa dacă vom folosi comanda SHIFT care va muta fereastra vizibilă spre celelalte zone de memorie. Conținutul acestei memorii se pierde la doconectarea alimentării.
Figura II.4.5 Modul de operare al memorie DDRAM
În memoria CGROM este stocat un set de caractere care pot fi afișate în momentul în care dorim afișarea lor. Această zonă de memorie este alocată fiecărui caracter și conține toate variantele pe care le poate afișa microcontroller-ul. Practic în momentul în care utlizatorul dorește afișarea unui caracter, acesta nu se crează ci este luat din memoria CGROM.
Figura II.4.6 Setul de caractere stocat în CGROM
Memoria CGRAM este responsabilă cu modul de afișare a caracterelor pe display. Acestea este sub formă matriceală de tipul 8×5 a unui singur caracter. Fiecare caracter are nevoie de 64 octeți dintr care doar primii 5 biți sunt utlizați.
Figura II.4.7 Modul de afișare a caracterelor
II.5 Buzzer
Buzzer-ul este un mic difuzor folosit de majoritatea aparaturilor pentru redarea sunetelor de avertizare, sunetelor de alarmă sau sunetele care reprezintă o notificare. Buzzer-ul poate fi de tip mecanic, piezoelectric, electromagnetic sau electromecanic. Acesta emite sunet de fecvență inaltă, plaja de fecventa cuprinsă între 4000 Hz și 20000 Hz (20 Frecvența reprezintă numărul de unde care oscilează intr-o perioadă de timp. Urechea umană este capabilă să recepționeze sunete cuprinse intre 20Hz și 20000 Hz.
Acestea pot emite sunete pe baza unui generator de ton sau fără utilizarea unui genberator de ton. Buzzer-ul care utilizează generator de ton e suficient să alimentam buzzer-ul cu o tensiune de alimentare cuprinsă intre 3 și 7 volți, tensiune continuă. În cazul buzzer-ului care nu utilizează generator de ton,o avem avantajul față de cele ce utilizează generator de ton, că utilizatorul poate să aleagă tonul emis cu ajutorul buzzer-ului. Acestea pot sa funcționeze o tensiune de alimentare alternativă care au la bază o bobină cu care se face generarea de sunet.
Modelul de buzzer pe care il folosesc în aplicatie este un buzzer piezoelectric. Principiul de funcționare a a unui buzzer piezoelectric constă în acumularea de sarcini electrice asupra unui cristal de quarț și anumite produce ceramice ce reacționează la presiune. Curentul de lucru a acestui buzzer fiind de 40mA
Nivelul acustic este de 85 dB, montarea în circuit se face cu ajutorul celor 2 pini care se introduc prin placă. Buzzer-ul este o coponentă mică ca dimensiune având un diametru de 12 mm și o inatime de 9 mm. Acesta poate opera intr-un mediu cu temperatură cuprinsă între -20 și 70 grade Celsius.
CAPITOLUL III. Implementare software
III.1 Schema bloc
Schemele logice reprezintă notații grafice formate din blocuri legate între ele prin sageți. O schemă logică descrie grafic pașii unui algoritm și specifică prelucrările care se execută asupra datelor.
În această schemă este prezentat modul de creare a programului pentru acestă aplicație.
Programul este structurat în mai multe blocuri de decizie, în care la unele se cere intervenția utilizatorului.
În prima etapă a programului se execută o inițiere prin care utilizatorul este atenționat că aplicația este pregătită de funcționare. Înainte ca programul să ia datele de la senzor și să le transmită spre utilizator am implementat o verificare a electrovalvei, astfel încât utilizatorul va ști dacă aceasta este conectată sau nu funcționează în parametri normali.
În blocul de decizie ”ev offline” se verifică dacă electrovalva are o problemă sau nu este conectată, pe ramura ”DA” se va merge dacă electrovalva prezintă o problemă, iar pe ramura ”NU” daca electrovalva funcționează normal. Dacă programul va merge pe ramura ”NU” se programul va fi pregătit să facă citirea valorilor trimise de la senzor. Dacă programul va merge pe ramura ”DA”, se va trece automat intr-un alt bloc în care utilizatorului i se afișează mesajul ”EV OFFLINE”, care din nou este urmată de un bloc de decizie în care se cere intervenția utilizatorului care trebuie să transmită caracterul ”k”, în acest fel se dat mesajul că electrovalva s-a conectat și că programul poate să treacă la următorii pași. Dacă mesajul nu este transmis programul va rămâne în blocul în care afișează mesajul ”EV OFFLINE”.
Detectarea gazului se face cu un alt bloc de decizie, în care decizia este luată de către senzorul de gaz. Dacă acesta detectează gas, programul va merge pe ramura ”DA” care pe urmă va trece într-un alt bloc în care va acționa asupra instalației de gaz și va transmite utilizatorului atât pe semnal luminos dar și acustic că s-a detectat gas. În situația în care nu este detectat gaz programul revine la blocul anterior în care va citi valorile de gaz primite de la senzor.
Reinițializarea programului se face cu alt bloc de decizie prin care se cere intervenția utilizatorul pentru transmiterea caracterului ”r” care face ca programul să treacă în primul bloc în care se face ințializarea programului. Comanda aceasta facundu-se în momentul în care utilizatorul a făcut în prealabil o verificare a instalației de gaz, sau îndepărtând cauza care a dus la declanșarea sistemului de închiderea a conductei principale de alimentare cu gaz a unei încăperi.
III.2 Prezentare program
Programul acestei aplicații a fost scris și compilat în mediul de dezvoltare oferit de compania Arduino, Arduino IDE. Programul se execută de sus în jos cu ajutorul funcțiilor și a comenzilor. La ]nceputul programului am asignat fiecare pini pe placa, astfel încât asceștia să fie configurați ca intrări și ieșiri, fiecare având rolul sau în circuit.
Detectarea gazulzului
În secvența de cod de mai jos este prezentat modul în care se face detecția, avertizarea acustică și afișarea mesajului atât pe ecran cât și transmiterea prin bluetooth a mesajului de avertizare.
Figura III.2.1 Detectarea și afișarea gazului
Variabila gasStatus citește semnalul digital primit de la senzorul de gaz. În momentul când senzorul de gaz este activ dar nu a găsit o anumită concentrație de gaz în aer, acesta trimite trimite o tensiune de 5v până în momentul când are loc o detecție. În momentul detecției senzorul trimite un semnal logic 0v spre microcontroller iar acesta va trimite o tensiune de 5v apre ledPin.
Avertizarea acustică
Funcția playTone se execută în buclă odată la 400 ms timp de 200ms, aceasta conține numele pinului spre care se trimite semnalul, și are rolul de a ne avertiza acustic atât la pornirea aplicației cât și în czul unei detecții. Generarea sunetului făcându-se cu ajutorul variabilei tone care cuprinde 3 valori:
13 reprezintă pinul către care se trimite semnalul
2500 reprezintă frecvența sunetului emisă
200 reprezintă durata de generare a sunetului
Figura III.2.2 Funcția playTone
Afișarea mesajelor pe display
Afișarea pe ecran a mesajului de avertizare se face prin intermediul funcției gasDetect care este apelată în buclă urmat de un efect luminos de în care lumina ecranului se stinge și se aprinde doar în cazul în care senzorul detectează gaz. In figura III.1.3 este prezentată structura funcției gasDetect.
Figura III.2.3 Funcția gasDetect
În această secvență de cod se ințializează ecranul pe numere de rânduri și coloane. Pe urmă lcd.clear șterge eventualele caractere de pe ecran pentru a nu se suprascrie cu caracterele ce urmează a fi afișare. Lcd.cursor setează cursorul să afișeze un anumit mesaj pe rândul pe care dorim să afișăm mesajul.Luminozitatea ecranul va fi intermitentă doar in situația în care senzorul va trimite un semnal logic 0v. După ce sistemul va închide alimentarea cu gaz, pe ecran se va afișa doar mesajul fără să mai fie lumină intermitentă.
Verificarea electrovalvei
Verificarea electrovalvei se face cu ajutorul funcției checkValve care este apelată în buclă din simplul motiv că dacă o să avem o problemă a electrovalvei, notificarea o primim indiferent de etapa la care se află programul.
Figura III.2.4 Funcția de verificare a electrovalvei
Verificarea electrovalvei este făcută cu ajutorul variabilei ev_status care citește un semnal digital trimis de la electrovalvă spre microcontroller. Semnalul transmis de la electrovalvă este o tensiune de 5v. În cazul în care semnalul trimis este 0v sau electrovalva nu este conectată la microprocesor at se indeplinește condiția ev_Status == LOW, și s execută afișarea pe ecranul telefonului prin semnal bluetooth, afișarea pe ecranul montat în circuit dar și avertizarea sonoră.
În figura III.1.5 este reprezentată bucla while putem transmite comenzi microcontroller-ului atât timp cât ev_status == 0, practic electrovalva nu funcționează. Datorită acelui while doar în această funcție putem trimite ca și caracter tasta ”k”, prin care transmitem microcontroller-ului că elecetrovalva este funcțională.
Figura III.2.5 Transmiterea de comenzi în cadrul funcție checkValve
Ca și măsuri de siguranța privind utilizatorul am implementat o comandă care va activa închiderea circuitului în cazul în care electrovalva va semnala erori. În momentul în care s-a trimis comanda de confirmare că s-a remediat orice problemă, electrovalva se va dezactiva pentru a fi pregatită de a reacționa în cazul unor detecții.
Citirea valorilor analogice
Afișarea valorii senzorului este posibilă datorită funcției valueSensor, funcției prin care se face citirea semnalului analogic trimis pe ieșirea analogică a senzorului MQ-2. Funcția valueSensor este apelată în funcția loop a programului astfel încât concentrația de gaz va fi afișată pe toată durata excuției preogramului.
Figura III.2.6 Funția valueSensor
CAPITOLUL IV. Implementare hardware
IV.1 Schema circuit
Implemetarea hardware reprezintă aplicarea practică a părții software, și este alcătuită dintr-un număr de componente care conectate intr-un circuit pot îndeplini anumite cerințe ale utilizatorului. Orice proiect care va conține o partea software, acesta trebuie în mod implicit să conțină și partea hardware care face posibilă rularea softului.
Primul pas pentru realizarea aplicației a fost crearea circuitului intr-un simulator pentru a putea verifica și testa funcționalitatea circuitului fără a exista posibilitatea de avariere a componentelor. De asemenea cu ajutorul unui simulator putem să ajustăm parametri unui circuit și ne oferă posibilitatea de a interacționa cu o mulțime de instrumeste de măsura de care nu dispunem în momentul în care dorim să implementăm fizic acel circuit.
Pentru simularea circuitului am folosit versiunea demo a programului Proteus. Acesta nu se găsește în varianta gratuită, ci doar dacă este cumpărat. Cu ajutorul acestui program se poate testa circuitul din punct de vedere funcțional, în momentul când creem un proiect în Proteus, avem posibilatea de a ne crea și traseul pe placă, iar în cazul în care folosim microcontroller ce trebuie programat avem posibiliatea de a simula încărcarea codului sursă în memoria microcontroller-ului. În situația în care dorim să creem simulăm diferite circuite și nu dispunem de acele componente în librăria programului, Proteus permite importarea unor noi librării pe care le putem utiliza în crearea proiectelor.
Circuitul detectorului de gaz(fig de mai jos) constă în conectarea simultană a modulelor la microprocesorul Atmega328. În conectarea senzorului de gaz cu Arduino se foloseste pinul de ieșire analogică a senzorului care este conectat la pinul de intrare A4 analogică a plăcii, și pinul de ieșire digitală a senzorului cu pinul 7 al plăcii Arduino, pin definit ca și intrare digitală, și prin care este trimis semnalul de detcție.
Modulul bluetooth este conectat la placa de dezvoltare prin pinii 9 și 10 (pinul 9 folosit pentru trimitere date spre Arduino, iar pinul 10 folosit pentru recepționarea datelor), pini care sunt folosiți în comunicarea serială cu modulul bluetooth.
Conectatea ecranului în circuit se face prin cei 4 pini de date (D4 – D7) deoarece de face transfer de date pe 4 biți și nu e nevoie de 8 pini, și se mai folesc pinii 4 pentru a indica ca se trimit caractere și pinul 6 care validează printr-un impuls caracterele trimise. În pinul 3 (pinul VEE) al ecranul se conectează un potențiometru de 10KOhm la 5v si GND care servește la reglarea luminozității ecranului. Montarea unui potenșiometru de valoare mai mare sau mai mică va influența luminozitatea ecranului astfel înât acesta nu va putea atinge punctul minim sau maxim de luminozitate.
Buzzer-ul este conectat în circuit la pinul x al plăcii Arduino, pinul x fiind definit ca și ieșire de semnal. Pe lângă atenționarea vizuală primită din partea ecranului, am adăugat câteva led-uri care semnalizează următoarele evenimente:
Led-ul albastru este conectat la pinul de ieșire microcontroller-ului care trimite semnal spre electrovalvă. Alimentarea led-ului este dimensionată cu un rezistor a cărui valoare este calculată cu formula Legii lui Ohm, stiind că tensiunea este 5v, iar intersitatea curentului prin led este de 25 mA.
I =U/R – Legea lui Ohm
I = 0.025 A
U (led)= 2v
R= U/I = 3/0,025 = 120 Ohm
Din acest calcul reiese că pentru un led care are nevoie de 2v pentru funcționare, alimentarea acestuia făcându-se la 5v atunci avem nevoie de o rezisatență de 120 Ohm pentru a funcționa la o tensiune de lucru necesară led-ului.
Led-ul galben ne indică faptul că atunci când acesta funcționează ne indică faptul ca aplicația este pregatită pentru eventuale detecții.
Am ales să folosec led-uri ca și martor de semnal deoarece au autonomie ridicată și un consum scăzut de energie.
Modul de verificare a funcționării corecte a electrovalvei l-am implementat prin intermediul unui fir care trimite un semnal de 5v de la electrovalvă spre pinul 8 al plăcii Arduino. Datorită faptului ca electrovalva la funcționa cu o tensiune de alimentare de 5v, microcontroller-ului va sesiza imediat dacă acea tensiune de 5v nu va fi primită în cazul unei deconectări. În cazul în care se va folosi o tensiune mai mare de 5v pentru alimentarea electrovalvei, semnlalul trimis spre pinul 8 va putea fi demensionat astfel încât placa Arduino să primească o tensiune maximă de 5v.
Semnalul transmis spre electrovalvă are o tensiune de 5vși va intra în baza unui tranzistor NPN (BC547) care va crea conducție într colectrorul și emitorul tranzistorului care la urma sa va închide circuitul releului care va acționa electrovalva. Tranzistorul are rol de protecție a microprocesorului datorită faptului că releul este contruit dintr-o bobina care atunci când deschide circuitul va trimite un impuls spre microprocesor căreia îi poate fi afectată funcționarea. Tranzistorul are rolul și de a acționa releul la o tensiune mai mare de 5v care să fie suficientă pentru a putea închide circuitul în releu. Releul folosit în aplicație poate fi folosit în tensiuni de până la 250V și o intensitate maximă de 8A, iar bobina releului acceptă o tensiune de lucru de maxim 12v.
Pentru ca toate componenetele să funcționeze la tensiune de lucru optimă, fără să existe situații în care trebuie să schimbăm sau să încărcăm acumulatori, am implemetat o sursă de alimentare care furnizează componentelor tensiunea de lucru dar care în același timp încarcă un acumulator. Rolul acumulatorul este de a asigura funcționare aplicației în situatiile în care sunt întreruperi de energie electrică.
Energia electrică este conservată într-un acumulator plumb-acid 6v 5Ah. Acest tip de acumulatori au avantajul că pot conserva o cantitate mare de energie pe o perioadă indelungată de timp. Aceștia necesită o atenție mare la încărcare deoarece exită risc de explozie în cazul în care încărcarea se face forțat la o tensiune mult prea mare. Tensiunea aplicată la bornele acumulatorului în timpul unei încărcări nu trebuie să depăsească 2v peste tensiunea de lucru a acumulatorului. Astfel la un acumulator de 6v tesiunea maximă aplicată la bornele acestuia nu trebuie să fir mai mare de 8v. Intensitatea curentului în timpul unei încărcări fără să existe riscul unor accidente trebuie să fie de 10% din capacitatea totală a acumulatorului, în acest caz un acumulator de 5A se va încărcă cu o intensitate de 500mA timp de 10 ore.
Sursa de alimentare
Sursa de alimentare constituie un element important în realizarea unuei aplicații care să afore siguranță și stabilitate.
Toate componente aplicației sunt alimentate la o tensiune de 5v, astfel încât placa Arduino nu furnizează tensiune de alimentare, fiind folosită doar pentru prelucrarea semnalelor.
Circuitul sursei de alimentate a fost simulat cu ajutorul unui program gratuit Livewire, un program util celor ce doresc să studieze în profunzime principiul de funcționare a circuitelor electrice, dar cu acest program se poate crea traseul unui circuit centru a-l putea implemeta pe placă. Programul Livewire oferă o altă viziune asupra circuitelor electrice astfel încât putem observa sensul curentului în circuit, iar în acest fel ne putem da seama foarte ușor de eventuale greșeli de proiectare,
Sursa de alimentare este alcătuită dintr-un transformator care furnizează o putere aparentă de 10 VA și o tensiune de 12V, un regulator LM350 cu care utilizatorul poate să își regleze tensiunea de lucru și un tranzistor care servește la încărcarea acumulatorului. Regulatorul de tensiune LM350 poate să furnizeze o tensiune reglabilă între 1.2v și 33v la o intensitate de curent de până la 3A. În componența circuitului se află o doiodă zenner folosită pentru limitarea tensiunii de alimentare a baterie, un potențiometru și un led care indică că acumulatorul s-a încărcat.
Când tensiune ala baterie este sub 7.5v, atunci curentul de la regulator va trece spre baterie, în acest caz dioda zenner nu va crea conducție deorece tot curentul va fi absorbit de baterie. În miomentul în care tensiunea la bornele acumulatorului va depăși 7.5v, încărcarea bateriei se va opri deorece dioda zenner primește suficientă tensiune pentru a permite curentului să treacă prin ea. În acest fel baza tranzistorului va primi suficient curent pentru a crea conducție între colector și emitor astfel încât curentul din regulator va trece prin tranzistor direct la masă, astfel încâled-ul roșu va semnala că acumulatorul este încărcat.
IV.2 Implementarea traseul de circuit pe placă
Pentru ca aplicația să primească un alt aspect iar firele aceteia să fie mai ușor de recunoscut, am decis să implementez circuitul pe o placă de textolit care este acoperită de cupru doar pe o singura față. Dimensiunea plăcii pe care am folosit-o este de 150 mm x 200 mm.
Primul pas a fost să creez circuitul în Livewire, un program care permite și simularea circuitelor, și să mă asigur că toate traseele sunt executate corect.
Figura IV.2.1 Circuitul în Livewire
Pe urmă circuitul generat de program a fost printat pe foaie luciosă subțire cu o densitate de 135 mg. Printarea fiind făcută în modul de lucru a programului fără să mai am contur în circuit
Figura IV.2.2 Traseu printat pe foie luciosă
După printarea traseului se ia foaia și se lipește de placa de textolit pe parte pe care se află cuprul. Pentru a se face lipire traseului pe placă, atît foia cât și placa se încălzesc uniform timp de 7 – 8 minute. Ca exemplu pentru încălzirea foaiei și a plăcii am folosit un fier de călcat.
În momentul când placa este foarte bine încălzită și călcată, acesta se pune în apă până se dezlipește toată hârtia, astfel încât pe placă rămane doar traseul.
Figura IV.2.3 Dezlipirea hârtiei de pe placă
Din cauză că fiind prea nerăbdăor nu am înncășzit suficient placa, traseul avea unele zone unde nu s-a imprimat corect iar la dizolvarea în acid riscam să întrerup traseul. Ca și soluție de dezvoltare am desenat manual tot traseul cu lac, acesta nefiind afectat de acid.
Figura IV.2.4 Desenare manuală traseu
După desenarea traseului am continuat cu introducerea plăcii în clorură ferică. Este un acid folosit pentru corodarea cuprului de pe placă. Clorura ferică este toxică fiind interzisă utlizarea fără mânuși de protecție. Placa a fost ținută timpd e 15 minute în acid pentru a se putea elimina orice urmă de cupru care la rândul său ar putea să creeze câmp electromagnetic datorită tensiunii ce îl străbate.
Figura IV.2.5 Introducerea plăcii în acid
Figura IV.2.6 După 13 minute în clorură ferică
În final placa se spală de acid și pe urmă se curăță de lac cu diluant sau acetonă,fiind gata de utlizare. Ultimul pas constă în găurirea plăcii în locurile unde se introduc componentele. Procesul unei asemenea plăci durează aproximativ o oră în condițiile în care am desenat traseul manual
Figura IV.2.7 Îndepărtarea acidului de pe placă
Figura IV.2.8 Varianta fără găuri a plăcii
CAPITOLUL V. Concluzii
Posibile viitoare dezvoltări
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: PROIECTAREA ȘI IMPLEMETAREA UNUI DETECTOR DE GAZ CU NOTIFICARE TELEFONICA COORDONATOR ȘTIINȚIFIC ș.l. dr. ing. POSZET OTTO ABSOLVENT ȘIMON GABRIEL… [311183] (ID: 311183)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
