FUNDAȚIA PENTRU CULTURĂ ȘI ȊNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [301519]
FUNDAȚIA PENTRU CULTURĂ ȘI ȊNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA IOAN SLAVICI” [anonimizat] . Dr . Ing . Mircea Vlăduțiu
ABSOLVENT: [anonimizat]2016-
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA IOAN SLAVICI” [anonimizat] . Dr . Ing . Mircea Vlăduțiu
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]__Crețan Claudiu Marian__________
1). Tema proiectului de finalizare a studiilor:_Proiectarea și realizarea unui sistem de alarmă cu avertizare la efracție cu Arduino __________________________________________________
________________________________________________________________________________
________________________________________________________________________________
2). Termenul pentru predarea proiectului de diplomă______07.06.2016____________________
3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor ________________
________________________________________________________________________________
________________________________________________________________________________
4). Conținutul proiectului de finalizare a studiilor: La începutul proiectului s-a [anonimizat]-[anonimizat]. Etapa de proiectare a [anonimizat]: [anonimizat], proiectarea hardware și proiectarea software. În prima subetapă, s-a ținut cont de elementele constructive ale sistemului de alarmă și de limitările acestuia. Subetapa a doua a fost destinată proiectarii hardware în care s-a reușit modelarea sistemului. Partea de proiectare software a fost realizată în a treia subetapă unde s-a ținut cont de mediul de programare și de flexibilitatea acestuia. Ultima etapă a fost cea de testare și depanare a sistemului realizat unde s-au identificat și câteva probleme care nu au fost prevăzute și care au fost tratate pentru a nu conduce la nefuncționalitatea sistemului de alarmă.
5). Material grafic:________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
6). Locul de documentare pentru elaborarea proiectului de diplomă:_____________________
Biblioteca universitații politehnica si biblioteca universitații de vest ______________________
________________________________________________________________________________
7). Data emiterii temei _______20.10.2015____________________________________________
Coordonatori științifici
(Prof . Dr . Ing . Mircea Vlăduțiu),
REFERAT
PRIVIND PROIECTUL DE DIPLOMĂ
A
ABSOLVENTULUI / ABSOLVENTEI : …..Crețan Claudiu Marian…..
DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Calculatoare
PROMOȚIA 2016
Titlul proiectului Proiectarea și realizarea unui sistem de alarmă cu avertizare la efracție cu Arduino ………………………………………………………………………………………
Structura proiectului :……………………………………………………………………
……………………………………………………………………………………………..
……………………………………………………………………………………………..
……………………………………………………………………………………………..
……………………………………………………………………………………………..
……………………………………………………………………………………………..
Aprecieri asupra conținutului proiectului de DIPLOMĂ (finalizare a studiilor), mod de abordare, complexitate, actualitate, deficiențe
Lucrarea de față se caracterizează printr-o construcție echilibrată cu o bună ponderare între dezvoltarea noțiunilor teoretice și descrierea aplicativă, este corect divizată pe capitole și paragrafe, între care există o bună creșcență. Lucrarea conține o parte aplicativă consistentă, implicând soluții cu caracter de originalitate hardware și software. Autorul dezvoltă în mod corect elemente teoretice esențiale inserându-le în lucrare doar ȋn masura ȋn care contribuie la întelegerea părții aplicative.
Lucrarea tratează o problematică de strictă actualitate, luând în considerație importanța domeniului sistemelor de alarmă antiefracție.
Aprecieri asupra proiectului (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)
Sunt utilizate referințe bibliografice de marcă în domeniu, totuși investigația de literatură de specialitate este limitată. Sursele bibliografice sunt alese în mod corespunzător. Consider că tematica dată spre rezolvare este integral soluționată. Materialul grafic este executat în mod îngrijit, fiind complementar părții redactate. Redactarea lucrării este realizată într-o manieră concisă și clară, autorul alegând în mod corect sursele de literatură.
(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea menționându-se contribuția autorului)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
4.Concluzii (coordonatorul proiectului trebuie să aprecieze valoarea proiectului întocmit, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării proiectului, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)
În baza celor mai sus menționate, apreciez că lucrarea elaborată este bazată pe un amplu studiu de literatură specializată, în care absolventul a dovedit reale competențe în domeniu. De asemenea, apreciez rigoarea și seriozitatea de care autorul a dat dovadă în elaborarea lucrării de licență.
5. Redactarea proiectului respectă ………………………………………………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2016 și propun acordarea notei ………………
Oradea,
Data
Conducător științific
Prof . Dr . Ing . Mircea Vlăduțiu
Cuprins
Capitolul 1. Introducere ………………………………………………..………… 1
Capitolul 2. Aspecte generale despre sistemele de alarmă…………….…………3
2.1 Obiectivele unui sistem de alarmă……..…………………………………..4
2.2 Tipuri de sisteme de alarmă……..…………………………………………4
2.3 Structura unui sistem de alarmă…..…………… …………………………6
2.4 Componentele sistemului de alarmă…………..………………………….9
Capitolul 3. Proiectarea infrastructurii hardware a sistemului de alarmă……11
Proiectarea unitații de comandă………..…………………………..……….11
Placa de dezvoltare Arduino ……….. ……………………………………13
Funcționalitatea de calcul a sistemului de alarmă…………..….….……14
Alimentarea plăcii …………………………………………………………..15
Memoria plăcii………………………………………………………………16
Interconectarea …….……………………………………………………….17
Asamblarea componentelor ……………………….………….…..……… 17
Cartela Sim a sistemului de alarmă………………………………18
Monitorul LCD al sistemului de alarmă…………………………20
Modulul de relee cu patru contacte și fotorezistorul utilizați în proiect………………………………………………………………22
Tastatura și modulul RTC al sistemului de alarmă……………..24
Senzorii de mișcare (PIR) folosiți în sistemul de alarmă……….25
Buzzerul folosit în sistemul de alarmă……………………………26
3.7.7 Senzorul de gaz (LPG) folosit în proiect…………………………27
Capitolul 4. Proiectarea infrastructurii software a sistemului de alarmă.………30
4.1 Funcțiile unui sistem de alarmare …..…………………………………….31
4.2 Structura programului …………………………………………….……… 33
4.3 Structura blocurilor software …………..…………………………………. 33
Capitolul 5. Testarea sistemului de alarmă proiectat….…………….…………. 42
5.1 Simularea prin defecte injectate ………………………………………….45
Capitolul 6. Concluzii ……….…..………………………………………………….. 46
Capitolul 7. Bibliografie …..………………………….………………….…….… 47
Capitolul 8. Anexe… ……………………………………………………………….. 48
Capitolul 1
Introducere
Dacă ar fi sa abordăm din punct de vedere istoric apariția și evoluția sistemelor de alarmă, am putea să mergem destul de departe. Acest concept, al alarmării oamenilor dintr-un anumit loc, în caz de intrare a străinilor poate sa fie urmărit până la vremea ȋn care câinii avertizau oamenii cu privire la prezența răufăcătorilor. Lătratul lor era semnalul care ȋi alerta pe oameni cum că ceva ar fi în neregulă. Mai târziu, inovațiile au condus la realizarea primului sistem de alarmare cu clopote. Prima alarmă antiefracție a fost inventată de Augustus Papei ȋn 1853, ulterior drepturile si îmbunătățirile au fost achiziționate de Edwin T. Holmes 1858 supranumit și tatăl industriei de alarmare antiefracție. Astăzi, sistemele de securitate au ajuns extrem de complexe, îmbinând o mulțime de funcții și aducând numeroase îmbunătățiri sistemului antiefracție din perioada respectivă și conducând astfel la sistemul de alarmare actual.
Un sistem de alarmă este ȋn esență un set de dispozitive electronice ce sunt configurate să alerteze posesorii unui imobil, cât și autoritățile locale (sau reprezentanții firmei de pază și protecție) atunci când se detectează o pătrundere nepermisă. Sistemele de protecție a locuințelor, ȋn această formă, au evoluat enorm încă de acum doua secole, mai precis ȋn anul 1874, atunci când a fost implementată o soluție electrică simplă, conectată la un transmițător ce trimitea impulsuri de-a lungul unui fir de cupru, până la un emițător. Primii posesori ai acestor soluții de alarmare antiefracție au fost indivizii mai înstăriți ȋn principal pentru că erau scumpe și foloseau semnalele Morse pentru alertarea autorităților. Ȋn caz de declanșare, se activa un sunet continuu de intensitate ridicată, care ȋi alarma pe cei ce locuiau ȋn respectiva casa, iar monitorizarea era realizată de stațiile de pompieri, ce preluau aceste semnalele Morse.
Sistemele de alarmă ȋn caz de efracție sunt echipamente destul de des întâlnite ȋn zilele noastre ȋn magazine, instituții financiare bancare, aeroporturi, fabrici, etc și devin din ce ȋn ce mai des întâlnite și ȋn domeniul privat al locuințelor. Datorită gamei largi de produse, sistemele de alarmare pot fi catalogate ȋn funcție de complexitatea circuitului ȋn: sisteme simple, sisteme complexe, sisteme cu înregistrare video, sisteme ce alertează autoritățile sau chiar proprietarul, sisteme ce pot fi programate să funcționeze ȋn diferite moduri cu control sau fără, de la distanță.
Dezvoltarea capacitații de prelucrare a informațiilor precum și a tehnologiilor de comunicare au extins funcțiile de securitate a unui sistem de securitate, astfel încât ȋn momentul de față pot fi monitorizate diverse tipuri de evenimente ce descriu o situație potențială de pericol.
Domeniul de aplicabilitate pentru alarme este foarte vast și se pleacă ȋn general de la sisteme rezidențiale la sistemele profesionale de înalta securitate, însă principiile care stau la baza funcționarii unui sistem electronic de securitate sunt de regula aceleași. Realizarea detecției unui eveniment se bazează atât pe identificarea unor parametri din mediu cât și pe măsurarea acestora, fiind asociați evenimentului respectiv. Operațiunea de măsurare presupune interacțiunea dintre doua sisteme: unul care conține parametrul ce urmează a fi măsurat, iar celălalt fiind cel ce realizează operația de măsurare.
Sistemele de alarmă și componentele lor mai pot fi clasificate și în funcție de nivelul de securitate oferit, de nivelul de risc la efracție, de natura locurilor protejate, de evaluarea conținutului locurilor protejate cât și de profilul posibililor intruși.
Capitolul 2
Aspecte generale despre sistemele de alarmă
Instalarea unui sistem de alarmă în caz de efracție este foarte important pentru a proteja afacerea dumneavoastră cât și pentru protejarea bunurilor din casa dumneavoastră și nu este un moft necesar sau o cheltuială inutilă. De foarte multe ori, atunci când cineva a fost păgubit de infractori, solicită instalarea unui sistem de securitate, în loc să asigure locuința preventiv pentru a elimina neplăcerile cauzate de furturi sau distrugeri iar banii folosiți pentru recumpărarea bunurilor furate să fie transformați în bani pentru concediu.
De regulă, spargerile de locuințe au loc datorită tratării cu superficialitate a măsurilor de siguranță ignorându-se totodată mijloacele mecanice de protecție cât și mijloacele electronice de detecție și avertizare. Având astfel de premize, infractorii găsesc de cele mai multe ori o modalitate facilă pentru a-și atinge scopul. Protecția bunurilor dumneavoastră se poate realiza cu costuri relativ mici prin instalarea unor astfel de sisteme tehnice, ce pot avertiza pătrunderea în spațiul supravegheat a persoanelor nedorite.
Un sistem de alarmă adaugă un plus semnificativ de liniște familiei și afacerii tale și are un puternic efect de descurajare asupra infractorilor.
Montarea unui sistem de alarmă antiefracție are ca principale avantaje, alertarea cât și posibilitatea realizării conectării la un dispecerat de intervenție, iar montarea unei sirene externe cât și a strimerelor de marcaj, descurajează infractorii de a pătrunde într-un spațiu protejat.
Anumite sisteme de alarmă fac posibilă comandarea sistemului prin telefonul mobil cât și controlul angajaților unei firme în caz de un eveniment neplăcut prin coduri individuale pentru fiecare angajat, pentru a putea urmări cine a armat sau dezarmat alarma. Alarmele se pot lega atât prin cablu cât și prin wireless și sunt recomandate pentru hale cele prin cablu iar pentru locuințele amenajate cele wireless.
Mai mult decăt atăt, securitatea este interdependentă de confort, astfel că instalarea unui astfel de sistem oferă beneficiarilor un confort sporit.
2.1 Obiectivele unui sistem de alarmă
Lucrarea de fata își propune să dezvolte un sistem de securitate, care are capacitatea de a aduna informații din mediu cu ajutorul diverșilor senzori existenți pe piață, fiind procesate apoi de către microcontrolerul folosit de sistemul nostru de avertizare. Sistemul de alarmă la efracție este un prototip și are ca scop prezentarea principalelor caracteristici și componente generale ale unui sistem de securitate precum și formarea unei imagini de ansamblu. Sistemul de securitate descrie modul de funcționare atunci când detectează pătrunderea persoanelor neautorizate în spațiile protejate, semnalând sonor și avertizând în același timp proprietarii imobilelor prin transmiterea de mesaje pe telefonul mobil în caz de alarmă la efracție sau scurgeri de gaz.
Principalele caracteristici ale alarmei asigură accesul în sistem printr-un mecanism de securitate, îndeplinește misiunea atât pe timpul zilei cât și al nopții, integrând funcții de testare, detecție și avertizare și este concepută în așa fel încât sistemul poate fi extins prin introducerea unor noi senzori sau echipamente.
Ȋn cazul folosirii, acestea vor fi integrate în dispozitivele periferice deja existente cu modificări minime ale acestora. Aplicația care desăvârșește sistemul are o tentă practică, care exemplifica legarea si controlarea echipamentelor introduse în sistemul de alarmă.
Proiectul este util deoarece arată cum anume poate fi creată o aplicație interesantă folosind un nivel nu foarte avansat de cunoștințe. De asemenea, se pot observa toți pașii care au fost făcuți în realizarea acestui proiect precum si ce trebuie să fie luat în considerare atunci când vom proiecta un sistem de securitate definind prioritățile proiectului, bugetul și robustețea.
2.2 Tipuri de sisteme de alarmă
Sisteme de alarmă care se găsesc pe piață în prezent se pot clasifica în :
a) sisteme wireless
b) sisteme cu fir
c) sisteme hibride, sau mai precis un mixt între sistemele cu fir și cele fără fir
Sistemele wireless sau sisteme de alarmă fără fir sunt cele mai simple pentru a fi instalate fiind totodată și cele mai populare pentru casele construite deja. Ele sunt soluția perfectă pentru instalarea unui sistem de securitate într-o locuință, unde trasarea de fire este imposibilă . Printre principalele avantaje și dezavantaje ale sistemelor de alarmă wireless enumerăm:
Avantaje:
Costuri reduse
Sunt mai flexibile atunci când se adaugă senzori suplimentari
Nu necesită nici o cablare, cu excepția conexiunii panoului principal la o priză de perete
Rapid si simplu de instalat, evitând-se angajarea unui profesionist pentru a instala alarma
Senzori si dispozitive care pot fi amplasați aproape oriunde, evitând astfel problemele de cablare
Dezavantaje:
Senzori wireless destul de scumpi
Fiecare dispozitiv va rula pe baterii, astfel încât vor trebui verificați periodic și schimbate bateriile acolo unde este cazul
Bateriile încărcate necorespunzător pot duce la alarme false
Distanțele mari ar putea deveni o problemă
Sisteme de alarmă cu fir sau cablate sunt ideal de instalat în casele noi construite deoarece nu necesită redecorări sau lucrări de reamenajare, fiind instalate odată cu construcția propriu-zisă. Acest tip de alarmă oferă un plus de securitate fată de alarmele wireless deoarece panoul de control nu poate fi dezactivat prin lovire sau bruiere.
Principalele avantaje sunt:
Oferă o durabilitate și longevitate mai mare
Sunt mai puțin costisitoare decât cele wireless și nu necesita baterii
Cablurile și detectoarele pot fi supuse unor verificări de diagnosticare
Dezavantaje:
Va fi nevoie de cabluri ce unesc fiecare senzor de panoul central
Unele limitări a tipurilor de detectoare
Sistemele de alarmă hibride au încorporate caracteristici atât pentru wireless cât și pentru folosirea cablurilor. Sistemul permite utilizarea ambilor senzori atât prin cablare cât și prin wireless și se vor economisi bani acolo unde cablul se poate instala ușor, și comoditatea acolo unde cablul nu ajunge prin folosirea senzorilor fără fir.
Avantaje:
Mai puțin costisitoare pe senzori deoarece se poate folosi cablul
Ȋn zonele incomode pentru cablare se pot folosi senzori fără fir
Unele sisteme cablate pot fi convertite la sisteme hibride prin conectarea unui receptor fără fir.
Dezavantaje:
Sunt mult mai scumpe decât cele cablate cât și decât cele wireless
Necesită instalarea unui tehnician profesionist
Frecvența radio nu este dedicată unei anumite zone
.
2.3 Structura unui sistem de alarmă
Aproape orice proiect, fie profesionist sau amator, începe cu un design mic pe o bucată de hârtie și apoi trece foarte repede în starea fizică cu ajutorul componentelor ce desăvârșesc un sistem de securitate.
Înainte de a putea concepe un sistem de securitate trebuie să ținem cont și să luăm ȋn considerare elementele constructive ale acesteia, precum și detaliile corespunzătoare enumerate mai jos:
Estimarea suprafeței în metri pătrați a locurilor unde se instalează alarma
Determinarea punctelor de intrare în orice zonă protejată și orice ușa pe care s-ar putea accede în mod normal în perimetru
Dezvoltarea unui plan a tuturor posibilelor puncte de pătrundere inclusiv garduri
Alegerea locului în care trebuie montată centrala antiefracție
Utilizarea sistemelor multi treaptă, astfel încât dacă infractorul trece printr-un mijloc de protecție să fie întâmpinat de altul
Dacă avem zone ce se pot escalada ușor, trebuie luate în considerare pentru a fi evitate eventualele pătrunderi
Un nivel de securitate bun presupune o alertare timpurie sau chiar anticipă evenimentul de efracție prin instalare de diverși senzori
Elementele fizice care compun un sistem de alarmă trebuie să suporte toate cerințele tehnice pentru partea de software și se împart în:
Centrala antiefracție (Fig 1.1)- care este creierul unui sistem de alarmă. Acest dispozitiv inteligent citește permanent starea detectoarelor și contacte conectate la el. Mai mult, centrala antiefracție poate activa diverse contacte să urmărească anumite stări în vederea declanșării sirenelor, aprinderii luminilor sau controlului altor echipamente din locuință. Sistemele de alarmă și componentele lor mai pot fi clasificate în funcție de nivelul de securitate oferit, de nivelul de risc la efracție, natura locurilor protejate, de evaluarea conținutului locurilor protejate precum și de profilul posibililor intruși.
Detectoare de prezență – pot fi atât de interior cât și de exterior și sunt echipate cu senzor de tip PIR sau microunde sau combinații ale acestora și se folosesc pentru detectarea prezenței persoanelor care pătrund nepermis într-un spațiu protejat, fiind totodată și cele mai folosite detectoare pentru sistemele de alarmă, deoarece asigură cel mai bun preț pe dimensiunea spațiului protejat. Strict vorbind, senzorii PIR nu detectează mișcarea, mai degrabă, ei detectează schimbări bruște ale temperaturii într-un anumit punct.
Prezența în fața acestuia focalizează imaginea sursei pe suprafața acestuia, și va genera apariția unei succesiuni de imagini „calde” ale sursei, suprapuse peste fondul „rece” ambiental, exact ca și deplasarea mai multor umbre generate. Dacă fondul ambiental este tot atât de cald precum sursa, senzorul PIR nu va mai produce nici un semnal electric. Principiul detecției mișcării în infraroșu constă tocmai în baleierea realizată cu ajutorul lentilei Fresnel a suprafeței senzorului cu contraste între cald si rece.
Atunci când un intrus intră în raza lor de detecție, temperatura camerei în care se află este mai mică decât temperatura corpului intrusului, fapt ce conduce la declanșarea detecției.
Contacte magnetice – se folosesc la uși si geamuri, fiind compuse din doua părți distincte: una mobila care se montează pe ușa sau geam și cealaltă fixă care se montează pe tocul ușii sau al geamului, iar atunci când cele doua parți se depărtează una de cealaltă se declanșează alarma. Dezavantajul principal al acestor contacte este că dacă se sparge doar geamul sau ușa fără să se deschidă, acestea nu vor declanșa alarma .
Detectoare de geam spart – acestea sunt utilizate după cum le spune și numele pentru a detecta spargerea unui geam, funcționând pe principiul analizei spectrale a sunetului produs de spargerea unei suprafețe vitrate. Acest sunet are în componența sa, armonici superioare la o anumită intensitate sonoră, făcând ca sunetul să poată fi deosebit de alte zgomote ambientale
Bariere cu microunde sau infraroșu – acestea sunt compuse tot din două părți ca și contactele magnetice, dar având în componența lor un emițător și un receptor care formează împreună o rază invizibilă între cele două, declanșând alarma dacă această rază este întreruptă și se folosesc cel mai des în exterior pentru a delimita spațiul protejat.
Diferite module de tastaturi – sunt principalele puncte de control ale sistemelor de securitate, permițând configurarea sistemului de securitate cum ar fi: armarea, dezarmarea, consultare de evenimente, reglarea datei și a ceasului, precum și vizualizarea informațiilor prin intermediul unui monitor. Acestea pot fi de tip TouchScreen, Led, Lcd, sau cu butoane.
Senzori de vibrații – acești tipi de senzori sunt utilizați cu precădere în protecția pereților tezaurelor dar și a suprafețelor vitrate și conțin un traductor care transformă semnalul de tip acustic în semnal electric și astfel semnalul este prelucrat de sistem, dând alarma în funcție de rezultat.
Senzorii de șoc – sunt folosiți de obicei la seifuri, detectând unda de șoc produsă de o lovitură și transformând-o în semnal electric.
Sirene de interior și exterior – sunt utilizate frecvent și au rolul de a avertiza acustic și luminos în caz de alarmă, minimalizând efectele negative în situații de urgență.
Telecomenzile, în anumite situații, dacă sistemul antiefracție o permite, se pot utiliza pentru armarea și dezarmarea de la distanță a sistemului, făcându-se mai simplu.
Comunicatoare – sunt folosite pentru a transmite mesaje către telefoane mobile sau dispeceratelor de monitorizare, în caz de alarmă, transmisia făcându-se pe linie telefonică terestră, GSM, GPRS sau internet.
Senzorul geofonic (seismic)-este utilizat în aplicații de înalta securitate, fiind asemănător și având o funcție similară cu senzorul de vibrație, diferența celor doua detectoare făcându-se în funcție de spectru de frecvență analizat.
Pedale și butoane de panică – acestea sunt folosite cel mai des în casierii, ghișee și în locuri unde se lucrează cu publicul, generând o alarmă silențioasă la apăsare care este transmisă doar la dispeceratul de monitorizare.
Tastările sunt niște aparate mici, montate pe perete care funcționează ca interfața om mașina la sistem. Unele tastaturi au în plus fața de butoanele specifice indicatoare luminoase sau un mic ecran multicaractere sau pe ambele.
Acestea sunt componentele principale ale oricărui sistem de securitate având rolul de a evidenția apariția unui eveniment ce este detectat din punct de vedere funcțional în câmpul de supraveghere a elementelor sistemului. Aceste elemente convertesc o mărime neelectrica specifică fiecărui element într-o mărime electricaă prelucrabilă.
2.4 Componentele sistemului de alarmă
Întreaga funcționalitate a sistemului este desfășurată în jurul unității de control și este realizată în general cu circuite specializate pe o structură hard cu microcontroler, care este de fapt un microcalculator specializat care supraveghează și guvernează funcționalitatea întregului sistem.
Componentele necesare realizării sistemului de alarmă sunt următoarele:
-Arduino Mega
– Arduino GSM Shield
– Cartela SIM GSM
– Alimentator de rețea DC 9V 2A
– Ecran LCD 16×2
– Potențiometru de 10KΩ
– Placa modul cu patru relee
– Un Fotorezistor
– Plăci de teste cu lipire
– RTC DS1302
– Doi senzori PIR
– Un senzor GAZ
– Fire de interconectare
– Doua leduri
– Tastatura 3X4
– Cablu USB (pentru alimentare și comunicare)
– Mini Difuzor
– Rezistori
Toate aceste componente sunt gestionate de unitatea de control (U.C), care gestionează informațiile primite de la senzori și dirijează întreaga activitate în baza softului instalat. Dacă în perimetrul unde a fost instalat sistemul de alarmare se produce un eveniment, acesta intră în procedura de alarmare împreuna cu blocurile prezentate mai jos în fig 1.2. Activarea și dezactivarea sistemului se face local prin introducerea parolei.
Întreg sistemul de alarmă primește energie electrică atât prin portul USB al calculatorului cât și prin alimentarea externă de la o sursă de curent. Legătura între componentele sistemului de alarmă se realizează cu ajutorul liniilor de legătură cu contact fizic (fire conductoare). Aceste linii de legătură conectează elementele dintre unitatea de control și componentele senzoriale.
Acestea au rolul de a avertiza sau informa U.C despre starea zonelor în care au fost amplasate iar echipamentul este prevăzut a funcționa de la o sursă externă și nu necesită alimentare cu baterii.
Capitolul 3
Proiectarea infrastructurii hardware a sistemului de alarmă
Progresele care s-au realizat în domeniul microcalculatoarelor au avut începuturile în dezvoltarea tehnologiei circuitelor integrate și a metodologiilor de proiectare .
Această dezvoltare a făcut posibilă înmagazinarea a sute de mii de tranzistoare într-un singur cip, dezvoltând astfel o premiză pentru producția de microprocesoare. Dorința de performanță tot mai mare a condus la îmbunătățiri rapide care au permis fabricarea de microprocesoare cu tehnologii tot mai complexe. Microprocesoarele încorporează funcțiile din unitatea centrală de procesare, fiind totodată un dispozitiv multifuncțional și programabil care acceptă date digitale ca intrare, procesându-le în conformitate cu instrucțiunile stocate în memoria sa.
3.1 Proiectarea unității de comandă
Ȋntr-un mod general, un controler ("controller" – este o expresie de origine anglo-saxonă, având un domeniu de cuprindere destul de variat) este o structură electronică care este destinată controlului unui proces, sau mai obiectiv, este interacțiunea dintre caracteristicile sale cu mediul exterior fără să fie necesară intervenția mâinii umane. Controlerele au fost realizate în tehnologii pur analogice, folosind componente electromecanice sau componente electronice discrete (un exemplu fiind releele). Primele controlere au făcut apel la tehnica numerică modernă și au fost realizate inițial pe baza logicii cablate cu standardul MSI SI SSI a circuitelor integrate numerice și a unei electronici analogice destul de complexe uneori, motiv pentru care "performau" prin dimensiuni foarte mari, un consum energetic la înălțime, și nu de nenumărate ori, o fiabilitate care lăsa de dorit.
Apariția microprocesoarelor și utilizarea lor într-un mod general a dus la o reducere consistentă a dimensiunilor, consumului și a costurilor, realizându-se în același timp și o îmbunătățire a fiabilității. La ora actuală există o serie de controlere de calitate, care au fost realizate în jurul unor microprocesoare de uz general, cum ar fi: Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.
Ȋn măsura în care procesul de miniaturizare a continuat, a devenit posibil ca, aproape toate componentelor utile realizării unor tipuri de structuri să fie integrate la nivelul unui singur microcircuit . Microcontrolerul poate fi o soluție viabila pentru problemele controlului care se dorește a fi manipulat cu ajutorul unui singur circuit.
Cu privire la denumirile și acronimele utilizate, un microprocesor de uz general este grupat ca MPU (Microprocesor Unit), iar un microcontroler este, de regulă, dispus ca MCU, cu toate că prima semnificație a acestui acronim este MicroComputer Unit.
Microcontrolerul are un spectru foarte larg de cuprindere și poate fi definit ca un microcircuit care încorporează o unitate centrală (CPU) și o memorie, care împreună cu resursele sale îi permit să interacționeze cu mediul exterior.
Resursele necesare microcircuitului ar trebui să includă, cel puțin, următoarele componente:
a. o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem
b. o memorie locală tip ROM/PROM/EPROM/FLASH și eventual una de tip RAM
c. un sistem de întreruperi
d. I/O – intrări/ieșiri numerice (de tip port paralel)
e. un port serial de tip asincron și/sau sincron, programabil
f. un sistem de timere-temporizatoare/numărătoare programabile
g. un sistem de conversie analog numerică (una sau mai multe intrări analogice)
h. un sistem de conversie numeric analogic și/sau ieșiri PWM (cu modulare în durată)
i. un comparator analogic
j. o memorie de date nevolatilă de tip EEPROM
k. facilități suplimentare pentru sistemul de temporizare/numărare (captare și comparare)
l. un ceas de gardă (timer de tip watchdog)
m. facilități pentru optimizarea consumului propriu
Microcontrolerul mai are de regulă, la nivelul unității centrale, însușiri ce permit prelucrarea informației la nivel de bit, precum și acces direct și facil la intrări cât și la ieșiri printr-un mecanism de prelucrare rapid și eficient al întreruperilor.
Utilizarea unor microcontrolere poate constitui o soluție prin care se reduce indubitabil numărul componentelor electronice necesare dezvoltării unor produse precum și costul proiectării. Utilizarea microcontrolerelor, oricât de avansate ar fi ele, nu elimină toate componentele utile sau necesare interfațării cu mediul exterior iar pentru acestea sunt necesare subsisteme de prelucrare analogică precum: (filtrare, redresare, protecție-limitare, amplificare), elemente ce sunt necesare realizării izolării galvanice (transformatoare, optocuploare), elemente de comutație de putere (relee electromecanice, tranzistoare de putere, sau statice)[10].
3.2 Placa de dezvoltare Arduino
Majoritatea aplicațiilor în care se utilizează microcontrolere sau „embeddend system” sunt cuprinse în categoria așa-ziselor sisteme încapsulate-integrate pentru care existența unui sistem de calcul încorporat este aproape întotdeauna transparentă pentru utilizator.
Deseori, utilizarea microcontrolerelor este sinonimă cu ideea de control iar pentru această caracteristică sunt utilizate masiv atât în robotică cât și în mecatronică.
Sistemul de comandă este asigurat de Arduino Mega (Fig 1.3) care reprezintă componenta principală de control al sistemului de alarmare în cadrul căruia programul este executat .
Aceasta este o platformă open-surse bazată pe software și hardware flexibil și simplu de folosit, este construită în jurul unui procesor de semnal, fiind capabilă de a prelua informații din mediu prin intermediul senzorilor, luminii, motoarelor, servomotoarelor precum și a altor tipuri de dispozitive.
Numeroasele avantaje ale placii Arduino Mega sunt: costul redus, designul deschis, ușurința de asamblare precum și capacitatea de a face ajustări. Este de asemenea un mediu de dezvoltare care permite scrierea de software în limbajul de programare Arduino și este una dintre cele mai simple platforme de utilizat cu microcontroler.
Te poți gândi la el ca la un minicalculator (are puterea de calcul a unui computer obișnuit de acum 15 ani), fiind capabil să culeagă informații din mediu și să reacționeze la acestea. Acesta este utilizat pentru o varietate de scopuri diferite și proiecte, de la proiecte simple cum ar fi construirea unui termostat, la cele mai complexe, cum ar fi robotica, servere Web, sisteme de securitate și sintetizatoare.
3.3 Funcționalitatea de calcul a sistemului de alarmă
Funcționalitatea sistemului de alarmare este asigurată de Arduino Mega, care are la bază un procesor din gama procesoarelor Atmega2560 (Fig 1.4), produse de compania Atmel Corporation și este folosit cu ideea de control și este utilizat de obicei în robotică și mecatronică .
Procesorul este capabil să ruleze cod scris într-un limbaj de programare foarte apropiat de limbajul C++. Comunicarea microcontrolerului ATmega2560 cu un calculator sau o altă placă,, se face prin comunicație serială UART TTL (5V) care este disponibilă pe pinii digitali 0(RX) , 1(TX) , 14(TX), 15(RX), 16(TX), 17(RX), SI 18(TX), 19(RX) .
Un microcontroler ATmega8U2 direcționează comunicația serială către USB și apare ca un port serial virtual în software-ul de pe calculator. Firmware-ul microcontrolerului folosește driverele standard ale portului USB al calculatorului și nu este nevoie de un driver din exterior.
Așa cum se observă și în figura 1.5, acest tip de microcontroler este dotat cu un set de 32 de regiștrii de lucru pe 8 biți care sunt conectați direct la Unitatea Aritmetica și Logică (ALU). Avantajul acestui tip de structură este acelă că doi regiștrii pot fi accesați în același timp de către ALU. AVR folosește o arhitectură de tip Harvard, în care memoria de program este separată și totodată accesată separat prin intermediul unei magistrale de program. În aceste condiții se poate spune că această categorie de microcontrolere are două tipuri de magistrale: una pentru program și una pentru date[5].
Fig 1.5 Structura internă a unui microcontroler cu nucleu AVR .
3.4 Alimentarea plăcii
Arduino mega poate fi alimentat prin intermediul conexiunii USB, sau cu ajutorul unei surse externe fiind selectată automat de acesta. Sursele externe de alimentare (non-USB) pot fi, fie un adaptor AC-DC sau baterie. Adaptorul poate fi conectat printr-un conector de 2.1mm cu centru-pozitiv în mufa de alimentare de pe placă. Traseele de la baterie pot fi introduse în pinii GND și V-in ai conectorului de alimentare. Placa poate funcționa cu o sursă externă de 6-20 volți. Dacă este alimentată cu mai puțin de 7V, atunci pinul de 5V scoate o tensiune mai mică de 5V și placa poate deveni instabilă. Dacă se utilizează mai mult de 12V, regulatorul de tensiune se poate supraîncălzi și deteriora placa. Intervalul recomandat este de 7-12 volți. ATmega8U2 este conectată la linia de reset al microcontrolerului ATmega 2560 printr-un condensator de 100 nanofarad.
Atunci când această linie este activată, linia de reset este activă suficient de mult timp pentru a reseta microcontrolerul. Pentru a nu fi nevoie de resetarea manuală, înainte de încărcarea unui program, Arduino Mega este proiectat astfel încât permite sa fie resetat de către software, atunci când este conectat la calculator Software-ul Arduino folosește această capacitate pentru a permite încărcarea de cod prin simpla apăsare a butonului de încărcare din mediul de programare Arduino. Placa de dezvoltare Arduino Mega are o siguranță resetabilă care protejează porturile USB ale computerului de scurtcircuit și suprasarcină. Deși majoritatea calculatoarelor au protecție internă proprie, siguranța oferă o protecție suplimentară.
Dacă un curent mai mare de 500 mA trece prin portul USB, siguranța va întrerupe în mod automat conexiunea până la îndepărtarea suprasarcinii sau scurtcircuit.
3.5 Memoria plăcii
Din punct de vedere al accesului la memorie, acest microcontroler are implementat un sistem de acces de tip pipeline într-un singur nivel. Acest lucru înseamnă că în timp ce o instrucțiune este executată, următoarea instrucțiune este preluată din programul memoriei și pregătită pentru a fi executată.
Așa cum precizează și producătorii, acest tip de microcontroler implementează o arhitectură mult mai eficientă decât cea a microcontrolerelor convenționale bazate pe arhitectura de tip CISC.
Ȋn jurul microcontrolerului există un ecosistem de dispozitive foarte bine dezvoltate, cu care orice informație ti-ai dori să o culegi din mediu sau orice fel de conexiune cu alte dispozitive ai avea nevoie, există o foarte mare șansă sa găsești un dispozitiv pentru acesta, care să-ti ofere ceea ce iți dorești.
Microcontrolerul Atmaga2560 are următoarele caracteristici :
54 intrări / ieșiri digitale, iar 14 dintre ele pot să fie folosite ca ieșiri PWM, care au rolul de a varia în mod controlat tensiunea dată unui dispozitiv electronic,
16 intrări analogice
4 (UART porturi seriale, seriale hardware) circuite ce realizează conversia datelor paralele de la calculator în formatul necesar pentru transmisia serială și conversia datelor seriale recepționate în formatul paralel utilizat de calculator.
un oscilator de 16 MHz
conexiune prin USB
o mufă pentru alimentare
buton pentru resetare
memoria este de 256 KB, din care 8 KB utilizați de bootloader
memoria EEPROM de 4 KB
3.6 Interconectarea
Ȋn Arduino Mega există mai multe posibilități de comunicare cu un calculator, sau cu o altă placă Arduino sau un alt microcontroler. Microcontrolerul ATmega2560 furnizează comunicație serială UART TTL (5V), care este culeasă pe pinii digitali (RX) și (TX). Un microcontroler ATmega8U2 distribuie comunicația serială către USB apărând ca un port serial virtual în software-ul care se găsește pe calculator. Firmware-ul microcontrolerului folosește driverele standard ale portului USB al calculatorului nefiind necesară instalarea unui alt driver din exterior. Software-ul folosit pentru Arduino are în componența sa, o fereastră care permite preluarea și trimiterea de date de tip text de la placa Arduino. LED-urile corespunzătoare semnalelor RX și TX de pe placă vor pâlpăi când informația este trimisă prin portul USB către cipul serial prin intermediul unei conexiuni USB cu calculatorul .
3.7 Asamblarea componentelor
Daca ne referim la posibilitatea de a conecta Arduino Mega cu alte sisteme atunci, putem vorbi despre Shield-ul GSM folosit în sistemul nostru de alarmare, care este bazat pe modulul SIM900 produs de firma Simcom care permite transmiterea datelor cât și conectarea la internet prin intermediul unei rețele mobile GSM, precum trimiterea și recepționarea de SMS-uri, MMS-uri, și audio prin transmiterea de comenzi AT și comenzi Simcom AT extinse.
Acest modul GSM are pinii depuși ca în fig 1.6 și poate lucra cu orice rețea GSM dacă dispune de o cartelă SIM, totodată poate fi comparat cu un telefon mobil ce are în componența sa numărul de telefon unic.
Shield-ul dispune de 12 linii de date intrare/ ieșire, 2 linii de date PWM și o linie de date ADC lucru, ce permite folosirea acestuia ca dispozitiv de automatizare de sine stătător. Pentru a fi conectat la rețea de telefonie mobila, Shiel-ul necesita o cartela SIM furnizată de o rețea de telefonie mobilă[14].
Sistemul de comunicații prin GSM conține mai multe elemente:
3 butoane de control: unul de pornire a modulului, unul pentru resetarea modulului și unul pentru resetarea plăcii de dezvoltare utilizate;
3 leduri de semnalizare: unul semnalizează prezența tensiunii de alimentare a sistemului, al doilea semnalizează starea pornit a modulului GSM și ultimul semnalizează starea conectat/deconenctat de la rețeaua de telefonie mobilă. Interfață GPIO, permite setarea sau colectarea nivelului logic de pe un pin al microcontrolerului și are 16 pini din care doi sunt pentru alimentare la 3V;
Interfață PWM și I2C;
Interfață pentru Arduino;
RTC alimentat din baterie;
Interfața pentru intrare/ieșire semnale sonore;
Multiplexor UART;
Interfața UART care permite comunicarea serială.
3.7.1 Cartela Sim a sistemului de alarmă
Pentru a putea folosi modul GSM, acesta are nevoie de o cartelă SIM, care este o prescurtare de la (Modul de identificare al abonatului ) și reprezintă o cartelă destul de inteligentă care are în componența sa numărul de telefon al abonatului, detaliile de identificare în rețea, pinul și alte date ale abonatului, precum și agenda telefonului sau mesajele.
SIM-ul poate fi purtat de pe un telefon pe altul, deoarece conține informațiile necesare pentru activarea telefonului.
Cartela SIM se introduce în locașul special al Shield-ului GSM fig 1.7, iar conectarea shied-ului la Arduino se face prin pinii D8 Mega, respectiv RX1 GSM și D9 Mega, respectiv TX1 GSM așa cum se observă și în figura de mai sus. Asigurarea alimentării Shield-ului GSM se face cu o sursă de alimentare ce asigură necesarul de curent de 2A, deoarece alimentarea de 5V a plăcii Arduino Mega este insuficientă.
Prin conexiunea USB se asigură un curent maxim de 500Ma, din acest motiv este necesară o conexiune separată de alimentare.
Acest sistem de GSM poate comunica cu placa Arduino prin interfața serială implementată hardware sau prin interfața serială software. În cadrul acestei lucrări se va apela la utilizarea interfeței seriale software. Un aspect foarte important și recomandat în același timp, este că deconectarea alimentatorului să nu se facă înaintea deconectării conexiuni USB, deoarece acest lucru va conduce la comutarea automată pe alimentarea din portul plăcii Arduino Mega, fapt ce poate duce la distrugerea plăcii de dezvoltare. Rolul principal al Shield-ului GSM în cadrul acestui proiect este acela de a avertiza scris prin trimiterea unui SMS în momentul în care dispozitivul de alarmă a sesizat o intrare nepermisă într-un spațiu interzis.
3.7.2 Monitorul LCD al sistemului de alarmă
Interacțiunea dintre sistemul de alarmare și utilizator este asigurată de un LCD 16×2 caractere cu iluminare cu led care este foarte frecvent utilizat în diverse circuite și dispozitive.
LCD-urile sunt economice, ușor programabile, nu au nici o limitare de a afișa caractere speciale și chiar personalizate. În general, aceste tipuri de afișaje sunt monocrome, adică se afișează cu o anumită culoare pe un anumit fundal. Versiunile standard folosesc culoarea neagră pentru scris și verde pentru fundal, dar există și alte variante cum ar fi de exemplu scris cu alb pe fundal albastru. Datorită construcției speciale pe care o are această categorie de echipamente, utilizatorul ar trebui să știe cum poate folosi cele 35 de puncte pentru a scrie fiecare literă în parte.
Totuși în realitate problema este mult mai simplă, deoarece toți producătorii de astfel de echipamente, dotează afișajele cu sisteme de decodificare hexazecimale prin intermediul cărora utilizatorii transmit de fapt coduri ASCII către LCD . În acest scop orice LCD este dotat cu un registru de date în care se stochează informațiile pe care le primește pe magistrala de comandă. Displayul are o interfața paralela, cea ce înseamnă că microcontrolerul trebuie să manipuleze mai mulți pini de interfață dintr-o dată pentru a controla afișarea .
Un LCD 16×2 poate afișa 16 caractere pe linie și există două astfel de linii, fiecare caracter este afișat în matrice de 5×7 pixeli și are totodată doua registre de comandă și date.
Procesul de control al afișajului implică punerea datelor care formează imaginea a ceea ce doriți să afișați în registrele de date, apoi pune instrucțiunile în registrul de comandă. Registrul de comandă stochează instrucțiunile date de acesta pe ecranul LCD-ului .
Comanda este o instrucțiune dată LCD-ului pentru a face o sarcină predefinită, cum ar fi inițializarea de compensare a ecranului, stabilind poziția cursorului și controlul de afișare. Totodată, stochează datele registrului care urmează să fie afișate pe ecranul LCD-ului, datele reprezintă valoarea ASCII a caracterului care urmează să fie afișat pe ecranul LCD-ului
LCD-ul folosit în proiect este legat la Arduino Mega prin următorii pini, Fig 1.8 :
LCD Vss la Mega GND
LCD Vdd la Mega 5V
LCD V0 la Potențiometru de 10KΩ si potențiometru la pinii GND și 5V Mega
LCD RS la Mega 44
LCD E la Mega 45
LCD D4 la Mega 46
LCD D5 la Mega 47
LCD D6 la Mega 48
LCD D7 la Mega 49
Rolul pinilor este următorul, fig 1.9:
3 pini se folosesc pentru alimentarea afișajului, dintre care doi sunt pentru alimentarea de bază iar al treilea pentru asigurarea contrastului. De obicei acest al treilea pin trebuie legat într-un circuit de comandă cu potențiometru pentru a putea asigura reglarea continuă a contrastului;
3 pini sunt folosiți pentru comanda afișajului. Astfel, există un pin de activare a afișării, un pin de activare a registrului în momentul în care se transmite informația și un pin de punere a informației pe ecran. Acest din urmă pin poate fi legat direct la masă, asigurând ca linia să fie în permanentă activă;
8 pini de date. În scheme practice, pentru reducerea numărului de pini pe care îi utilizează sistemul, majoritatea afișajelor pot fi comandate și doar cu 4 pini de date așa cum este cazul nostru.
2 pini suplimentari care se folosesc pentru iluminarea fundalului ecranului. Trebuie precizat că majoritatea afișajelor care sunt întâlnite pe piață au această structură cu 16 pini cum are și acest LCD folosit în proiect.
Pinul de registru al LCD-ului RS are rolul de a controla modul în care sunt scrise datele în memoria ecranului LCD și poate selecta fie registru de date care spune ceea ce se întâmpla pe ecran, fie registrul de instrucțiuni care caută instrucțiuni despre ce sa facă in continuare[15].
Pinul Enable are rolul de a permite citirea sau scrierea în regiștrii, iar stările de la pinii 46 până la 49 reprezintă biții pe care îi scriem într-un registru, sau valorile pe care le citim. Pinul V0 este legat la Mega prin potențiometru de 10K, fiind alimentat totodată la GND și 5V și are rolul de a ajusta contrastul LCD-ului.
Procesul de control al afișajului implică punerea datelor care formează imaginea a ceea ce doriți să afișați în registrele de date, apoi pune instrucțiunile în registrul de instrucțiuni. Biblioteca LiquidCrystal simplifică acest lucru pentru noi, astfel încât să nu avem nevoie să cunoaștem instrucțiunile de nivel scăzut.
3.7.3 Modulul de relee cu patru contacte și fotorezistorul utilizați în proiect
Pentru a putea introduce în sistemul nostru de alarmă noi echipamente, am montat un modul de patru relee ( Fig 2.1), care pot fi utilizate pentru comutarea unei valori mari a tensiunii cu ajutorul unei valori mici de tensiune.
Un releu este format dintr-o bobină, unul sau mai multe contacte și un mecanism cu arc. Prin alimentarea bobinei, curentul electric se propagă si se creează un câmp magnetic, pârghia este antrenată iar poziția contactelor se schimbă. Dacă tensiunea cade, mecanismul cu arc va asigura revenirea contactelor în poziția inițială.
Ȋn prezent releele electromagnetice sunt tot mai adesea înlocuite cu elemente semiconductoare, însă datorită numeroaselor avantaje pe care încă le mai au, sunt fabricate in continuare pe o scara destul de răspândita. Printre numeroasele plusuri ale releelor enumerăm: costul redus, ușor de implementat, rezistența la suprasarcini și supratensiuni iar la minusuri: durata scurtă de viată, funcționarea adesea zgomotoasă.
Modulul de relee este legat la pinii analogici ai plăcii Arduino ca ieșiri la pinii 27, 29, 31 si 33 și au logica de comandă inversată, adică dacă pe pinul de comandă este 0 logic (LOW), releul este acționat și dacă 1 logic (HIGH) este neconectat .
Releele din acest proiect au rolul de a simula aprinderea unor becuri, în cazul nostru leduri care se găsesc tot pe același Shield. La pinul 2 analogic al lui Arduino Mega este legat și un fotorezistor, care are rolul de a sesiza orice modificare de flux luminos, și dacă detectează o scădere a valorii rezistenței sale, ledurile releelor se vor aprinde, iar dacă valoarea rezistenței crește, atunci ledurile releelor se vor stinge.
Fotorezistorul este format dintr-o peliculă din material semiconductor fig 2.2, depusă prin evaporare în vid pe un grătar metalic care este fixat pe o placă izolatoare. Pelicula este prevăzută la capete cu contacte ohmetrice care reprezintă terminalele și este protejată prin acoperire cu lac sau prin încapsulare în material plastic.
Atunci când este conectat într-un circuit electric, intensitatea curentului din circuit este modificată de fotorezistor. Intensitatea curentului creste proporțional cu scăderea rezistenței electrice a fotorezistorului, deci proporțional cu creșterea intensității fluxului luminos[2].
3.7.4 Tastatura și modulul RTC al sistemului de alarmă
Tastatura utilizată în sistemul nostru este un dispozitiv de intrare hardware de tip 3X4 (coloane și rânduri) ce permite utilizatorului să introducă cifre și semne speciale și este utilizat pe scară largă și are o multitudine de utilizări în viața noastră de zi cu zi de la un simplu telefon la tastatura unui calculator sau bancomat. Acest echipament constituie interfața între sistemul nostru de efracție și utilizator și permite controlul sistemului prin introducerea codului de activare / dezactivare .
Butoanele de pe această tastatură sunt conectate în matrice într-un format de trei linii și patru coloane după cum sugerează și titlul subcapitolului. Ȋn consecință, vom avea nevoie de 7 pini pentru a detecta apăsarea celor 12 taste .
Tastatura în cadrul proiectului nostru (Fig 2.3) este legată la pinii digitali 35, 36, 37, 38 pentru linii și 39, 40,41 pentru coloane și este folosită pentru a selecta anumite opțiuni din program cât și pentru a arma sau dezarma sistemul prin introducerea codului și totodată pentru a potrivi timpul și calendarul la data curentă.
Pentru a putea urmări timpul și calendarul pe LCD-ul sistemului de alarmă și pentru a le ajusta, s-a folosit modul RTC DS 1302 (Fig 2.4), care este un ceas în timp real și este conectat prin pinii digitali 42 Arduino MEGA, respectiv CE RTC și 43 Arduino MEGA, respectiv SCLK RTC, fiind alimentat cu 5V și GND tot de pe plăcuța Arduino prin cablu de alimentare USB care comunică cu microprocesorul printr-o interfață serială sincronă și are rolul de a furniza în timp real calendarul, ora, secunda, minutul, ziua, data, luna, si anul. Finalul datei lunii cu mai puțin de 31 de zile este ajustată automat, inclusiv corecțiile pentru anul bisect.
.
Ceasul funcționează fie în format 24 de ore sau 12 ore format cu indicator AM/PM. DS1302, este proiectat să funcționeze la putere foarte scăzută și să păstreze date si informații de ceas cu mai puțin de 1μW. DS1302 este succesorul la DS1202 și are caracteristici suplimentare pe pinii de alimentare ale consumabilelor și șapte octeți suplimentari de memorie.
3.7.5 Senzorii de mișcare (PIR) folosiți în sistemul de alarmă
Pentru a putea detecta intrările nepermise într-un spațiu securizat avem nevoie de senzorii de miecare (PIR) fig 2.5 care sunt legate la pinii de intrare 11 și 12 ai plăcii Arduino, fiind alimentați la +5V și GND, și au capacitatea de semnala orice mișcare cauzată de schimbarea fluxului de radiații și în special radiație termică în infraroșu. Senzorii nu răspund la diferențele termice statice cauzate de mijloacele naturale cum ar fi de exemplu lumina soarelui.
Senzorii de tip PIR se pot caracteriza în funcție de raza de detecție ,unghiul de deschidere ,tensiunea de alimentare și viteza de detecție. Aceștia sunt recomandați a se folosi în interiorul locuințelor datorită numărului mare de posibilități ce pot declanșa alarme false daca sunt instalați în exterior.
Ȋn distanța focală sau în fața senzorului se află o cupolă cilindrică sau sferică în care se găsesc mici lentile curbe convexe albe care colectează lumina în infraroșu. Aceasta lumină propriu-zisă este transformată în energie electrică, fiind apoi analizată de un circuit specializat de procesare care face posibilă diferențierea între alarmele false și alarmele reale.
3.7.6 Buzzerul folosit în sistemul de alarmă
Alarma sonoră în acest proiect este asigurată de mini Difuzorul (Buzzer) Fig 2.6, care este legat la pinul 2 PWM digital al plăcii Arduino și la GND.
PWM este un semnal care se mișcă rapid între 5V și 0V astfel încât membrana mini Difuzorului este și ea mișcată la fel de rapid, generând sunete. Frecvența cu care semnalul se mișca între 5V și 0V determină frecvența sunetului.
3.7.7 Senzorul de gaz (LPG) folosit în proiect
Pentru a putea preveni scurgerile de gaz, sistemului de alarmă i s-a adăugat un senzor LPG (Fig 2.7) care este conectat la pinul 3 al ieșirii analogice, fiind alimentat cu 5V și GND de placa Arduino.
Acesta detectează gazele printr-o reacție chimică care are loc atunci când vine în contact direct cu senzorul. Materialul folosit la fabricarea senzorilor de gaz este dioxidul de staniu, care are o rezistență de 50KΩ și poate scădea până la 3,5 KΩ la contactul cu gazul.
Această modificare a rezistenței este utilizată pentru a calcula concentrația de gaz în aer. Sistemul de alarmare analizează această valoare măsurată și dacă a depășit un anumit prag, trimite un semnal care sesizează atât sonor cu ajutorul mini difuzorului, cât și prin alertare cu mesaj prin intermediul modulului GSM.
Una dintre activitățile importante care au loc în electronică este realizarea practică a circuitului electronic cu scopul de a experimenta funcționarea acestuia. Lucrul acesta îl realizează atât începători cât și specialiști atunci când vor sa testeze circuitul pe care l-au creat.
Pentru a realiza montajul circuitului se folosesc diferite tipuri de plăci de test, iar piesele se conectează conform schemei prin lipire cu ciocanul sau cu pistolul de lipit având avantajul costului mic precum și o durată de viață mai lungă.
Pentru legarea componentelor electronice împreună s-au folosit în proiect doua plăci de test în care componentele au fost lipite conform schemei electronice.
Pe prima placă de test (Fig 2.8) s-au lipit pinii necesari pentru a putea conecta componentele necesare sistemului de alarmă. Acestea sunt următoarele:
Modul de patru relee
LCD de 16X2
RTC (ceas cu cronometru în timp real)
Tastatura 3X4
Totodată pe aceeași placa de testare s-au mai lipit cele doua rezistoare folosite ca divizor de tensiune pentru RTC cu scopul de a limita curentul precum și potențiometru de 10 KΩ necesar reglării contrastului LCD-ului cât și cele doua fire necesare comunicării Shiel-dului GSM cu Arduino prin pinii RX SI TX ai acestuia. Toate acestea au fost legate între ele prin fire de interconectare. Vezi (Fig 2.9).
Pe cea de-a doua placă de testare s-au legat tot prin fire de interconectare cei doi senzori de mișcare: fotorezistorul, senzorul de gaz, cele două leduri și nu în ultimul rând mini Difuzorul, toate aceste componente au fost conectate prin pinii tata deasupra Shiel-ului GSM după cum se observă în (Fig 3.1).
Împreună componentele au fost legate și interconectate între ele la placa de dezvoltare Aduino Mega rezultând la final sistemul de alarmare la efracție, ce se poate observa în (Fig 3.2).
Acest sistem de alarmă are capacitatea de a sesiza mișcarea prin intermediul senzorilor PIR și de a avertiza sonor și luminos cu ajutorul Mini Difuzorului(Buzzer) și ledurilor legate la placa Arduino cat și trimiterea de mesaje de tip SMS pe telefonul mobil ajutat fiind de Shiel-ul GSM și cartela SIM atunci când este armat prin intermediul tastaturii.
O altă calitate a sistemului este aceea de a aprinde ledurile releelor 27 și 29 independent de modul armat sau dezarmat cu scopul de a simula modul de aprindere a becurile din fața locuinței la lăsarea serii iar acest lucru se realizează cu ajutorul fotorezistorului care atunci când sesizează o scădere a valorii rezistenței sale iar senzorii de tip PIR detectează mișcare în câmpul lor, trimit un semnal plăcii Arduino pentru a executa comanda de aprindere. Totodată atunci când valoarea rezistenței crește chiar dacă senzorii PIR detectează mișcare în jurul lor, ledurile se vor stinge.
Scurgerile de gaz sunt sesizate prin intermediul senzorului de gaz LPG independent dacă sistemul de alarmă este armat sau nu, avertizând sonor cu ajutorul Buzze-rului și prin SMS prin intermediul Shiel-dului GSM. Ȋn paralel sistemul poate afișa ceasul și calendarul în timp real și poate fi ajustat cu ajutorul tastaturii.
Capitolul 4
Proiectarea infrastructurii software a sistemului de alarmă
Sistemul de alarmă se programează prin selectarea acelor funcții specifice pentru fiecare aplicație în parte. Montarea sistemelor de alarmare reprezintă în definitiv acea activitate de producție din care rezultă de cele mai multe ori unicate sau, în cele mai bune cazuri, produse de serie mică, iar fiecare sistem în parte va avea particularitățile sale.
Proiectarea software a sistemului de alarmare se referă practic la proiectarea programului aferent sistemului cu microcontroler utilizat. La baza proiectării software stau două principii de bază :
mediul de programare utilizat
identificarea funcțiilor pe care trebuie să le aibă sistemul
Din punct de vedere a mediului de programare utilizat s-a ales programarea în mediul special creat pentru sistemele de dezvoltare Arduino, denumit Arduino IDE. Acest mediu de programare are câteva avantaje, cel mai mare fiind chiar faptul că acesta are încorporat toate librăriile necesare pentru plăcile Arduino existente pe piață. Al doilea avantaj major al mediului de programare este interfața de comunicație serială prin intermediul căreia se pot afișa pe ecranul calculatorului valori ale unor variabile în anumite momente de timp, precum și mesaje ajutătoare pe durata depănării erorilor de programare. Dezavantaj major al acestui mediu de programare este acela că nu are implementată o funcție de rulare pas cu pas sau rulare cu întreruperi a codului sursă.
4.1 Functiile unui sistem de alarmare
Arduino IDE este o platformă de programare foarte asemănătoare cu c++ și se poate descarca de la secțiunea de download de pe www.arduino.cc, cea mai recentă versiune de software la acestă dată este Arduino IDE versiunea 1.6.8. Toate actualizările urmând să se facă la momentul aparițiilor de noi versiuni. Fișierul descărcat este unul de tip ZIP, astfel încât veți fi obligați să-l dezarhivați ( Utilitarul recomandat este WinRar). Odată terminata descărcarea se dezarhivează arhiva de tipul ZIP, asigurându-se că s-a păstrat structura de foldere așa cum este ea.
După aceasta etapă se trece la instalarea propriu-zisă, dând dublu click pe iconița ce este reprezentată într-un mod foarte prietenos și așteptând instalarea driverelor necesare funcționării acestei platforme. Dacă sistemul de operare este Windows, driverele le veți găsi în directorul numit „driver FTDI USB Driver” din Arduino ,iar dacă aveți un calculator cu sistem de operare Mac mai vechi, driverele pentru microcontroler le veți găsi tot în directorul cu drivere sub denumire de FTDI USB Serial Driver_v2_1_9 .dmg. Pentru sistemele de operare Macintosh mai noi, cu cip de tip Intel, veți avea
nevoie de driverele de la Intel: FTDI USB Serial Driver_v2_2_9_Intel.dmg.
Conectarea plăcii Arduino la calculator se realizează cu ajutorul cablului ilustrat mai jos în fig 3.3
asigurându-vă că în jumperul fig 3.4 de pe placa Arduino se introduce capătul de tip imprimantă (2) ilustrat mai sus iar la calculator se conectează capătul de tip USB (1).
Folosind acest jumper puteți: fie alimenta microcontrolerul de la Portul USB sau de la o alimentare externă (6-12V DC – Curent Continu). Veți vedea acum LED-ul de putere mică că se va aprinde pentru a vă arăta alimentarea microcontrolerului.
Dacă aveți un Mac, această etapă a procesului este completă și puteți trece la capitolul următor. În cazul în care sunteți utilizator de Microsoft Windows, există câțiva pași în plus pentru a completa instalarea.
În timp ce sistemul de operare Microsoft Windows va detecta că s-a conectat o nouă placă hardware la PC, va apărea fereastra Found New Hardware Wizard. bifați “Nu, not this time” pentru a nu se conecta la Windows Update și apoi faceți clic pe Next.
În pasul următor selectați “Install from a list or specific location (Advanced)” și apoi faceți clic pe Next. Asigurați-vă că “Search for the best driver in these locations” este verificat.
Debifați „search removable media” și bifați “include this location in the search” și apoi faceți click pe butonul browse. Răsfoiți la locația de drivere pentru USB și apoi faceți click pe Next. (Figura 3.5)
Fig. 3.5
Windows-ul va căuta acum pentru un driver potrivit, vă va informa că un “USB Serial Convertor” a fost găsit și a constatat că expertul hardware este acum complet. Faceți clic pe Finish. (Figura 3.6)
Fig. 3.6
Acum sunteți pregătit pentru a încarcă primul “Sketch” pe microcontrolerul Arduino.[11]
4.2 Structura programului
Pentru a putea înțelege mai bine codul ce controlează sistemul nostru de alarmă se vor prezenta schemele bloc ale funcțiilor principale precum și o scurtă descriere a acestora.
După cum se observa în figura 3.7 de mai jos, blocul principal veghează asupra blocurilor secundare lui, analizează informațiile primite, și ia deciziile corecte pentru o bună funcționare a sistemului, iar dacă una din funcțiile ce compun blocul este activă se trece la executarea acesteia. După identificarea comenzilor și efectuarea acestora, blocul principal comunică cu blocul LCD pentru afișarea acestora și va funcționa conform codului pe durata rulării programului.
4.3 Structura blocurilor software
După cum s-a precizat anterior, blocul principal are capacitatea de a urmări si primi comenzi, din exterior, după care analizează comenzile primite și trimite informația către blocurile de execuție. Aceasta informație este preluată de blocurile de execuție fig 3.8 și trimisă mai departe către funcțiile ce compun blocurile de execuție. Ȋn această etapă în funcție de decizia luată se apelează funcția aferentă sau se merge mai departe în următorul bloc, ajungându-se într-un final în funcție de alegerile făcute de către utilizator în blocul principal, de unde se reia rutina.
Ca orice program Arduino acesta are doua secțiuni, în prima din ele sau mai precis secțiunea „Setup” se execută o singură dată atunci când placa Arduino este alimentată sau este apăsat butonul de reset. Cea de-a doua secțiune numita „Loop” se execută în ciclu atâta timp cât placa Arduino este alimentată la o sursă de curent. Astfel spus în rutina „Setup” se scrie cod de inițializare iar în secțiunea „Loop” se va scrie partea principală a programului.
Programul încărcat și rulat de către microcontroler este structurat pe mai multe funcții. Una dintre funcțiile principale este „Citire ceas” care are rolul de a afișa pe LCD-ul alarmei ceasul și calendarul și este prezentată în fig 3.9 sub formă de schemă logică, având în spatele ei biblioteca virtuabotixRTC.h care oferă posibilitatea de a utiliza modulul RTC și scrierea codului aferent funcției.
Atunci când aceasta funcție este apelată compilatorul se va uita mai întâi dacă variabila meniu este egală cu 1 și în funcție de valoarea returnată, fie se intră în bucla while și atâta timp cât meniul este egal cu 1 se apelează funcția „myRTC updateTime care citește de la modulul RTC datele specifice și le afișează pe ecranul LCD, fie iese din funcție și se întoarce în meniul principal.
Daca elementele de timp (ora, minutul, secunda), și calendar (zi, data, luna, an) sunt mai mici decât 10 se adaugă un zero în fata acestora, fiind urmate îndeaproape de semnul de punctuație doua puncte care are rolul de a diferenția elementele de timp între ele.
Pentru elementele calendarului unica diferență este făcută de slash care înlocuiește semnul de punctuație doua puncte.
Cea de-a doua funcție denumită ” Reglare ceas” este prezentată mai jos în figura 4.1 sub formă de schemă logică iar codul aferent funcției este atașat în „anexa 1” și are rolul de ajustare a ceasului.
Înainte de a descrie pe scurt funcția de reglare a ceasului și calendarului trebuie precizat că toate elementele de timp (ora, minut, secundă) și calendar (zi, data, lună, an) sunt reprezentate pe LCD în format de câte două cifre exceptând ziua săptămânii care este reprezentată printr-o singură cifră. Atunci când se apasă butoanele tastaturii pentru a regla unul din elementele de timp sau calendar, valorile tastelor ce au fost apăsate se vor memora într-un string de caractere. Aceste valori odată memorate sunt apoi transformate prin intermediul funcției „atoi” într-un string de întreguri și memorate în interiorul uneia dintre variabilele de timp și calendar într-o ordine prestabilită în program. Rutina descrisă mai sus se va repeta pentru fiecare element al timpului și calendarului. Toate aceste cifre pentru ajustarea ceasului și calendarului odată introduse de la tastatură, sunt afișate pe ecranul LCD-ului prin apelarea funcției „myRTC.setDS1302Time” .
Cea de –a treia funcție denumită „Armare”, fig 4.2 atunci când este apelată va verifica prin intermediul compilatorului dacă variabila „armat” este adevărată sau falsă și în funcție de ce returnează aceasta, variabila fie iese din funcția de „armare” și revine în meniul principal, fie verifică dacă starea senzorilor de mișcare sunt pe 1 logic, respectiv dacă valoarea senzorului de gaz este modificată, și în funcție de starea acestora se apelează sau nu funcțiile GSM, respectiv Tone.
Prima având rolul de a trimite mesaje pe telefonul mobil atunci când este activă cu tipul de alarmă respectiv (gaz sau antiefracție), iar cea de-a doua de a avertiza sonor prin intermediul mini difuzorului. Totodată funcția va verifica și dacă valoarea fotorezistorului a coboarât sub un anumit prag, iar dacă da, atunci se vor aprinde ledurile de la pinii 27 și 29 aflate pe releul cu patru contacte. Această rutină descrisă mai sus se va executa într-un ciclu continuu atâta timp cât nu se va apasa tasta (*). La apăsarea tastei menționate se va ieși din rutina respectivă dacă va fi însoțita de parola de dezactivare compusă din cele patru cifre ( 1111) .
Cea de-a patra funcție denumită „Set cod” fig 4.3 are rolul de a schimba parola alarmei după placul utilizatorului și funcționează după cum urmează: inițial se tastează parola curentă și se verifică cu ajutorul funcției din program „Verifica cod” pentru a putea determina dacă parola ce a fost introdusă este corectă. Dacă funcția de verificare a codului returnează o valoare adevărată, atunci se poate trece la introducerea noii parole, care la rândul ei va fi verificată pentru a vedea dacă numărul de cifre introduse este egal cu patru. Daca funcția nu returnează o valoare adevărată, atunci parola nu poate fi schimbată atâta timp cât funcția de verificare a parolei nu returnează o valoare adevărată. Pentru salvarea parolei introduse se apasă tasta (#) iar pentru a putea accesa din nou meniul principal se apasă tasta (*).
A cincea funcție este denumită ’Verifică cod” și are rolul după cum sugerează și numele de verificare a parolei pentru a determina dacă valoarea tastată de la tastatură este corectă.
Primul pas in funcționarea acesteia este acela de a verifica dacă variabila „meniu” este egală cu 2 . Ȋn funcție de rezultatul returnat fie se iese din funcție fie se verifică dacă cifra tastată este corectă. Ȋntr-un final dacă parola introdusă a fost cea corectă, funcția returnează o valoare de adevăr. Datorită simplității acestei funcții s-a considerat că nu mai este necesar realizarea unei scheme logice.
Ultima funcție descrisă este funcția de „GSM” și se va desfășura sub forma unui dialog între placa Arduino Mega și modulul GSM unde placa Arduino transmite comenzi „AT” și modulul GSM răspunde cu „ok” în cazul îndeplinirii cu succes al comenzii sau cu un cod de eroare în cazul apariției unei probleme.
Comanda „AT” nu are alt scop decât acela de a verifica comunicația cu controlerul GSM. Funcția sendSMS primește ca parametri numărul destinatarului și textul mesajului, ambii parametri de tip ștring transmițând către modulul GSM comenzile „AT” necesare expedierii mesajului, iar comanda AT+CMGS = xxxxxxxxxxx inițializează transmiterea mesajului SMS către numărul xxxxxxxxxx, și transmite totodată mesajul sub formă de text.
La final funcția sendSMS returnează valoarea de adevăr true dacă mesajul s-a transmis cu succes sau false în caz contrar. Din nou, datorită simplității acestui bloc s-a considerat că nu mai este necesară prezentarea unei scheme logice.
Capitolul 5
Testarea sistemului de alarmă proiectat
La conectarea sistemului de alarmă la o sursă de alimentare pe ecranul LCD va apărea afișat mesajul „Așteptați conectare GSM fig 4.4 ”. Acest mesaj este afișat pentru a da posibilitatea conectării modulului GSM la rețea. După conectare acest mesaj se va șterge urmând a se afișa pe prima linie a LCD-ul următoarele opțiuni: (1)Citire ceas, (2) Armează si dezarmează alarma, (3)Stare Senzori (4)Pune cod nou și (5)Reglare Ceas, sub forma unor șiruri de caractere ce se scurg de la dreapta spre stânga iar pe cea de-a doua linie se va afișa sugestiv „Alege opt 1-5”fig 4.5 .
Pentru a putea alege o opțiune din meniul principal trebuie să apăsăm butoanele tastaturii ce cuprind tastele 1-5 așa cum de altfel este afișat pe LCD. Dacă din meniul principal se apasă tasta 1 a tastaturii, se intră în opțiunea de citire ceas care are rolul de a afișa ceasul și calendarul Fig 4.6
Pentru a putea reveni din nou în meniul principal sau mai precis în meniul de opțiuni, se apasă tasta (*) moment în care se iese din funcția citire ceas și reintră în meniul principal.
Atunci când se dorește sa se ajusteze ceasul și calendarul, se apasă tasta 5 a tastaturii și se intră în opțiunea de ajustare ceas. La intrarea în funcția amintită mai sus, va apărea scris pe prima linie a monitorului LCD cuvântul „ceas:” Fig 4.7 după care se așteaptă introducerea de la tastatura în ordine a orei și minutelor iar pentru secunde introducerea se va face automat în format 00 .
Apoi prima linie a LCD-ului se va șterge și va fi înlocuită de alta unde va apărea scris sugestiv „Data” Fig 4.8 care așteaptă și aceasta să se introducă într-o ordine prestabilită ziua curentă a săptămânii care este scrisă sub forma unei singure cifre și nu sub forma zilelor calendaristice, după care se introduce în ordine, data , luna și anul care vor fi scrise sub forma ultimelor doua cifre.
Odată cu ajustarea anului, se iese din funcția ajustare ceas în mod automat, ajungându-se din nou în meniul principal unde sistemul așteaptă să se aleagă o noua opțiune.
Pentru a alege opțiunea a treia, se apasă din meniul principal tasta 3 și astfel se intră în funcția numită „stare senzori”, aceasta are rolul de a prezenta starea efectiva a senzorilor care se află în componența sistemului de alarmă. Pe prima linie a monitorului LCD se va afișa valoarea citită a senzorului de gaz iar pe cea de a doua valoarea fotorezistorului de lumină Fig 4.9, urmată la o diferență de o secundă de mini difuzorul sau buzerul care este redat prin sunetul specific urmat de mesajul OK Fig 5.1, care apare afișat pe monitorul LCD-ului
Pentru a putea vedea modul de funcționare a senzorilor de mișcare au fost montate cele doua leduri care au rolul de a se aprinde atunci când senzorii de mișcare detectează în câmpul lor mișcare nemaifiind necesară afișarea pe LCD, acestea observându-se foarte ușor. Pentru a ieși din acesta funcție se apasă din nou tasta (*) și astfel se ajunge din nou în meniul principal.
Accesarea opțiunii de armare și dezarmare alarmă se face tastând de la tastatură din meniul principal tasta cu numărul 2, odată apăsată această tastă, trebuie introdus codul de acces format din patru cifre atât pentru armarea cât și pentru dezarmarea alarmei urmată apoi de un timp de așteptare de 20 de secunde, astfel se dă posibilitatea utilizatorului să se îndepărteze de locuință fără ca alarma să se activeze, același lucru fiind valid si pentru dezarmare. Diferențierea tipurilor de alarmă se va face prin scrierea pe ecranul LCD cât și pentru trimiterea de SMS a cuvântului „Alarmă” pentru detecția antiefracție și a cuvintelor „Alarmă Gaz” pentru detecția gazului ca în figurile 5.2 și 5.3.
Atunci când se dorește schimbarea parolei este necesară apăsarea tastei „4” care are rolul de a intra în opțiunea denumită „setare cod nou”. Odată accesată această opțiune, trebuie introdusă parola curentă formată din cele patru cifre urmată apoi de noua parolă care trebuie confirmată de tasta (#). Pentru a putea ieși din această opțiune se apasă tasta (*) astfel spus testarea a luat sfârșit.
5.1 Simularea prin defecte injectate
Pentru a ne putea asigura că sistemul de alarmă funcționează la parametri normali a fost necesară o simulare a defectelor ce pot apărea în mod voit sau neintenționat. Acestă simulare a fost realizată prin provocarea de defecțiuni în cadrul procedurii de testare a funcționalității sistemului de alarmare. Printre defectele ce au fost sesizate enumerăm:
Întreruperea tensiunii de alimentare va avea ca efect stingerea tuturor componentelor sistemului de alarmă, lucru ușor sesizabil, sistemul nemaifuncționând.
Alimentarea modulului Gsm direct de la placa Arduino are drept consecință diminuarea curentului pentru celelalte componente ale sistemului de alarmă, deoarece are un consum de 2A iar placa Arduino folosită în proiect poate oferi doar 500mA existând un risc foarte mare pentru deteriorarea componentelor și inclusiv distrugerea plăcii Arduino. De aceea este recomandată folosirea unei surse de alimentare externă.
Monitorul LCD a fost montat la sistemul de alarmă fără un potențiometru, fapt ce a condus la o vizualizarea neclară și întunecată a acestuia.
Acestă problemă a fost remediată prin montarea unui potențiometru 10 kΩ cu rolul de a putea regla contrastul monitorului .
Tastatura folosită în proiect avea o funcționalitate foarte ambigua datorită instalării unei biblioteci care nu era compatibilă cu acest tip de tastatură. Problema rezolvându-se prin reinstalarea bibliotecii compatibile cu tastatura folosită în proiect.
Bineînțeles că s-a încercat prevederea majorității problemelor de hard și soft prin simularea unor defecte provocate intenționat ca cele menționate mai sus, reușind într-o mare măsura rezolvarea acestora. Dar ca orice sistem de alarmă, se pot adaugă îmbunătățiri prin adăugarea de noi componente și folosirea de noi echipamente. Pe de-o parte se pot adăuga câteva elemente fizice prin intermediul cărora să crească siguranța în funcționarea sistemului, iar pe de altă parte se pot adăuga mai multe funcții software.
Capitolul 6
Concluzii
Pe o piață în continuă expansiune a sistemelor de alarmă, unde există o luptă acerbă pentru fiecare bucățică de piață, importanța alarmelor a devenit un factor major pentru protejarea bunurilor materiale și nu numai. Ȋn cadrul acestei lucrări s-a dorit proiectarea unui sistem de alarmă cu un cost de producție cât mai scăzut și care să aibă capacitatea de a avertiza atât sonor cât și prin trimiterea de mesaje pe telefonul mobil în cazul în care acesta detectează o pătrundere nepermisa într-un spațiu protejat. Pentru început s-a elaborat o documentație tehnica pe baza conceptului de protecție, stabilindu-se măsurile tehnice și procedeele de organizare a sistemelor antiefracție. Astfel, după ce s-a făcut un scurt istoric al sistemelor de alarmă și importanța acestora, s-a trecut la prezentarea principalelor componentele electronice care stau la baza proiectări unui sistem de alarmă, precum și a celora care au fost utilizate efectiv la implementarea proiectului. Etapa de proiectare a fost formată din trei etape: de proiectare propriu-zisă, o etapă de proiectare hardware și o etapa de proiectare a software-ului sistemului.
Ȋn etapa de proiectare propriu-zisa s-a ținut cont de elementele constructive ale sistemului de alarmă precum și de detaliile corespunzătoare sistemelor hardware și software care sunt ținta constrângerilor pentru termenele limită de la producerea unui eveniment la răspunsul sistemului.
A doua etapă a fost aceea de proiectare hardware în care s-au realizat scheme electronice pentru fiecare componentă în parte și s-a descris modul de legare al fiecărui element component al sistemului. Tot în cadrul acestei etape s-a ales o modelare a sistemului prin realizarea unui cablaj cu fire de legătură prinse între diversele echipamente avute la dispoziție. A treia etapă a avut ca și scop proiectarea software a sistemului. La această etapă s-a pornit de la câteva considerente practice. Ȋn primul rând s-a ținut cont de mediul de programare care este suficient de flexibil pentru toate categoriile de utilizatori și este bazat pe un limbaj de programare simplu și intuitiv. Ȋn al doilea rând s-a încercat realizarea unui program ușor de manevrat, bine structurat și care să nu aibă incertitudini și variații ale mediului operațional și totodată să nu-și piardă funcționalitatea.
Ultima etapă realizată a fost aceea de testare și depanare a sistemului realizat. Pe durata testării s-au identificat și câteva probleme care nu au fost prevăzute anterior, și care au trebuit tratate pentru a nu conduce la deteriorarea sistemului. O parte a rezultatelor testării au fost prezentate sub formă de imagini realizate din timpul funcționării, dar o mare parte a testării a fost dificil de prezentat și prin urmare nu se regăsește în prezentul document. În concluzie, se poate afirma că pentru proiectarea sistemului de alarmă s-a încearcat să se găsească soluțiile optime din intervalul a mai multor soluții viabile pentru a putea proiecta acest sistem antiefracție .
Capitolul 7
Bibliografie
[1]. http://www.henningkarlsen.com/electronics
[2]. https://mail.uaic.ro/~ftufescu/CURS%20DCE-1%20Componente%20pasive%20m.pdf
[3]. SIGURANȚA ȘI PROTECȚIA LOCUINȚEI, ADELA MOTYKOVA, Editura Casa, Oradea, 2015.
[4]. Securitatea deplină, Editura UTI 2001 Gheorghe Ilie, Tiberiu Urdăreanu
[5]. Brian W. Evans, Arduino programming notebook, August 2007
[6]. H. Ciocârlie; Universul limbajelor de programare.. – Timișoara: Orizonturi Universitare 2013
[7]. Arduino Mega, http://www.arduino.cc/en/Main/ArduinoBoardMega2560
[8]. http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0
[9]. http://www.http:// documents.tips
http://invata.mecatronica.eu/2010/12/09/hardware-arduino/
http://docslide.us/documents/introducere-in-microcontrolere-sldring-rodica-constantinescu.html [10]. http://documents.tips/documents/licenta-563384a4dcd9a.html
[11]. http://invata.mecatronica.eu/
http://invata.mecatronica.eu/tag/microcontroller/
http://invata.mecatronica.eu/tag/microcontroller/
[12]. http://invata.mecatronica.eu/tag/textile/
http://invata.mecatronica.eu/tag/textile/
[13]. http://invata.mecatronica.eu/tag/placa-de-dezvoltare/
http://invata.mecatronica.eu/tag/placa-de-dezvoltare
[14]. http://www.proiecte.ro/electronica/sistem-de-alarma-folosind-microcontrolerul-pic16f84-36173
http://www.arduino.cc/
[15]. http://archive-ro.com/ro/s/sisinternational.ro/2014-10-30_4840498_2/Televiziune_cu_Circuit_Inchis_Detalii_produs_SIS_International/
Datasheet display LCD 16×2, https://www.iprototype.nl/products/components/led
[16]. L. Darcey, S. Conder, Sams Teach Yourself Android Application Development in 24 Hours,
Second Edition, Sams Publishig House, 2012.
[17]. D. Wilcher, Learn Electronics with Arduino, Apress Access, 2012.
Capitolul 8
Anexe
#include <EEPROM.h>
#include <Keypad.h>
#include <virtuabotixRTC.h>
#include<LiquidCrystal.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);
String iesireMesaj = "..Alarma..";
String destinatieNumar = "+40760574554";
char tasta;
virtuabotixRTC myRTC(42, 43, 25);
// LCD (RS, E, d4, d5, d6, d7)
LiquidCrystal lcd(44, 45, 46, 47, 48, 49);
const byte ROWS = 4; //four rows
const byte COLS = 3; //four columns
char hexaKeys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {35, 36, 37, 38}; //pinii arduino conectati la randurile tastaturii
byte colPins[COLS] = {39,40,41}; //pinii arduino conectati la coloanele tastaturii
//initializare si instantierea clasei NewKeypad
Keypad tastatura = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
boolean armat=false ;
int meniu = 0;
int gaz_val;
int fot_rez;
char cod[4] = {'1','2','3','4'};
char ctoi[6];
int timpIesire =0;
int timpIntrare =0;
int ora = 0;
int minute = 0;
int ziW = 0;
int ziM = 0;
int luna = 0;
int an = 0;
int nrCol = 16;
int nrRand = 2;
int curgeCursor = nrCol;
String linie1 = "(1)Citire ceas (2)Armeaza si dezarmeaza alarma (3)StareSenzori (4)Pune cod nou (5)Reglare Ceas";
String linie2 = " Alege opt 1-5:";
int stringStart, stringStop = 0;
int numar =0;
boolean gsm = false;
int opt()
{
lcd.begin(nrCol,nrRand);
lcd.clear();
if(stringStart == 0 && curgeCursor > 0)
{
curgeCursor–;
stringStop++;
} else if (stringStart == stringStop){
stringStart = stringStop = 0;
curgeCursor = nrCol;
} else if (stringStop == linie1.length() && curgeCursor == 0) {
stringStart++;
} else {
stringStart++;
stringStop++;
}
}
void setup() {
lcd.begin(16,2);
Serial.begin(9600);
lcd.clear();
for(int i=0;i<4;i++){
if(EEPROM.read(i) == 255){
cod[i] = '0';
}else cod[i] = EEPROM.read(i);
}
lcd.print(" Asteptati !!");
lcd.setCursor(0,1);
lcd.print("Conectare GSM");
SIM900.begin(19200);
delay(20000); // da-mi timp sa ma conectez la retea
pinMode(27,OUTPUT);//RELEU 1
pinMode(29,OUTPUT);//RELEU 2
pinMode(31,OUTPUT);//RELEU 3
pinMode(33,OUTPUT);//RELEU 4
digitalWrite(27,HIGH);// Releul este comandat de un 0 logic , la initializare se tine comanda pe 1 logic pentru ca releele sa nu fie aclansate
digitalWrite(29,HIGH);
digitalWrite(31,HIGH);
digitalWrite(33,HIGH);
pinMode(13,OUTPUT);//Buzzer
pinMode( 11,INPUT);//Pir 1
pinMode(12,INPUT);//Pir 2
// Fotorezistor este conectat pe in analogic 2
pinMode( 9,OUTPUT);//Led 1
pinMode( 10,OUTPUT);//Led 2
opt();
}
void NrIesire(){
timpIesire = 0;
lcd.clear();
lcd.print("Timp de iesire");
while(timpIesire != 20){
lcd.setCursor(0,1);
lcd.print(timpIesire);
timpIesire++;
delay(1000);
}
}
void CitireCeas(){
while(meniu == 1){
lcd.clear();
myRTC.updateTime();
lcd.setCursor(4, 0);
if(myRTC.hours<10)lcd.print("0");
lcd.print(myRTC.hours);
lcd.print(":");
if(myRTC.minutes<10)lcd.print("0");
lcd.print(myRTC.minutes);
lcd.print(":");
if(myRTC.seconds<10)lcd.print("0");
lcd.print(myRTC.seconds);
lcd.setCursor(0, 1);
if(myRTC.dayofmonth<10)lcd.print("0");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
if(myRTC.month<10)lcd.print("0");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.print(" Zi ");
lcd.print(myRTC.dayofweek);
lcd.print(" ");
delay(500);
if(tastatura.getKey()=='*')
{
meniu = 0;
opt();
}
}
}
void setCeas()
{
int submeniu = 0;
int i = 0;
lcd.clear();
lcd.print("Ceas ");
while(meniu == 5 && submeniu == 0){
tasta = tastatura.getKey();
if(tasta && (i == 0 || i == 1)){
ctoi[i] = tasta;
lcd.setCursor(i+5,0);
lcd.print(tasta);
i++;
delay(100);
if(i == 2){
ora = atoi(ctoi);
ctoi[0] = 0;
ctoi[1] = 0;
tasta = 0;
}
}
if(tasta && (i == 2 || i == 3)){
ctoi[i] = tasta;
lcd.setCursor(i+6,0);
lcd.print(tasta);
i++;
delay(100);
if(i == 4){
ctoi[0] = ctoi[2];
ctoi[1] = ctoi[3];
ctoi[2] = 0;
ctoi[3] = 0;
minute = atoi(ctoi);
ctoi[0] = 0;
ctoi[1] = 0;
ctoi[2] = 0;
ctoi[3] = 0;
submeniu = 1;
i = 0;
tasta = 0;
lcd.clear();
lcd.print("Data: ");
//delay(100);
}
}
}
while(meniu == 5 && submeniu == 1){
tasta = tastatura.getKey();
if(tasta && i == 0){
ctoi[i] = tasta;
lcd.setCursor(i+6,0);
lcd.print(tasta);
i++;
delay(100);
if(i == 1){
ziW = atoi(ctoi);
ctoi[0] = 0;
tasta = 0;
}
}
if(tasta && (i == 1 || i == 2)){
ctoi[i] = tasta;
lcd.setCursor(i+7,0);
lcd.print(tasta);
i++;
delay(100);
if(i == 3){
ctoi[0] = ctoi[1];
ctoi[1] = ctoi[2];
ctoi[2] = 0;
ziM = atoi(ctoi);
ctoi[0] = 0;
ctoi[1] = 0;
ctoi[2] = 0;
ctoi[3] = 0;
tasta = 0;
}
}
if(tasta && (i == 3 || i == 4)){
ctoi[i] = tasta;
lcd.setCursor(i+8,0);
lcd.print(tasta);
i++;
delay(100);
if(i == 5){
ctoi[0] = ctoi[3];
ctoi[1] = ctoi[4];
ctoi[2] = 0;
ctoi[4] = 0;
luna = atoi(ctoi);
ctoi[0] = 0;
ctoi[1] = 0;
tasta = 0;
}
}
if(tasta && (i == 5 || i == 6)){
ctoi[i] = tasta;
lcd.setCursor(i+9,0);
lcd.print(tasta);
i++;
delay(100);
if(i == 7){
ctoi[0] = ctoi[5];
ctoi[1] = ctoi[6];
an = atoi(ctoi);
an += 2000;
ctoi[0] = 0;
ctoi[1] = 0;
ctoi[2] = 0;
ctoi[3] = 0;
tasta = 0;
i = 0;
meniu = 1;
myRTC.setDS1302Time(0,minute,ora,ziW,ziM,luna,an);
}
}
}
CitireCeas();
}
void StareSens(){
while(meniu == 3){
lcd.clear();
lcd.print("Stare senzori:");
delay(2000);
digitalWrite(9,digitalRead(11));
digitalWrite(10,digitalRead(12));
gaz_val = analogRead(5);
fot_rez = analogRead(2);
lcd.clear();
lcd.print(gaz_val);
lcd.print(" Val Gaz");
lcd.setCursor(0,1);
lcd.print(fot_rez);
lcd.print( " Val Fotorezi");
delay(2000);
lcd.clear();
tone(13,1000,2000);
lcd.print("Buzzer OK");
delay(1000);
if(tastatura.getKeys()){
int keyPosition = tastatura.findInList('*');
if(tastatura.key[keyPosition].kstate == PRESSED){
meniu = 0;
digitalWrite(9, LOW);
digitalWrite(10,LOW);
opt();
}
}
}
}
void alarma(){
while(armat){
lcd.clear();
lcd.print(" .Alarma activa.");
delay(300);
digitalWrite(9,digitalRead(11));
digitalWrite(10,digitalRead(12));
gaz_val=analogRead(5);
if((digitalRead(9)== HIGH) || (digitalRead(10) == HIGH)){
if(analogRead(2) <= 100){
digitalWrite(27,LOW);
digitalWrite(29,LOW);
}
else {
digitalWrite(27,HIGH);
digitalWrite(29,HIGH);
}
digitalRead(11)==HIGH;
digitalRead(12)==HIGH;
lcd.setCursor(0,1);
lcd.print(" …Alarma…");
delay(300);
tone(13,1000,2000);
if(gsm == false)
{
GSM();
}
}
if(gaz_val > 50) {
digitalWrite(27,HIGH);
digitalWrite(29,HIGH);
lcd.setCursor(0,1);
lcd.print(" …Alarma Gaz… ");
delay(300);
tone(13,1000,2000);
if(gsm == false){
GSM();
}
}
if(tastatura.getKeys()){
int keyPosition = tastatura.findInList('*');
lcd.clear();
lcd.print("Cod dezarmare:");
if(tastatura.key[keyPosition].kstate == PRESSED){
if(VerifCod() == 1){
armat = false;
gsm = true;
}
}
}
}
opt();
}
void GSM()
{
SIM900.print("AT+CMGF=1\r");
delay(1000);
SIM900.println("AT + CMGS = \"" + destinatieNumar +"\"");
delay(1000);
SIM900.print(iesireMesaj);
delay(1000);
SIM900.write((char)26); //ctrl+z
delay(1000);
gsm = true;
}
void SetCod(){
int i = 0;
lcd.clear();
lcd.print("Parola Actuala:");
meniu=2;
if(VerifCod() == 1){
lcd.clear();
lcd.print("Parola Noua:");
meniu =4;
while(meniu==4){
lcd.setCursor(0,1);
while(i!=4)
{
char tasta=tastatura.getKey();
if(tasta)
{
cod[i]=tasta;
lcd.print(cod[i]);
i++;
lcd.setCursor(i,1);
}
}
tasta = 0;
while(i == 4){
if(tastatura.getKey()){
int keyPosition = tastatura.findInList('#');
if(tastatura.key[keyPosition].kstate == PRESSED){
for(int i=0;i<4;i++){
EEPROM.write(i,cod[i]);
}
lcd.clear();
lcd.print("Cod Memorat!");
meniu = 0;
i=0;
delay(500);
}
keyPosition = tastatura.findInList('*');
if(tastatura.key[keyPosition].kstate == PRESSED){
for(int i=0;i<4;i++){
if(EEPROM.read(i) == 255){
cod[i] = '0';
}else cod[i] = EEPROM.read(i);
}
meniu = 0;
i=0;
}
}
}
}
}else opt();
opt();
}
int VerifCod(){
int i = 0;
int corect = 0;
tasta = 0;
lcd.setCursor(0,1);
while(meniu == 2){
while (i<4){
tasta = tastatura.getKey();
if(tasta && i == 0){
if(tasta == cod[0])corect++;
i++;
tasta = 0;
lcd.setCursor(i,1);
lcd.print('*');
delay(100);
}
if(tasta && i == 1){
if(tasta == cod[1])corect++;
i++;
tasta = 0;
lcd.setCursor(i,1);
lcd.print('*');
delay(100);
}
if(tasta && i == 2){
if(tasta == cod[2])corect++;
i++;
tasta = 0;
lcd.setCursor(i,1);
lcd.print('*');
delay(100);
}
if(tasta && i == 3){
if(tasta == cod[3])corect++;
i++;
tasta = 0;
lcd.setCursor(i,1);
lcd.print('*');
delay(100);
}
}
if(i == 4 && corect == 4){
return(1);
}
if(i == 4 && corect != 4)
{
meniu = 0;
lcd.clear();
lcd.clear();
lcd.print("Cod armare:");
lcd.setCursor(0,1);
lcd.print("COD ERONAT!!");
tasta = 0;
delay(500);
opt();
}
delay(300);
}
}
void loop() {
lcd.setCursor(curgeCursor, 0);
lcd.print(linie1.substring(stringStart,stringStop));
lcd.setCursor(0, 1);
lcd.print(linie2);
delay(400);
opt();
numar = linie1.length();
if (stringStart == numar)
{
stringStart = 0;
stringStop = 0;
}
char tasta = tastatura.getKey();
switch(tasta){
case '1':
CitireCeas();
meniu = 1;
break;
case '2':
meniu = 2;
lcd.clear();
lcd.print("Cod armare:");
//delay(1000);
if(VerifCod() == 1){
NrIesire();
armat = true;
alarma();
};
break;
case '3':
meniu = 3;
StareSens();
break;
case '4':
meniu = 4;
SetCod();
break;
case '5':
meniu = 5;
setCeas();
break;
}
}
DECLARAȚIE DE AUTENTICITATE
A
PROIECTULUI DE FINALIZARE A STUDIILOR
Titlul proiectului Proiectarea și realizarea unui sistem de alarmă cu avertizare la
efracție cu Arduino
Autorul proiectului Crețan Claudiu Marian______________________________
Proiectul de finalizare a studiilor este elaborat în vederea susținerii examenului de finalizare a studiilor organizat de către Facultatea _______________I.E.T.I._________________________ din cadrul Universității din Oradea, sesiunea________iulie_________ a anului universitar __2016___________.
Prin prezenta, subsemnatul (nume, prenume, CNP)__Crețan Claudiu Marian_
____1771116181152___________________________________________________
___________________________________________________________________,
declar pe proprie răspundere că acest proiect a fost scris de către mine, fără nici un ajutor neautorizat și că nici o parte a proiectului nu conține aplicații sau studii de caz publicate de alți autori.
Declar, de asemenea, că în proiect nu există idei, tabele, grafice, hărți sau alte surse folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.
Oradea,
Data Semnătura
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: FUNDAȚIA PENTRU CULTURĂ ȘI ȊNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [301519] (ID: 301519)
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.
