Sistem de Alarma

Aici puneţi tot ce ţine de hardware design:

  • Nume: Vidrighin Andrei-Catalin
  • Grupa: 333CA

Introducere

Proiectul isi propune realizarea unui sistem de alarma multifunctional care sa reactioneze la mai multi factori, de exemplu fumul respectiv vibratiile. In functie de informatia primita sistemul va reactiona diferit.

In cazul detectiei fumului acesta va actiona un motor ce deschide un geam si un alt motor ce porneste un ventilator care are rolul de a elimina pe geam gazele toxice, iar in cazul detectiei de vibratii, la usa, sistemul va actiona o bariera ce va consolida usa astfel incat patrunderea in casa va fi mult mai complicata sau chiar imposibila.

Descriere generală

Sistemul are mai multe componente principale printre care se numara:

  • cele 3 motorase fiecare cu sarcina sa. Un motoras ce se ocupa cu deschiderea/inchiderea geamului, un altul ce actioneaza ventilatorul si cel de al treilea ce se ocupa cu coborarea barierei de fortificare;
  • un senzor de gaz MQ2 care este folosit pentru a detecta scurgerile de gaze în încăperi mici sau mari și reprezintă o metodă de precauție pentru incendii sau pentru intoxicații;
  • un senzor de vibrații SW-520D, un senzor care este folosit în fabricarea bombelor, care se ocupa de trasmiterea informatiilor legate de vibratii catre sistem;

Hardware Design

Listă de piese:

  • Placă Arduino NANO;
  • Senzor de fum MQ-2;
  • Senzor de vibrații tilt SW 520-D;
  • 2x DC Motor pentru ventilator și geam;
  • Motor în miniatură pentru barieră;
  • Breadboard;
  • 2x Shift Register L293D;
  • LED Roșu;
  • Rezistori(10k Ω si 330 Ω);
  • Buzzer.

În ceea ce privește mecanismul de coborâre și ridicare a barierei în fața ușii, în cazul detectării unor vibrații puternice, am folosit un senzor de vibrații SW-520D, un senzor care este folosit în fabricarea bombelor. Pe Breadboard este așezat vertical, iar în interior sunt două bile așezate una peste cealaltă, fiind starea inițială care va returna 1-logic. În cazul unei vibrații puternice, iar în conformitate cu principiul acțiunii și reacțiunii, cele două bile nu se vor atinge într-un interval scurt de timp, bila de deasupra fiind ușor înălțată, astfel returnând 0-logic.

Aceste rezultate duc la o logică inversă în ceea ce privește codul și funcționalitățile oferite de către placa Arduino, astfel am luat în calcul următorul scenariu: diferența dintre cazul în care cineva ar vrea să intre prin efracție într-o clădire și cazul în care un musafir vine și bate la ușă, nereușind să genereze o vibrație atât de puternică pentru a activa senzorul.

Când senzorul de vibrație nu mai detectează nimic, bariera se va ridica în poziția inițială, iar alarma se va opri. sw-520d.jpg

Declanșarea sistemului de incendiu este prevăzută cu un senzor de gaz MQ2 care este folosit pentru a detecta scurgerile de gaze în încăperi mici sau mari și reprezintă o metodă de precauție pentru incendii sau pentru intoxicații. Senzorul are o sensibilitate ridicată și principalele gaze pe care le vizează sunt GPL-ul, izobutan, propan, metan, alcool, hidrogen și fum. Senzorul dispune de un comparator, astfel că poate citi date analogice în timp real sau poate afla dacă concentrația de gaz a depășit o anumită limită. Pe partea de software, în cod este setată o anumită limită a valorii obținute de către senzor, ceea ce duce la sensibiliatea sa și modul de desfășurare al procesului.

Când limita valorii obținute depășește valoarea impusă, sistemul de incendiu este activat, astfel cele doua motoare DC vor porni, unul va deschide geamul din încăpere, iar celălalt va porni ventilatorul din dreptul geamului. Ventilatorul are un rol important, dat fiind de faptul că anumite gaze sau fumuri sunt foarte dense, întrucât nu este de ajuns doar deschiderea unui geam pentru a diminua pe cât posibil pericolul. De asemenea, va porni alarma de incendiu formată dintr-un buzz pasiv care generează un sunet și un LED roșu se va aprinde.

În cazul în care senzorul returnează valori care nu depășesc de limita impusă, atunci sistemul va reveni în poziția inițială, astfel geamul se va închide, ventilatorul și alarma se vor opri.

mq-2.jpg

În ceea ce privește rotația motoarelor, motorul ventilatorului se învârte decât într-un sens, întrucât are doar rolul de a scoate fumul sau gazul afară, nefiind necesar de rotația inversă, dar, în cazul motoarelor specifice barierei și geamului, am folost 2x Shift Register L293D pentru a putea roti cele două motoare în ambele sensuri, deoarece, după ce a fost declanșată alarma, iar pericolul a fost îndepărtat, sistemul trebuie să revină la poziția inițială.

l293d.jpg

Sistem de alarma in teste(stare finala)

theend.jpg

Software Design

Mediu de dezvoltare:

  • Arduino IDE

Librarii utilizate: -

Descriere Software

Declarații și Inițializări

Se declară pinii pentru diferite componente: senzori (de fum și vibrații), motoare (pentru barieră și fereastră), LED și buzzer. De asemenea, se definesc două variabile booleene pentru a păstra starea ferestrei și barierei. quarterRotationTime și windowRotationTime definesc timpul necesar pentru o rotație parțială a motoarelor.

Funcția setup

Funcția setup inițializează pinii ca intrări sau ieșiri, setează tonul buzzer-ului și pornește comunicarea serială pentru debugging.

Funcția loop

În bucla loop, se citesc valorile senzorilor de vibrații și fum și se afișează pentru debugging. Se controlează motorul barierei și cel al ferestrei pe baza valorilor citite:

  • Dacă senzorul de vibrații detectează o vibrație (vibration == 0), bariera se coboară și LED-ul și buzzer-ul se activează. După o scurtă întârziere, bariera se oprește și variabila barrierDown este setată la true.
  • Dacă vibrațiile nu mai sunt detectate și bariera este jos, bariera se ridică și LED-ul și buzzer-ul se opresc, iar variabila barrierDown este setată la false.

Similar, pentru senzorul de fum:

  • Dacă valoarea citită de senzorul de fum depășește 170, fereastra se deschide, ventilatorul pornește și LED-ul și buzzer-ul se activează. După o scurtă întârziere, fereastra se oprește și variabila windowOpen este setată la true.
  • Dacă nivelul de fum scade sub 170 și fereastra este deschisă, fereastra se închide și ventilatorul se oprește, iar variabila windowOpen este setată la false.

Funcții pentru citirea senzorilor și oprirea motoarelor

  • readVibrationSensor: citește valoarea senzorului de vibrații.
  • readSmokeSensor: citește valoarea senzorului de fum și o mapează pe o scară de la 0 la 255.
  • turnOffBarrier și turnOffWindow: opresc motoarele barierei și ferestrei, respectiv.

In concluzie

Acest cod este util pentru a monitoriza și reacționa la vibrații și fum, oferind o soluție automată pentru controlul unei bariere și a unei ferestre într-un sistem de siguranță.

Testare si rezultate

Procedura de testare:

  • Testarea senzorului de fum: generarea de gaz controlat și observarea răspunsului sistemului;
  • Testarea senzorului de vibrații: simularea unor vibrații și observarea răspunsului sistemului;
  • Testarea motoarelor: verificarea mișcării barierei, al geamului și al ventilatorului în funcție de semnalele senzorilor;
  • Testarea alarmei de incendiu și de antiefracție: verificarea declanșării și opririi alarmei, pe baza a mai multor scenarii posbile.

Rezultate:

  • Senzorul de fum a declanșat deschiderea geamului și pornirea ventilatorului;
  • Senzorul de vibrații a declanșat coborârea barierei;
  • Mișcarea barierei și a geamului a fost corectă și în conformitate cu așteptările;
  • Alarma a fost declanșată în mod corespunzător.

Bibliografie/Resurse

pm/prj2024/amocanu/123893.txt · Last modified: 2024/05/27 17:23 by andrei.vidrighin
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0