II.1. Istoric Arduino 10 [307956]
Cuprins
Capitolul I. Introducere 8
Capitolul II. Arduino 10
II.1. Istoric Arduino 10
II.2. Partea Arduino Software 11
II.3. Partea Arduino Hardware 21
II.4. Programarea plăcuței Arduino 22
II.5. Ce poți realiza cu o plăcuță Arduino 25
II.6. De ce Arduino? 27
Capitolul III. Sisteme de alarmă 31
III.1. Ce este un sistem de alarmă 32
III.2. Clasificarea sistemelor de alarmă 32
III.3. Utilitatea unui sistem de alarmă 33
III.4. Legislația si terminologia sistemelor de alarmă 34
III.5. Proiectarea unui sistem de alarmă 37
III.6. III.6 Alegerea și achiziționarea unui sistem de alarmă 39
III.7. Ce oferă un astfel de sistem? 40
Capitolul IV. “Sistem de automatizare și securizare a locuințelor” 41
IV.1. Ce reprezintă “Sistem de automatizare și securizare a locuințelor”? 41
IV.2. Proiectarea modelului “Sistem de automatizare și securizare a locuințelor” 42
IV.2.1. Componentele folosite în proiectare 48
IV.3. Software folosit în programarea plăcuței Arduino 52
IV.4. Implementarea sistemului de alarmă bazat pe Arduino Mega 2560 53
IV.5. Testarea Sistemului de automatizare și securizare a locuințelor 59
Capitolul V. Concluzii 64
V.1. Diferențe: sistem de alarmă tradițional și “Sistem de alarmă Arduino” 64
V.2 Observații și posibilități de îmbunătățire 66
Bibliografie 68
Anexe 70
Capitolul I. [anonimizat] a locuințelor.
Specialiștii în domeniul sistemelor de securitate promulgă faptul că folosirea unui sistem de securitate în combinație cu un sistem de supraveghere video are multiple efecte benefice printre care: ridicarea gradului de securitate a obiectivului protejat și reducerea numărului de persoane desemnate în acest scop. Într-o [anonimizat] a devenit echivalentă cu deținerea unui sistem de alarmă.
[anonimizat] a fi o [anonimizat] o [anonimizat] 2560 și o [anonimizat] o soluție de securitate sau ca un exemplu de utilizare a unui hardware open source pentru a înlocui o [anonimizat].
Motivul care m-a determinat în alegerea acestei teme a fost faptul că pe parcursul anilor de studii am dezvoltat un interes deosebit pentru partea de open source hardware. [anonimizat] a devenit o necesitate care nu poate fi ignorată. Convingerea că statul și instituțiile responsabile cu protecția cetățenilor eșuează în această direcție, a reprezentat, [anonimizat].
Principiile care au stat la baza proiectării sistemului de alarmă din această lucrare sunt similare cu ale unui sistem de alarmă tradițional și urmăresc realizarea acelorași funcții (avertizare, detecție, supraveghere video). [anonimizat] 2560 și o serie de componente electronice care execută funcții specifice de detectare, avertizare și interfațare cu utilizatorul sistemului de alarmă, emulând în acest fel un sistem tradițional de alarmă. Adăugarea unei componente suplimentare de supraveghere video a fost una dintre ideile care se pot utiliza în cazul oricărui sistem de alarmă pentru a-i spori eficiența și pentru a-i adăuga o capabilitate suplimentară de integrare într-un sistem care se dorește să fie modular și flexibil.
Structura scrisă lucrării se împarte în cinci capitole, astfel:
Capitolul I.Introducere, descrie, în mod sintetizat esența lucrării, aspecte generale, subiectul tratat, motivația lucrării și structura acesteia.
Capitolul II. Arduino – Prezentare generală, este structurat sub forma a cinci subcapitole ce tratează, din punct de vedere teoretic, istoria plăcilor Arduino, partea de soft si hard, precum și capabilitatea de programare a acestora.
Capitolul III. Sisteme de alarmă, este structurat sub forma a șase subcapitole și sintetizează ansamblul sistemelor de securitate, clasificarea și utilitatea acestora. De asemenea, sunt analizate aspectele legislative și terminologice ale sistemelor de securitate, iar ca în încheierea acestui capitol este prezentată modalitatea de proiectare a unui sistem de securitate tradițional.
Capitolul IV. “Sistem de automatizare și securizare a locuințelor”, reprezintă aportul individual adus lucrării de față, prin realizarea studiului de caz. Structura capitolului este sub forma a cinci subcapitole ce explică detaliat, din punct de vedere teoretic și practic, ce reprezintă și cum a fost proiectat, pas cu pas, sistemul de automatizare și securizare a locuințelor. Totodată, în acest capitol, am prezentat componentele si softul folosit, precum și testarea funcționalității acestuia.
Capitolul V, este destinat concluziilor finale ce au survenit din partea teoretică și aportul individual, completat cu observații personale despre îmbunătățirea sistemului de securitate construit cu placa Arduino Mega 2560.
„Este tot mai evident că securitatea devine, în secolul XXI, pilonul pe care se fundamentează dezvoltarea economică și, implicit, bunăstarea populațiilor. Paleta în care trebuie gestionată problematica securității de la individ la mediul înconjurător impune noi abordări, noi concepte și instrumente atât decizionale cât și acționale.”
Capitolul II. Arduino
În capitolul de față vom structura sub forma a cinci subcapitole, ce tratează din punct de vedere teoretic, istoria plăcilor Arduino, partea de soft si hard, precum și capabilitatea de programare a acestora.
II.1. Istoric arduino
“Arduino este o companie open-source care produce atât plăcuțe de dezvoltare bazate pe microcontrolere, cât și partea de software destinată funcționării și programării acestora. Pe lângă acestea, include și o comunitate uriașă care se ocupă cu creația și distribuirea de proiecte care au ca scop crearea de dispozitive care pot sesiza și controla diverse activități sau procese în lumea reală.”
Proiectul este bazat pe designul plăcilor cu microcontroler produse de câțiva furnizori, folosind diverse tipuri de microcontrolere. Aceste plăci pun la dispoziția utilizatorului pini I/O, digitali și analogici, care pot fi interfațați cu o gamă largă de plăcuțe numite scuturi (shield-uri) și/sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru a încărca programe din calculatorele personale. Pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, care include suport pentru limbaje de programare ca C și C++.
Primul Arduino a fost lansat în 2005, având ca țintă asigurarea unei soluții ieftine și simple pentru începători și profesioniști spre a crea dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare. Cele mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboții simpli, termostatele și/sau detectoarele de mișcare.
Plăcuțele Arduino sunt disponibile comercial sub formă preasamblată sau sub forma unor kituri de asamblat acasă (do-it-yourself). Specificațiile schemelor sunt disponibile pentru orice utilizator, permițând oricui să fabrice plăcuțe Arduino. Adafruit Industries estimase la mijlocul anului 2011 că peste 300.000 de plăcuțe oficiale Arduino au fost produse, iar în 2013 700.000 de plăcuțe oficiale erau în posesia utilizatorilor.
Columbianul Hernando Barragan, student al “Institutului de Interacțiune a Designului” din Ivrea, Italia, a creat în 2004 platforma de dezvoltare Wiring, acesta fiind proiectul tezei sale de masterat și baza realizării plăcuței Arduino. Massimo Banzi și Casey Reas (cunoscut pentru activitatea sa în limbajul de programare Processing) au fost cei ce l-au supravegheat în realizarea tezei. Scopul a fost crearea cu un cost redus, a unor instrumente simple cu ajutorul cărora se pot realiza proiecte digitale, ce pot fi utilizate de persoane care nu lucrează în domeniul ingineriei. Platforma electrică a fost constituită dintr-un hardware PCB cu un microcontroller ATmega128, un mediu integrat de dezvoltare (IDE) bazat pe Proccesing și funcții cu ajutorul cărora poți programa ușor un microcontroller.
În 2005, Massimo Banzi, David Mellis și David Cuartielles au adăugat un microcontroller mai ieftin ATmega 8. Ei au bifurcat codul sursă al acesteia și au început să îl ruleze ca un proiect separat, pe care l-au denumit Arduino. Echipa care a pus bazele proiectului Arduino a fost formată din: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino și David Mellis.
Numele de Arduino vine de la un bar din Ivrea, locul în care fondatorii proiectului se întâlneau. Barul a fost numit după Arduin din Ivrea, un marchiz al Ivrea (margrav) și regele Italiei din 1102 până în 1014.
II.2. Hardware Arduino
O placă Arduino este formată dintr-un microcontroller Atmel AVR 8-, 16- sau 32 bits cu componente suplimentare care ușurează programarea și încorporarea acesteia în cadrul altor circuite. Un aspect important al plăcii Arduino sunt conectorii standard, care dau șansa utilizatorilor să conecteze placa cu procesorul la o varietate de module interschimbabile, denumite shield-uri.
Unele shield-uri comunică cu placa Arduino direct prin intermediul pinilor, dar multe shield-uri sunt individual adresabile prin intermediul magistralei seriale I²C (un canal partajat care transmite un bit de date, unul după altul pe un singur fir sau fibră; de exemplu, Ethernetul), astfel multe shield-uri pot fi stivuite și utilizate în paralel.
Înainte de 2015, plăcile oficiale Arduino utilizau seria mega AVR de cip-uri Atmel, în special ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560.
La nivel conceptual, atunci când se utilizează mediu de dezvoltare integrat Arduino, toate plăcile sunt programate printr-o conexiune serială. Implementarea acestuia variază în funcție de versiunea hardware. Unele plăci de serie Arduino conțin un circuit de nivel shifter pentru a converti între nivele logice RS-232 și semnalele nivelelor logice tranzistor-tranzistor (TTL).
Placa Arduino expune o bună parte din pinii de intrare/ieșire a microcontoller-ului pentru a putea fi întrebuințați și de alte circuite. Arduino Diecimila (inferior alfa 1), Arduino Duemilanove (inferior alfa 2) și Arduino Uno (inferior alfa 3) furnizează 14 pini digitali de intrare/ieșire. Șase dintre aceștia pot produce semnale PWM (Pulse Witdh Modulation, înseamnă că avem un semnal modulat în lățimea impulsurilor de comandă, adică un astfel de semnal PWM constă în codarea informației în lățimea impulsului obținut) și șase intrări analogice, ce pot fi folosite ca intrări/ieșiri digitale.
Hardware-ul plăcuței originale Arduino a fost produs de compania italiană Smart Projects, câteva plăcuțe din marca Arduino au fost proiectate de companii din America: SparkFun Electronics și Adafruit Industries. În scop comercial, până în anul 2016 au fost produse 17 versiuni de hardware Arduino.
Exemple de plăcuțe Arduino:
Arduino Diecimila in Stoicheia
Figura 2.1. Arduino Decimila in Stocheia
Arduino Duemilanove (rev 2009b): este o platformă de procesare bazată pe microcontrolerul ATmega168 sau ATmega328. Are 14 pini de intrări/ieșiri digitale.
Figura 2.2. Arduino Duemilanove
Arduino UNO: Aceasta este cea mai recentă placă de dezvoltare de la Arduino. Se conectează la computer prin intermediul cablului USB standard A-B și conține tot ceea ce este nevoie pentru a programa și utiliza placa. Acestuia i se poate adăuga o varietate de shield-uri. Este similar cu Duemilanove, dar are un chip diferit USB-to-serial–ATMega8U2, și cu un design nou de etichetare pentru a identifica mai ușor intrările și ieșirile.
Figura 2.3. Arduino Uno
Arduino Fio: Proiectată pentru aplicații fără fir. Acesta are inclusă o priză dedicată pentru un modul radio Wi-Fi XBee, un conector pentru o baterie Li Polymer și circuite integrate de încărcare a bateriei.
Figura 2.4. Arduino Fio
Arduino Leonardo: utilizează microcontrolerul ATmega32u4, care oferă 20 de interfețe I / O digitale, 7 ieșiri PWM și 12 intrări analogice. Arduino Leonardo are același layout de antet ca și Uno, cu mufe suplimentare de antet pentru interfețele suplimentare. O caracteristică deosebită a plăcuței Arduino Leonardo este că poate simula o tastatură și un mouse când este conectată la o stație de lucru utilizând portul USB.
Figura 2.5. Arduino Leonardo
Arduino Mega 2560: versiune a modelului Mega lansat cu Uno, această versiune dispune de Atmega2560, care are de două ori mai mult spațiu pentru memorie, și folosește 8U2 ATMega pentru comunicare USB-to- serial.
Figura 2.6. Arduino Mega 2560
Arduino Nano: O placă de dezvoltare compactă proiectată pentru utilizarea pe un breadboard. Nano se conectează la computer utilizând un cablu USB Mini-B.
Figura 2.7. Arduino Nano
Arduino Due (ARM Cortex-M3 core): utilizează un procesor ARM Cortex-M3 de 32 de biți, în locul microcontrolerului standard ATmega328. Acest lucru oferă o putere de procesare mult mai mare decât a plăcuței arduino Uno. Arduino Due oferă 54 de interfețe I / O digitale, 12 ieșiri PWM, 12 intrări analogice și 4 interfețe de transmisie asincronă / transmițător universal (UART). De asemenea, oferă o memorie mult mai mare, cu 96KB de SRAM pentru stocarea datelor și 512KB de memorie flash pentru stocarea codului de program.
Figura 2.8. Arduino Due
Arduino LilyPad (rev 2007): Proiectat pentru aplicații ușor de implementat pe materiale textile și poate fi cusut direct pe țesătură.
Figura 2.9. Arduino LilyPad
Arduino Yun: este un experiment interesant prin combinarea versatilității hardware a unui microcontroler ATMega32u4 cu un microprocesor Atheros care rulează un mediu de sistem de operare Linux. Cele două jetoane comunică direct între ele pe placa de circuite Yun, astfel încât microcontrolerul ATmega poate transmite date direct către sistemul Atheros pentru procesarea pe sistemul Linux.
Figura 2.10 Arduino Yun
Arduino Serial: Este o placă de dezvoltare, care utilizează ca interfață un RS232 (COM) la un calculator pentru programare sau de comunicare. Acestă placă este ușor de asamblat, chiar ca un exercitiu de învățare. (Inclusiv scheme și fișiere CAD)
Figura 2.11. Arduino Serial
Serial Single Sided: Acestă placă de dezvoltare este concepută pentru a fi gravată și asamblată de mână. Este puțin mai mare decât Duemilanove, dar este compatibilă cu toate shield-urile Arduino.
Figura 2.12. Arduino Serial Single Sided
Arduino PRO: Acestă placă de dezvoltare este concepută pentru utilizatorii avansați care doresc să încorporeze această placă într-un proiect: este mai ieftin decât un Diecimila și ușor de alimentat la o baterie, dar necesită componente suplimentare și asamblare.
Figura 2.13. Arduino Pro
Arduino Pro Mini: La fel ca și Arduino Pro, Pro Mini este conceput pentru utilizatorii avansați care se orientează către ceva low-cost, plăci de dezvoltare mici și care sunt dispuși să o adapteze corespunzător pentru a o putea utiliza în proiecte.
Figura 2.14. Arduino Pro Mini
Arduino Mini: Aceasta este cea mai mică placă de dezvoltare de la Arduino. Aceasta funcționează bine într-un breadboard sau pentru aplicații în care spațiul este limitat. Se conectează la calculator prin intermediul unui cablu mini USB Adapter.
Figura 2.15. Arduino Mini
Plăcuțele Arduino și plăcuțele Arduino-compatibile folosesc plăcuțe de expansiune ce au circuite imprimate, denumite shield-uri, care se pot conecta la pinii de pe plăcuța Arduino. Aceste shield-uri pot controla motoare, Ethernet, LCD-uri, GPS-uri.
Exemple de shield-uri Arduino:
Mai multe shield-uri pot fi suprapuse.
În acest exemplu, shield-ul superior conține un breadboard.
Figura 2.16. Shield-uri suprapuse
Shield cu terminale cu șuruburi dispuse sub formă de aripi.
Figura 2.17. Shield cu terminale cu șuruburi dispuse sub formă de aripi.
Shield Adafruit Motor cu terminale cu șurub pentru conectarea motoarelor.
Figura 2.18. Shield Adafruit Motor cu terminale cu șurub pentru conectarea motoarelor
Shield Adafruit pentru înregistrarea datelor cu slot pentru card SD și cip ceas RTC.
Figura 2.19. Shield Adafruit pentru înregistrarea datelor cu slot pentru card SD și cip ceas RTC
Shield HackARobot Fabric – proiectat pentru Arduino Nano, cu posibilitatea de a conecta motoare și senzori, ca un giroscop sau un GPS și alte module cum ar fi: WiFi, Bluetooth, RF, etc.
Figura 2.20. Shield HackARobot Fabric
II.3. Software Arduino
Partea de software Arduino poate fi scrisă în orice limbaj de programare cu un compilator capabil să producă un cod mașină binar. Atmel oferă un mediu de dezvoltare pentru microcontrolerele sale, AVR Studio și mai nou, Atmel Studio.Arduino oferă un mediu integrat de dezvoltare (IDE), care este o aplicație cross-platform, scrisă în Java.
Acesta își are originile în mediul de dezvoltare pentru limbajul de programare Processing și în proiectul Wiring. Este proiectat pentru a-i iniția în dezvoltarea software pe cei nefamiliarizați cât și pe cei interesați să își dezvolte aptitudini în acest sens. Încorporează un editor de cod cu funcții precum evidențierea sintaxelor, potrivirea acoladelor, spațierea automată și oferă mecanisme simplificate cu un singur click, pentru a compila și a încărca programele în plăcuța Arduino. Un program scris în IDE pentru Arduino se numește sketch.
Arduino IDE suportă ca limbaje de programare C și C++ folosind reguli speciale de organizare a codului. Arduino IDE oferă o librărie software numită Wiring care conține multe proceduri comune de intrare și ieșire. Un sketch tipic pentru Arduino scris în C/C++ este compus din două funcții care sunt compilate și legate cu un ciot de program main(), într-un program executabil cu o execuție ciclică:
setup(): funcție rulată o singură dată la începutul programului, când se inițializează setările.
loop(): funcție apelată în mod repetat până la oprirea alimentării cu energie a plăcuței.
După compilarea și conectarea cu GNU toolchain inclus, de asemenea, în IDE, mediul de dezvoltare Arduino trimite o comandă către programul avrdude pentru a converti codul executabil într-un fișier text codat hexazecimal, ce poate fi încărcat în placuța Arduino printr-o librarie software(Wiring).
II.4. Programarea plăcuței Arduino
„În mod obișnuit, un proiect ce are la bază o platformă Arduino constă într-o platformă Arduino sau una compatibilă și mai multe module conectate la aceasta. Toate aceste elemente sunt disponibile, sub o formă sau alta, pe orice plăcuță Arduino sau compatibilă”..
Construirea unui proiect, folosind o plăcuță Arduino, constă într-o serie de module conectate între ele. Modulele se împart pe categorii, în funcție de o serie de criterii (structurate mai jos după funcție). În cele ce urmează, sunt prezentate succint cele mai importante tipuri de module:
Platforma de dezvoltare – este placa electronică ce conține microcontroller-ul programabil. Deoarece platforma Arduino este open source, avem disponibile atât platforme Arduino originale(țara de fabricație fiind Italia), cât și clone compatibile, mai accesibile din punct de vedere al prețului(țara de fabricație fiind China). Chiar daca limbajul de programare este practic identic, vom gasi multe astfel de platforme care pot sa difere din punct de vedere fizic si al capabilitatilor programabile.
Module de intrare(SENZORI): sunt senzorii ce se conectează la platforma Arduino pentru transmiterea de date.
Module de ieșire: sunt conectate la platforma Arduino pentru a permite acesteia să transmită date. Acestea pot fi relee, afișaje, difuzoare e.t.c.
Module de date: permit comunicarea directă cu alte dispozitive și alte module Arduino. Printre module de date cu care se stabilește comunicarea putem aminti module Ethernet(comunicație prin internet sau rețea locală), module radio(pot stabili comunicarea cu computere și/sau alte platforme Arduino), module USB(programarea inițială a microcontrollerului), module GSM, e.t.c.
Accesorii: nu sunt module Arduino, fiind însă o parte uzuală a proiectelor de acest tip. Exemple de accesorii: soluții de alimentare cu curent electric până la cele mai diverse accesorii.
Conectorii sunt partea cu adevărat importantă din realizarea unui proiect și poartă denumirea de conectori mamă. O denumire mai des întâlnită a acestora este cea de pin/pini. Conform descrierilor tipărite pe plăcuțe, pinii au următoarele funcții:
GND(ground), – este polul negativ al circuitului, tensiune 0 volți
5V – prezintă o tensiune de 5 volți față de GND
N.B.: în funcție de modelul platformei de dezvoltare, tensiunea de lucru este de 5V sau 3,3V
VCC – tensiunea de intrare. Platforma Arduino se alimentează fie prin conectorul USB, fie prin mufa de alimentare; acest pin prezintă tensiunea de alimentare neschimbată
Digital 0, Digital 1, …, Digital N – pini de intrare/ieșire digitală. Calitatea de intrare sau ieșire se poate decide din program. Aceștia au două stări: 1 sau 0 (logic), HIGH/LOW (notația în cod), 5V sau 0V (tensiunea propriu-zisă).
Analog 0, Analog 1, …, Analog N – sunt pini de intrare analogică. Pot citi valori între 0 și 1023, valori corespunzătoare tensiunii de intrare (între 0 și 5V)
Conectarea propriu-zisă
În principiu, orice modul extern are nevoie de minim trei fire de conectare: două sunt pentru alimentare (GND și 5V) și minim unul pentru semnal (înspre sau dinspre modul, în funcție de natura acestuia).
Observație! Există module ce funcționează la 3,3V, având ca și corespondent plăcuțe Arduino contruite să lucreze doar la 3,3V. Daca, în mod eronat, alimentarea unui modul de 3,3V se face la pinul de 5V al unei platforme Arduino, se poate declanșa arderea ireversibilă a modulului respectiv.
O funcție, însumează un bloc de cod ce are un nume, iar un bloc de instrucțiuni vor fi executate atunci când este apelată funcția. Funcțiile personalizate sunt utilizate la efectuarea unor sarcini repetitive și la reducerea dezordinii într-un program.
Variabila este o metodă de numire și stocare a unor valori numerice pentru o utilizare ulterioară a programului. Așa cum sugerează și numele lor, variabilele sunt numere care se pot schimba în mod continuu, spre deosebire de constante, ale căror numere nu se schimbă niciodată. Variabilele trebuie declarate și atribuite opțional unei valori care trebuie să fie stocată.
Un program se poate compila și executa cu ajutorul celor două comenzi de bază ale plăcuței Arduino:
• Verificare (Verify) – comandă ce presupune compilarea programului scris
• Încărcare (Upload) –comandă folosită pentru încărcarea programului în tabelul Arduino, urmând executarea acestuia.
Exemple de funcții/variabile:
• digitalWrite (pin, value): – ex: digitalWrite (pin, HIGH)
Afișează nivelul logic HIGH/LOW la o valoare digitală specificată a pinului. Pinul poate fi specificat ca variabilă sau constantă (0-13)
• digitalRead (pin): –
Citește valoarea dintr-un pin digital specificat cu rezultatul HIGH/LOW. Pinul poate fi specificat ca variabilă sau constantă (0-13)
Value =digitalRead (pin) – stabilește valaorea pinului
• analogWrite (pin, value): –
Scrie o valoare pseudo-analogica folosind PWM activat hardware la un pin de ieșire marcat PWM. Valoarea poate fi specificată ca variabilă sau constantă cu o valoare de la 0 la 255.
AnalogWrite (pin, value) – scrie “value” (valoarea) la pinul analogic
O valoare de 0 generează o ieșire constantă de 0 volți la pinul specificat. Valoarea de 255 generează o ieșire constantă de 5 volți la pinul specificat. Pentru valori între 0 și 255, pinul alternează rapid între 0 și 5 volți, cu cât este mai mare valoarea, cu atât este mai frecvent pinul HIGH (5 volți).
• analogRead (pin):
Citește valoarea dintr-un pin analogic specificat, cu o rezoluție de 10 biți. Această funcție funcționează doar pe analogul în pin (0-5). Valorile întregi rezultate variază între 0 și 1023.
Value = analogRead (pin) – stabilește valoarea egală cu a pinului.
• pinMode (pin, mode):
Folosit în void setup () pentru a configura un pin specificat, astfel încât acesta să se comporte fie ca un INPUT fie ca un OUTPUT.
PinMode (pin, OUTPUT) – setează pinul de ieșire
PinMode (pin, INPUT) – setează pinul de intrare
Programarea microcontroller-ului – este necesară conectarea plăcuței Arduino la computerul pe care este instalat mediul de dezvoltare și driverele necesare. Mediul de dezvoltare poate fi gasit, gratuit, pe http://arduino.cc/en/Main/Software pentru diverse sisteme de operare. În cele ce urmează vom explica procesul de instalare, destinat utilizatorilor de Microsoft Windows:
Se descarcă aplicația de pe adresa http://arduino.cc/en/Main/Software. Următorul pas este dezarhivarea acesteia intr-un director potrivit. (de ex: directorul C:\arduino-1.0).
Se conectează plăcuța Arduino, prin USB, la computer
Daca este solicitată indicarea locației drverului, se face trimiterea către C:\arduino-1.0(directorul în care a fost dezarhivată aplicația)
Se pornește mediul de dezvoltare executând C:\arduino-1.0\arduino.exe
Se va indica modelul plăcuței în meniul de instrumente Tools > Board
Se va specifica portul pe care s-a făcut conectarea plăcuței Arduino în meniul de instrumente Tools > Serial Port
Se va alege din meniu exemplul Blink: File > Examples > 1. Basics > Blink
Se va încărca programul pe plăcuța Arduino: File > Upload
II.5. Ce poți realiza cu o plăcuță Arduino
Robotul Arduino
Robotul Arduino este considerat de MAKE Magazine primul proiect ideal al unui robot. Poate fi programat sa se miste pe cele doua roti ale sale in timp ce evita si obstacolele.
Figura 2.21 – Robot Arduino
Giroscop MPU – 6050 + Processing
Giroscopul este un instrument care ajută la orientarea unui corp solid in spatiu. În exemplul de mai jos se pune accentual pe citirea înclinării corului pe axele ruliu, giratie, tangaj.
Figura 2.22 – giroscop
Cablarea este urmatoarea:
– INT de la MPU se leaga la pinul digital 2 de pe Nano. Daca se folosește altă plăcuță (alta decât cea folosită în exemplul dat) se va determinati care pin corespunde intreruperii #0. Arduino Nano are pinul 2 care corespunde intreruperii #0(zero).
Pașii pentru realizarea acestui proiect sunt următorii:
– Se descarcă libraria, codul arduino si codul processing
– Se pune libraria in C:\Program Files (x86)\Arduino\libraries. In caz ca ati instalat in path, cautati folderul de librarii.
– Se instalează Processing 2
Detector EMF cu Arduino Leonardo
Prin utilizarea unui LED monocrom, un Arduino Leonardo, rezistențe și fire vom detecta câmpuri electromagnetice. Teoria ne spune că variația câmpului electromagnetic ne va induce un potențial în antenă ce va fi citit de plăcuța Arduino.
Componentele necesare realizării acestui proiect sunt:
plăcuța Arduino Leonardo sau Uno
rezistență de 3.3MOhmi sau chiar de 10MOhmi pentru o senzitivitate crescută
LED monocrom brick/LED normal
fire tată-tată
Mingea arduino
Prin folosirea unei plăcuțe Arduino Uno și a unui giroscop MPU-6050, se va afișa interactiv orientarea în spațiu a unei mingi de Arduino. Mingea va căpăta capabilitatea de a detecta starea afectivă, în funcție de culoare.
Figura 2.23 – Mingea arduino
De ce Arduino?
Platforma Arduino a devenit destul de cunoscută printre cei care își încep inițierea doar cu electronica. Prin comparație cu majoritatea plăcilor de circuite programabile anterioare, Arduino nu are nevoie de o bucată separată de hardware.Pentru încărcarea unui nou cod pe placă se poate pur și simplu utiliza un cablu USB. ID-ul Arduino facilitează învățarea prin folosirea unei versiuni simplificate a programului C++. De asemenea, Arduino oferă un factor de formă standard care elimină funcțiile microcontrolerului într-un pachet mai accesibil.
Arduino este ușor de folosit pentru începători, dar suficient de flexibil pentru utilizatorii avansați. Este executabil pe Mac, Windows și Linux. Profesorii și studenții îl folosesc pentru a construi instrumente științifice ieftine, pentru a dovedi principiile chimiei și fizicii sau pentru a începe cu programarea și robotica.
Designerii și arhitecții construiesc prototipuri interactive, muzicieni și artiști care îl folosesc pentru instalații și pentru a experimenta noi instrumente muzicale. Producătorii, desigur, o folosesc pentru a construi multe dintre proiectele expuse la Maker Faire, de exemplu. Arduino este un instrument cheie pentru a învăța lucruri noi. Oricine – copii, pasionați, artiști, programatori – poate începe să tinkering pur și simplu urmând instrucțiunile pas cu pas ale unui kit sau să facă schimb de idei online cu alți membri ai comunității Arduino.
Există multe alte microcontrolere și platforme de microcontroler disponibile pentru calculul fizic. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard și multe altele oferă funcționalități similare. Toate aceste instrumente iau detaliile dezordonate ale programării microcontrolerului și o înfășoară într-un pachet ușor de utilizat. Arduino simplifică, de asemenea, procesul de lucru cu microcontrolerele, dar oferă un anumit avantaj pentru profesori, studenți și amatori interesați față de alte sisteme:
• Ieftin – plăcile Arduino sunt relativ ieftine în comparație cu alte platforme de microcontroler. Versiunea cea mai puțin costisitoare a modulului Arduino poate fi asamblată manual, iar modulele Arduino pre-asamblate costă mai puțin de 50$
• Cross-platform – Software-ul Arduino (IDE) rulează pe sistemele de operare Windows, Macintosh OSX și Linux. Cele mai multe sisteme de microcontroler sunt limitate la Windows.
• Mediu de programare simplu și clar – Software-ul Arduino (IDE) este ușor de utilizat pentru începători, dar suficient de flexibil în programare și pentru utilizatorii avansați. Pentru cadrele didactice, se bazează convenabil pe mediul de programare Prelucrare, astfel încât studenții care învață să programeze în acel mediu vor cunoaște modul în care funcționează ID-ul Arduino.
• Software open source și extensibil – Software-ul Arduino este publicat ca instrumente open source, disponibil pentru extensie de către programatori experimentați. Limba poate fi extinsă prin biblioteci C ++, iar oamenii care doresc să înțeleagă detaliile tehnice pot face saltul de la Arduino la limbajul de programare AVR C pe care se bazează. În mod similar, puteți adăuga codul AVR-C direct în programele dvs. Arduino dacă doriți.
• Open source și hardware extensibil – Planurile plăcilor Arduino sunt publicate sub licență Creative Commons, astfel încât designerii de circuit experimentați pot să facă propria lor versiune a modulului, să o extindă și să o îmbunătățească. Chiar și utilizatorii relativ neexperimentați pot să construiască versiunea cu panou de bord a modulului pentru a înțelege cum funcționează și pentru a economisi bani.
Arduino realizează mai multe plăci diferite, fiecare cu capacități diferite. Având partea hardware open source, oferă posibilitatea modificări și producerii de derivate, așa-numitele clone, ale plăcuțelor. Mai jos vor fi prezentate câteva dintre opțiunile Arduino potrivite atât pentru începători cât și pentru avansați:
Arduino Uno (R3), se numără printre cele mai potrvite plăcuțe pentru începători. Conține tot ceea ce este nevoie pentru sustinerea microcontrolerului. Are 14 intrări / ieșiri digitale (dintre care 6 pot fi utilizate ca ieșiri PWM), 6 intrări analogice, o conexiune USB, o mufă de alimentare, un buton de resetare și multe altele. Pentru a începe programarea se conectează la un computer printr-un cablu USB sau alimentarea cu un adaptor AC-to-DC sau o baterie.
LilyPad Arduino, reprezintă placa de bază a tehnologiei LilyPad. LilyPad este o tehnologie portabilă e – textilă, dezvoltată de cei de la Leah Buechley și proiectată în colaborare cu cei de la Sparkfun. Fiecare placă Lilypad a fost proiectată având propria familie de plăci de intrare, ieșire, putere și plăci de senzori, care sunt, de asemenea, construite special pentru e-textile. Un fapt interesant al acestei plăci este acela că se poate curăța prin spălare.
RedBoard, reprezintă echivalentul plăcuței Arduino UNO V3, fiind, însă, produsă de SUA de către cei de la Sparkfun. Fiind ehivalenta Arduino Uno V3, orice cod rulat pe ea va returna același rezultat.
Prin folosirea Id-ului Arduino, RedBoard este programabilă printr-un cablu USB mini – b. RedBoard va avea funcționalitate pe Windows 8 fără a fi necesară schimbarea setărilor de securitate. Fiind mult mai stabilă mulțumită chipului USB/FTDI folosit și dispunând de o încorporabilitate mult mai mare(datorită spatelui plat), programarea acesteia se face mult mai simplu prin conectare la un computer și seectarea Arduino Uno din meniul de bord.
Arduino Mega, reprezintă varianta optimizată a Arduino UNO și conține tot ceea ce este nevoie pentru a susține microcontrolerul. Având un număr mare de pini(54), este potrivită pentru utilizarea în proiecte cu dificultate crescută. Pentru a începe programarea acesteia este necesar să o conectați la un computer prin USB. Există și varianta alimentării prin adaptor sau baterie.
Arduino Leonardo – prima placuță a celor de la Arduino care utilizează un microcontroler cu USB încorporat. Acest aspect îi oferă o eficiență cost – utilitate. De asemenea, sunt disponibile o serie de librării ce permit plăcuței să simuleze o tastatură, un mouse e.t.c.
Cu toate că la capitolul aspect îndeplinește condițiile optime de funcționare, plăcuța nu poate realiza prea multe lucruri individual fiind necesară conectarea ei la ceva. În cele ce urmează vom vorbi despre una din cele două cele mai utile instrumente care dau viață unei plăcuțe Arduino, Shieldurile Arduino(primul instrument fiind senzorii – subiect tratat într-un subcapitol anterior).
Ce sunt shield-urile? În esență, traducerea din limba engleză ar însemna scuturi. Ele reprezintă acele tablouri de circuite modulare preconstruite ce oferă plăcuței Arduino proprietăți suplimentare prin conectarea cu aceasta. Printre capabilitățile suplimentare cele mai cunoscute se numără:
controlul motoarelor
conectarea la internet
furnizarea de comunicații celulare sau altele wireless
controlul unui LCD
Câteva dintre cele mai cunoscute shield-uri pentru arduino sunt:
Scuturile de tip prototyping – fără a influența considerabil funcționalitatea plăcii Arduino, ușurează conectarea la Arduino.
ProtoShield Kit – este ușor de folosit pentru conectarea la motoare externe sau senzori grei.
Go-Between Shield – Scopul acestui scut este să stea între două scuturi. Împiedică pini de pe scutul superior, astfel încât să nu interfereze unul cu celălalt.
LiPower Shield – permite alimentarea plăcii Arduino la o baterie sau un adaptor.
Danger Shield – este o combinație de afișaje, potențiometre și o mulțime de alți senzori. Este foarte util pentru pentru învățarea intrărilor și ieșirilor de la Arduino sau încorporarea în proiectele de mixare audio.
MicroSD Shield – Arduino are un spațiu de stocare limitat, dar acest scut ușor de utilizat (împreună cu biblioteca SD) permite o stocare suplimentară.
Arduino Ethernet Shield – este unul dintre shield-urile clasice pentru Arduino. Ecranul Ethernet oferă posibilitatea conectării la rețeaua globală.
WiFly Shield – oferă capabilitatea conectării la la rețele fără fir 802.11b/g. De asemenea, poate acționa ca un server web, client sau ambele.
Electric Imp Shield – Electric Imp este un modul WiFi unic, cu interfața unui card SD, dar are un controller WiFi puternic bazat pe cloud. Este unul dintre cele mai puțin costisitore shield-uri protectore WiFi din Arduino.
Capitolul III. Sisteme de alarmă
Un adevăr general valabil acceptat este faptul că securitatea a devenit o necesitate a individului livrată sub diferite forme organizaționale. Cea mai tradițională formă de securitate este un sistem de alarmă care poate fi conceptualizat sub forma unui ansamblu de dispozitive(echipamente) electronice interconectate care poate identifica și semnaliza o intrare neautorizată într-un spațiu protejat.
Optimizarea capacității de prelucrare a informației și a tehnologiei folosite pentru funcționarea dispozitivelor de securitate, a dus la extinderea capabilităților acestora. Astfel, în zilele noastre supravegherea a fost inlesnită în scopul prevenirii situațiilor de risc.
Aria de folosire a sistremelor de alarmă este una extrem de mare: de la aplicatii rezidentiale la sisteme profesionale de inalta securitate. Chiar daca obiectivele supravegheate sunt diferite ca importanță, valoare, mărime și gradul de complexitate al uni sistem de alarmă poate varia destul de mult, principiile de funcționare și proiectare ale sistemului sunt aproape întotdeuna la fel. Pe lângă rolul uzual de protecție împotriva intrușilor, sistemele de alarmă oferă o gamă largă de posibilități:
detectie incendiu
emisii de gaz metan
emisii de monoxid de carbon
inundații
Pentru eficientizarea maximă a unui sistem de alarmă, se poate suplimenta cu un sistem de monitorizare video. În acest fel șansele de eroare a sistemului se minimizează considerabil iar posibilitățile de intruziune devin foarte mici.
„Funcționalitatea unui astfel de sistem se bazează pe un conglomerat de sisteme tehnice și umane”. Pentru a eficientiza funcționarea acestora, este imperativ ca personalul specializat care exploatează sistemele precum și echipa de intervenție să fie pregătiți corespunzător pentru operarea corectă și rapiditatea decizională în cazul apariției intruziunilor. Printre atribuțiile generale ale inginerilor de securitate se numără și următoarele responsabilități:
întocmirea și optimizarea procedurilor de instalare, manevrare și mentenanță a sistemelor de securitate care să vină în concordanță cu proiectul de execuție
punerea la dispoziția clientului a procedurilor de manevrare a sistemului de securitate definirea corespunzătoare a funcționalității sistemului
execuția și coordonarea activității de punere în funcțiune a sistemului de securitate
supervizarea activității de mentenață a sistemelor instalate
III.1. Ce este un sistem de alarmă
Protecția obiectivului este caracteristica principală a sistemului de a-și păstra funcționalitatea sub acțiunea factorilor distructivi. Semantic, securitatea deplină este calitatea definitorie de cuprindere conceptuală a tuturor aspectelor juridice, organizatorice, informaționale, fizice și de personal ale securității, în medii calitativ superioare, cu mecanisme oportune, viabile, adaptive și perfecționabile, capabile să facă față unei game largi de atacuri, încercări și accidente tratate previzionar, în timpul desfășurării sau după încetarea acestora, cu asumarea conștient a unui risc operațional, în limita unor costuri necesare suportabile.
III.2. Clasificarea sistemelor de alarmă
„Sistemele de alarmă(sisteme de perimetru de securitate, sisteme de detecție perimetrală, protecție perimetrală, sisteme de detectare a intrușilor, e.t.c.) se împart în două domenii principale”:
– alarma antiefracție pentru locuințe;
– alarma antiefracție si detectoare de mișcare in perimetre industriale.
După raportarea la obiectivul(perimetrul) protejat de sistemele de alarmă, se împart in două categorii:
Sisteme de alarmă pentru interior:
Detectoare pasive cu infraroșu
Detectoare cu ultrasunete;
Detectoare cu microunde;
Barierele cu infraroșu
Detectoare pentru geam spart;
Sistem de alarmă pentru exterior:
Senzori de vibrații;
Senzor pasiv de detectare a câmpului magnetic;
Senzor pasiv de detectare a câmpului electromagnetic;
Bariera cu microunde;
III.3. Utilitatea unui sistem de alarmă – Necesitatea supravegherii
În materie de asigurarea securității pornim de la conceptul de supraveghere a activității. Acest lucru se face pornind de la analiza factorilor de risc ce pot influența fluxul acrivității de supraveghere. Optim este să se pornească de la identificarea factorilor de risc și a măsurilor de prevenție și/sau diminuare a efectelor negative.
În acest tip de intervenție, în mod normal, trebuie avuți în vedere factorii economici și organizatorici, determinarea pierderilor, cuantumul daunelor suferite, inventiția necesară pentru adoptarea măsurilor de protecție.
Ulterior stabilirii acestor factori de risc, pentru asigurarea protecției obiectivului, se stabilesc și cerințele concrete ce au rezultat din analiza factorilor de risc. Analiza factorilor de risc trebuie să diminueze pierderile materiale și/sau brute(obiecte fizice, respectiv informații, proprietatea intelectuală dar și imaginea publică, credibilitatea sau atmosfera relațiilor umane din colectivul respectiv).
Pierderile pot să fie de natură provocată, distrugere voluntară sau involuntară(neglijență, cauze naturale), furturi sau alte acte voite de distrugere.
Printre cele mai importante pierderi naturale care pot fi luate în calcul se numără incendiile, cutremurele, inundațiile. De asemenea, ca măsuri de prevenție pentru acestea putem menționa:
Proiectul tehnic de construcție al clădirii
De natură organizatorică –planuri de acțiune pentru reducerea efectelor acestor evenimente;
Deductibile – sub forma asigurărilor;
Resurse umane – instruirea personalului pentru combaterea și diminuarea daunelor produse.
Distrugerile datorate neglijenței pot apărea din cauza dotărilor neadecvate, a lipsei măsurilor organizatorice și procedurale sau din cauza unor carențe educative. Neglijența poate conduce la pierderi și daune de bunuri și informații, influențarea negativă a angajaților sau colaboratorilor, prietenilor, apropiaților la știrbirea imaginii publice etc.
Concluzionând, în implementarea un sistem de securitate eficient trebuie avuți în vedere o serie de factori care să permită prevenția intruziunilor care pot provoca daune de orice natură și diminuarea efectelor negative:
factori care favorizează (de procedură organizare, construcție, lipsa instalațiilor de supraveghere și control, dotarea defectuoasă, materiali, manageriali);
Prevenția acestor evenimente va porni de la recunoașterea situațiilor de risc care se pot produce. Astfel de situații sunt: furtul de bani sau bunuri materiale de orice tip, accesul persoanelor necunoscute/neautorizate în perimetrul protejat, sabotaj sau atac e.t.c.
Astfel, beneficiile folosirii unui astfel de sistem sunt majore deoarece reduc, în primul rând, riscurile unei intrări prin efracție cu până la 60% – 90%. În momentul declanșării sistemului de alarmă și în momentele imediat următoare, se pot simula mai multe scenarii:
Avertizarea – pornește de la setarea sistemului de alarmă pentru mai multe părți. Se poate seta sistemul de alarmă doar pentru avertizarea personală, pentru evitarea apelurilor inutile la poliție sau la firma de pază și protecție instruită să acționeze în astfel de situații. Poti seta sistemul in asa fel incat sa avertizeze politia. Este unul dintre cele mai mari beneficii ale unui sistem de alarma. Practic, imediat ce un intrus patrunde in casa, politia este avertizata si poate sa ia atitudine.
Firma de protecție și pază va fi notificată și va acționa în acest sens prin trimiterea unei echipe de intervenție sau apelarea secției de poliție(în funcție de preferințele clientului)
III.4. Legislația si terminologia sistemelor de alarmă
Începând cu 1 ianuarie 2006, respectiv 1 februarie 2006, România este membru cu drepturi depline al organizațiilor europene de standardizare CEN (Comitetul European de Standardizare), respectiv CENELEC (Comitetul European de Standardizare pentru Electrotehnică).
Mulțumită Asociației de Standardizare din România, specialiștii în domeniu au avut posibilitatea de participare la lucrările europene de standardizare și propunerea de noi teme în acest sens.
Crearea standardelor europene este realizată de către comitetele tehnice de standardizare ce sunt organizate pe domenii de activitate. În cadrul CENELEC funcționează comitetul tehnic de standardizare TC 79 „Sisteme de alarmă”.
Comitetul tehnic de standardizare elaborează standardele pentru sistemele electrice și electronice, de detecție, de supraveghere,de alarmă și de control pentru protecția persoanelor, bunurilor precum și pentru componentele utilizate în aceste sisteme.
Acest domeniu de activitate înglobează sistemele împotriva efracției, sistemele de alarmă împotriva incendiului, sisteme de control al accesului utilizate în aplicații de securitate, sistemele de alarmă împotriva altor riscuri, sistemele de alarmă sociale și de evacuare, sisteme de control și supraveghere, sisteme de supraveghere CCTV,sisteme de transmisie și comunicații asociate.Elaborarea standardelor se referă și la modalitatea de funcționare a sistemelor, mediul precum și complementaritatea electromagnetică.
Terminologie de specialitate
Zona – are două semnificații diferite: din punct de vedere electric și al arhitecturii sistemului de securitate. La nivel electric, zona reprezintă o intrare a centralei de alarmă semnalată ca entitate pe dispozitivele de afișare. Sistematic, zona reprezintă un spațiu bine împărțit care este protejat împotriva efracției.
Timpul de răspuns și reacția sistemului de alarmă pe o intrare este diferit în funcție de perimetrarea logică a zonelor protejate. Centralele sistemelor existente pe piață oferă două opțiuni în acest sens; configurarea zonală specifică în funcție de obiectivele protejate sau predefinirea perimetrelor ce se doresc a fi protejate. În cele ce urmează avem definite câteva dintre cele mai uzuale zone în sistemele de alarmă:
Zona instantanee – reprezintă perimetrul în care se declanșează instantaneu alarma.
Zonă temporizată – în activarea acesteia este generată o temporizare internă a sistemului și în situația în care sistemul nu este activat declanșează în mod automat alarma.
Zona de panică – atac – reprezintă zona în care sistemul de securitate este activat 24/24 de ore și declanșează o alarmă silențioasă în caz de risc.
Zonă de sabotaj/ defecțiune tehnică-sunt zone de 24 de ore utilizate pentru monitorizarea securității sistemului (contactele antisabotaj ale dispozitivului, zonele de anti-masking etc)
Conceptul de partiție (arie) – reprezintă acel anasamblu de zone în care sistemele de securitate sunt activare/dezactivate concomitent. Similar conceptului de zonă și în acest caz avem definirea electrcă și sistemică. Electric, aria reprezintă ansamblul de zone conectate la centrala de securitate, iar sistemic este o suprafață mai mare cu protecție perimetrală.
Codurile – repezintă cheia de acces a sistemului. Acestea permit autentificarea utilizatorului în sistem și operarea unor funcții(activare/dezactivare perimetru, omiterea unor zone, recunoașterea sau omiterea unor alarme).
III.5. Proiectarea unui sistem de alarmă
Ca funcție primară, sistemul de alarmă este un complex format din dispozitive pentru detectarea și semnalizarea efracțiilor, sau a pericolelor iminente de acest gen, care se produc în interiorul spațiului protejat. Principiile de funcționare ale unui astfel de sistem sunt, cu mici excepții, întotdeauna la fel. Pentru proiectarea unui sistem de alarmă trebuie luați în considerare următorii factori:
Estimarea suprafeței obiectivului care necesită protecție (în metrii pătrați).
Numărul de intrări/ieșiri perimetrale ale zonei protejate protejată (uși, ferestre, luminatoare, porți, spărturi in gard)
Intrările/ieșirile principale în/din perimetrul protejat
Elaborarea unui plan cadru cu suprafața protejată și stabilirea tuturor punctelor de pătrundere
Montarea sistemului de alarmă într-un loc fără acces general
Adaptarea sistemului de alarmă în modul multi – treaptă. Acest mod are mai multe trepte de protecție.
Montarea unor bariere (senzori) cu infraroșu
Autonomia sistemului de alarmă în cazul caderii rețelei de alimentare cu energie electrică(calcul energetic)
Jurnalul de cabluri
Intervenția în cazul apariției unei defecțiuni
Copii de pe buletinele de certificare a calității pentru echipamentele folosite sau certificate de conformitate ale producătorului.
Trebuie avute în vedere și componentele unui sistem de alarmă eficient, în vederea orientării de achiziționare sau proiectare(în cazul nostru). Astfel, un sistem de alarmă are, în principiu, următoarele componente:
• centrala de alarma
• tastaturi
• telecomenzi
• contacte magnetice
• detectori de mișcare
• bariere în infraroșu
• detectori de vibrații
• detectori de geam spart
• detectori de fum, de gaz, de CO, de inundație
• echipamente radio
• expandoare și echipamente suplimentare
• sirene
• acumulatori
Înainte de proiectarea propriu – zisă a sistemului de alarmă se elaborează proiectul tehnic de execuție. Conform legii 333/2003 este obligatorie întocmirea proiectului tehnic de execuție înainte de începerea lucrărilor de instalare a sistemului. Au nevoie de aviz în acest sens proiectele sistemelor de alarmare anti-efracție destinate:
Obiectivele strategic amplasate
Unitățile financiar-bancare(bănci, case de schimb valutar, amanete e.t.c)
Instituțiile publice: gări, autogări, primării, școli, grădinițe
Cazinouri
Magazine de bijuterii, produse electrocasnice, computere,magazine comerciale cu o suprafața de peste 500m2 și cel puțin 3 case de marcat, supermarket-uri
Magazine de arme și muniții
Stații de comercializare a produselor petroliere
Depozite, farmacii
III.6 Alegerea și achiziționarea unui sistem de alarmă
Alegerea și achiziționarea unui sistem de alarmă potrivit poate fi dificilă fără un consultant în domeniu care să ofere informații în acest sens.
La începutul acestui proces, se poate pleca de la o informație de bază, aceea că între componenetele unui sistem de alarmă comunicarea poate fi wireless(fără cablu) sau prin cablu. Ambele produse sunt găsite pe piață de diferite branduri. În cele ce urmează se vor analiză avantajele si dezavantajele dintre un sistem de alarmă prin cablu și cel wireless.
Avantajele unui sistem de alarmă wireless
Aceste sisteme de alarmă sunt privite ca o soluție unică în viitor, tehnologia prin cablu fiind în totalitate îndepărtată
conexiune de acest tip(wireless), reduce considerabil riscul de sabotaj, deoarece nu conține cabluri ce pot fi tăiate
Montajul și instalarea facilă – nu există cabluri, ceea ce face totul mult mai ușor
Dezavantajele unui sistem de alarmă wireless
Bruiajul frecvențelor este o hibă de care s-ar putea profita în cazul intrării prin efracție în perimetrul protejat
Posibilitatea de comunicare a componentelor este redusă la nivelul ariei de comunicare wireless, față de un sistem de supraveghere cablat care poate comunică pe distanțe mai mari
Compatitibilitatea componentelor unui sistem de alarmă wireless este redusă, în general producătorul de centrale fiind cel care oferă soluțiile și pentru celelalte componente ale sistemului
Prețul și aria de selecție restrânsă. Gama din care se poate alege un sistem de alarmă wireless este mult mai mică față de un sistem cablat, iar prețul este mai mare
Avantajele unui sistem de alarmă pe cablu
Are un cost mai mic decât un sistem de tip IP și o gamă mult mai largă de produse disponibile pe piață
Compatibilitatea între componentele unui sistem de alarmă cablat este mult mai mare, putând fi folosite componente produse de diverse branduri, lucru mai greu de făcut la un sistem de supraveghere wireless
Distanța cablurilor unui sistem de supraveghere cablat poate fi decisă în funcție de necesități spre deosebire de un sistem wireless unde distanța este fixă
Dezavantajele unui sistem de alarmă pe cablu
Sistemele de supraveghere cablate au o dificultate mai mare în instalare decât cele wireless și pot avea costuri suplimentare pentru acoperirea estetică sau ”crearea” traseului pe unde vor merge cablurile, fiind astfel nevoie de o firmă de specialitate care presupune un cost suplimentar.
III.7. Ce vă oferă un astfel de sistem?
Eficiența. Indiferent de costul unui astfel de sistem, cel mai important este modul eficient de funcționare. Este de evitat, achiziționarea sistemelor de alarmă de la producători care nu dețin acreditări, acele produse pe care le puteți achiziționa de la magazine care nu sunt de specialitate.
Fiabilitatea. Este de preferat, și chiar indicat, ca sistemul de alarmă achiziționat să beneficieze de o garanție cât mai mare pentru soluționarea cu succes a oricăror probleme apărute. Sistemul montat, trebuie sa funcționeze, în mod normal, impecabil mulți ani după achiziționarea acestuia.
Economia. La achiziționarea și montarea unui sistem de alarmă, pentru cei mai mulți dintre utilizatori, factorul economic foarte important. Astfel, pentru reducerea unor costuri suplimentare ce nu sunt necesare, sistemele de alarmă se montează în baza specificațiilor oferite de client iar echipamentele sunt însoțite de ghiduri de utilizare.
Flexibilitatea. Avand la dispoziție o gamă largă de opțiuni pentru configurarea sistemului confirmă versatilitatea unui astfel de produs. De exemplu, se poate efectua (pentru o cladire/casa) armarea și dezarmarea individuală a parterului,și/sau a etajului.
Comunicarea cu beneficiarul. Un sistem de alarmă devine complet, în momentul în care se poate accesa de la distanță, avertizează beneficiarul prin sms, pe telefonul mobil, de o eventuală efracție. De asemenea, este utilă comandarea prin telefonul mobil în cazul în care beneficiarul omite armarea sistemului de securitare la părăsirea imobilului.
Capitolul IV. “Sistem de automatizare și securizare a locuințelor”
Capitolul de față reprezintă aportul individual adus lucrării de față, prin realizarea studiului de caz. Structura capitolului este sub forma a cinci subcapitole ce explică detaliat, din punct de vedere teoretic și practic, ce reprezintă și cum a fost proiectat, pas cu pas, sistemul de automatizare și securizare a locuințelor. Totodată, în acest capitol vom prezenta componentele si softul folosit, precum și testarea funcționalității acestuia.
IV.1. Ce reprezintă ”Sistemul de automatizare și securizare a locuințelor”
În implementarea de față, vom regăsi o soluție simplă pentru un sistem de alarmă dedicat utilizatorului casnic, de exemplu un apartament sau o casă de marime medie, folosind placa Arduino Mega 2560 și o serie de componente încadrate la categoria de cost redus, care poate fi privit ca și un concept pentru o soluție de securitate sau ca și un exemplu de utilizare a unui hardware open source pentru a înlocui o soluție dedicată, costisitoare și în cele mai multe cazuri oferită doar pentru structuri mari sau companii cu nevoi specifice de securitate.
De asemenea, avem inclusă și o parte de simulare a unei supravegheri video folosind o cameră video conectată la un sistem servo comandat de placa Arduino Mega 2560, care reacționează la declanșarea senzorilor magnetici atașati ușilor de intrare și senzorilor de mișcare prezenți în cadrul machetei folosite pentru a simula spațiul de lucru format din 2 camere, un hol, o bucătărie și un garaj.
Spațiul de lucru, sau macheta reprezintă de fapt în mod fidel o casă de mărime mică sau un apartament cu garaj. Macheta este realizată din polistiren extrudat și are si rolul de a susține componentele electronice ale sistemului de alarmă folosite. De asemenea macheta este un concept al unui sistem autonom de supraveghere video.
Scara la care a fost realizată macheta este de aproximativ 1:10 și a fost realizată pentru a reprezenta cât mai fidel un spațiu de locuit și un garaj aferent acestui spațiu.
Macheta prezintă de asemenea 2 uși echipate cu senzori magnetici, ușa din față și ușa din spate, care reprezintă accesul din exterior în spațiul de locuit și ca atare este supravegheat pentru a detecta orice deschidere neautorizată a celor 2 căi de acces în spațiul de locuit.
În camerele incintei sunt plasați senzori de mișcare legați la placa Arduino Mega 2560 care au rolul de a trimite semnale care vor activa alarma și vor comanda camera de supraveghere spre a înregistra imagini din locația în care a fost activat senzorul de mișcare pentru a completa funcția de alarmă cu o acțiune specifică unui sistem de supraveghere video.
Sistemul de alarmă prezintă funcția de activare/dezactivare folosind o tastatură specifică de taste cu membrană pe o matrice de 4×4 taste.
Funcția de activare/dezactivare se bazează pe o parolă (sau cod PIN) citită de la această tastatură. Dacă parola este greșită, sistemul nu va fi activat sau dezactivat.
Mesajele specifice ale sistemului de alarmă implementat vor fi afișate pe un ecran LCD conectat la placa Arduino Mega 2560.
De asemenea, activarea sau dezactivarea sistemului de alarmă se va afișa pe ecranul LCD inclus. Activarea sau dezactivarea sistemului de alarmă poate fi făcută fără inițierea stării de alarmă, direct de la tastatura atașată, simulînd astfel situația în care o persoană autorizată să folosească alarma dorește să intre în incinta supravegheată fără a activa alarma sau părăsește incinta și doreste să activeze sistemul de alarmă.
Funcționarea sistemului de alarmă este continuă și urmărirea senzorilor de mișcare incluși și instalați în fiecare cameră a incintei este realizată în paralel, fiind independenți unul de celălalt.
În cazul în care se detectează mișcare în oricare dintre camerele supravegheate sau în garaj, sistemul de alarmă va afișa o informație specifică pe ecranul LCD și va activa generatorul de sunet și luminile de alarmă specifice pentru o avertizare sonoră și optică asupra incidentului de securitate detectat în incinta supravegheată.
De asemenea, o a 2-a acțiune în cazul declanșării alarmei în oricare dintre camere, va activa avertizarea luminoasă menționată mai sus, situată în fiecare cameră, sub forma unei benzi de LED-uri care va completa avertizarea sonoră.
În rezumat cele prezentate mai sus descriu principial un sistem simplu de alarmă completat de un sistem de supraveghere video cu o funcționalitate suficient de ridicată și cu o flexibilitate mare, care poate fi folosit ca un înlocuitor de succes al unui sistem clasic costisitor de alarmă prezent pe piață în acest moment.
IV.2. Proiectarea modelului “Sistem de automatizare și securizare a locuințelor”
În incercarea de a găsi o soluție de cost redus pentru un sistem de alarmă care să nu iși piardă funcționalitatea, ne-am îndreptat catre piața componentelor electrice si electronice de tip open-source și am folosit placa Arduino Mega 2560, precum si o listă de componente electronice simple, rezistențe, LED-uri, mecanisme servo, potențiometre, senzori specifici plăcii menționate, componente de tip intrare ieșire și elemente de interconectare demonstrative.
Principiile care au stat la baza proiectării sistemului de alarmă din această lucrare sunt identice cu ale unui sistem de alarmă tradițional și urmăresc realizarea funcțiilor specific ale mai sus menționatului sistem.
Senzorii folosiți în această implementare sunt senzori specifici plăcii Arduino și integrarea cu hardware-ul folosit a fost naturală și directă:
Senzor magnetic de tip “reed-switch” pentru cele 2 uși de acces
Senzor de mișcare de tip PIR (pyroelectric infrared sensor) pentru camerele realizate în interiorul incintei simulate de către machetă
Interacțiunea de intrare ieșire a datelor (I/O) între senzori si porturile plăcii Arduino Mega 2560 folosite se va face în mod direct sub formă de semnal electric și va fi controlată manual de către uilizator. Comenzile utilizatorului vor fi date folosind tastatura integrata plăcii Arduino, iar răspunsul sistemului de alarmă va fi citit de pe ecranul LCD care este de asememea integrat și specific platformei Arduino.
Figura IV.1. -Tastatura integrată a plăcii Arduino Mega 2560
Mesajele sistemului de alarmă care vor fi afișate pe ecranul LCD vor fi simple și concise, fiind reduse la minimul funcțional fără a încărca utilizatorul cu informație irelevantă sau a avea stări intermediare ambigue.
Figura IV.2. – Ecran LCD
Funcția de activare și dezactivare a sistemului de alarmă va fi implementată prin intermediul aceleași tastaturi 4×4 prezentată mai sus și interacțiunea cu utilizatorul va fi de asemenea cât mai simplă. Principiul folosit aici va fi similar cu cel folosit la sistemele de alarmă traditionale și va folosi un cod alfanumeric (denumit și cod PIN sau număr personal de indentificare) pe care utilizatorul îl va introduce pentru a schimba starea sistemului de alarmă din activ în inactiv și invers, din inactiv în activ.
De asemenea, în cazul declanșării unei alarme, fie că este ca urmare a deschiderii uneia dintre cele două uși, fie că senzorii de mișcare au detectat o posibilă intruziune, starea de alarma a sistemului, va fi readusă la situația initială (adică nici o alarmă activa) prin introducerea codului de securitate folosind tastatura atașată.
Figura IV.3. – Activarea sau dezactivarea utilizând codul PIN
În faza de proiectare, va trebui luată în considerare structura fizică a machetei folosite; câte camere vor fi prezente pentru a stabili numărul de senzori de mișcare necesari, câte intrări/uși vor fi monitorizate, pentru a stabili numărul de senzori magnetici de care vom avea nevoie.
În cazul prezentat, vom avea o macheta care va simula un apartament cu 2 camere, o bucătarie și un garaj, care vor trebui să fie monitorizate cu senzori de mișcare; și 2 uși de acces din exterior, o ușă asimilata ca intrarea din față și o a 2-a ușă pe care o vom vedea ca intrarea din spate. Ca urmare, vom avea nevoie de 2 senzori magnetici pentru monitorizarea celor 2 uși prezentate mai sus.
Figura IV.4. – Poziționarea senzorului magnetic
Pentru a simula o acțiune de alarmă activă, vom folosi un generator de sunet de tip buzzer, care va fi comandat de placa Arduino Mega 2560 folosită în simularea acestui sistem de alarmă și care va fi localizat în spațiul machetei.
Figura IV.5. – Generator de sunet de tip buzzer
De asemenea în situația în care se va activa starea de alarmă, vom folosi o serie de avertizoare luminoase, adițional la avertizarea sonoră produsă de generatorul de sunet buzzer. În acest scop, vom comanda cu ajutorul plăcii Arduino Mega 2560 o serie de LED-uri, atât componente singulare cât și ca parte a unei benzi de LED-uri de tip led-strip.
Aceste componente luminoase vor fi instalate atât în interiorul incintei simulate de către machetă, cât și la exterior, pentru a crea o asemănare cât mai mare cu o situație reală produsă de un sistem de alarmă traditional.
Figura IV.6. – LED-uri si Led strip
Am decis, de asemenea, că vom folosi spațiul numit garaj al machetei pentru a depozita componentele hardware adiționale, folosite la interconectarea, comunicația și comanda componentelor exterioare, camera video, senzori, tastatură, ecran LCD, buzzer.
Figura IV.7. – Garajul este folosit ca și spațiu de depozitare
Sumarizând cele prezentate mai sus, putem sa spunem ca montajul electronic construit este compact și că toate componentele se interconectează ușor și interacționează cu placa Arduino Mega 2560 în mod facil aisgurând funcționalitatea dorită.
Pentru o mai ușoară întelegere vom prezenta mai jos schema de principiu a montajului electronic.
Figura IV.8. – Schema de principiu a montajului electronic
IV.2.1. Componentele folosite în proiectare
Având în vedere cele prezentate mai sus, vom încerca să prezentăm mai jos o listă grupată în mod funcțional a componentelor folosite la proiectarea sistemului de securitate bazat pe Arduino Mega 2560.
Creierul funcțional al sistemului de alarmă prezentat este chiar platforma de tip open-source Arduino Mega 2560. Aceasta realizează toate funcțiile pe care le dorim implementate de către sistemul nostru de alarma:
Detecție de mișcare și intruziune
Comandarea stărilor de alarmă și de așteptare
Gestionarea sistemului de intrare/ieșire
Interfațarea cu utilizatorul final
Figura IV.9. – Placa Arduino Mega 2560
O altă categorie de componente utilizate este cea a senzorilor, care citesc mediul inconjurător sesizînd schimbări semnificative pentru sistemul nostru de alarmă și transmit aceste schimbări către placa Arduino Mega 2560.
Avem, în acest caz, 2 tipuri de senzori:
Senzori de mișcare
Senzori magnetici
Figura IV.10. – Senzorii utilizați (magnetic și de mișcare)
Componente suplimentare vor fi luate in considerare, sub forma unui servomotor și a unei camere video, care va putea fi folosită la implementarea funcției suplimentare de supraveghere video:
Servomotor MG995
Camera video Vivitar DVR 787HD
Figura IV.11. – Camera video montată pe servomotorul dedicat
Conectarea componentelor se va face folosind o serie de rezistențe, potențiometrii și conductori specifici platformei Arduino:
Figura IV.12. – Rezistențe, conectori, potențiometru
Starea de alarmă va fi simulată prin utilizarea unui generator de sunet și a unor LED-uri:
Figura IV.13. – Generator de sunet, LED-uri, LED strip
O altă componentă foarte importantă în cadrul proiectului de față este macheta; care simulează un apartament și se constituie ca spațiu monitorizat de catre sistemul de alarma prezentat in acest proiect:
Figura IV.14. – Machetă finală
Pe lângă toate aceste componente hardware ale sistemului de alarmă, este important de menționat și componenta software, care se constituie ca o aplicație specifică platformei Arduino și care va fi descrisă ulterior.
Figura IV.15. – Interfața IDE dedicată
IV.3. Software folosit în programarea plăcuței Arduino
Arduino este o platformă open source folosită la implementarea unei game variate de proiecte dedicate domeniului electronic. Arduino este compus din 2 părți bine interconectate, o parte de hardware, care constă într-un microcontroler programabil, care este de fapt o placă de circuite și o a 2-a componentă, de software de data aceasta, denumită IDE (Integrated Development Environment) care asigură modalitatea de programare a microcontrolerului dedicat al plăcii Arduino.
Mediul IDE este un mediu integrat de dezvoltare, care este un software de tip cross-platform conceput în Java care se instalează pe un computer, unde cu ajutorul unui editor dedicat sau al oricărui editor, la alegerea programatorului, oferă posibilitatea creării codului specific pentru programarea microcontrolerului și ulterior încărcarea acestui cod în memoria plăcii Arduino.
Figura IV.16. – Mediul IDE
Limbajul de programare folosit pentru a controla acțiunile plăcii Arduino este “Arduino programming language” care este o variantă de Wiring și este foarte asemănător cu limbajul C/C++.
De asemenea, programarea mediului IDE pentru Arduino suportă programarea directă in limbajul de programare C și C++, dar folosește pentru aceasta un set special de reguli și de structurare a codului.
Programele specifice scrise cu ajutorul mediului de dezvoltare IDE, sau folosind denumirea specifica Arduino – “sketch” sunt stocate local pe computerul care găzduiește software-ul IDE în format text avînd extensia “.ino” sau “.pde”și cu ajutorul mediului IDE sunt compilate și ulterior transferate în memoria plăcii Arduino.
În cazul prezentat în acest proiect, sistemul de alarmă folosește un “sketch’ Arduino alcătuit din câteva module cu funcționalitate independentă si o serie de librarii specifice componentelor hardware utilizare in implementarea montajului.
IV.4. Implementarea sistemului de alarmă bazat pe Arduino Mega 2560
În acest capitol vom dezvolta mai pe larg pașii urmați în implementarea efectivă a sistemului de alarmă bazat pe placa Arduino Mega 2560 precum și prezentarea machetei folosite pentru a simula spațiul de locuit în care sistemul de alarmă va fi instalat și pe care îl va monitoriza folosind funcțiile specifice prezentate anterior.
Vom începe cu prezentarea machetei spațiului supravegheat de sistemul de alarmă in discuție. Pentru realizarea acestei machete s-au folosit materiale simple și ieftine care simuleaza la o scară redusă de aproximativ 1:10 un spațiu de locuit de tip apartament, compus din 2 camere, o bucătărie, un hol și un garaj și care prezintă două uși exterioare de acces.
Materialul folosit pentru pereți și uși este polistiren extrudat, un material ușor și rezistent folosit de regulă în izolații externe.
Figura IV.17. – Placă de polistiren extrudat
Podeaua este de asemenea alcătuită dintr-o placă de polistiren extrudat, iar pereții tăiați la dimensiune au fost lipiți cu ajutorul unei paste adezive de uz general și întărită cu o serie de pini metalici pentru a îi conferi o rezistență sporită.
Ușile de acces au fost decupate în placa de polistiren și fixate cu ajutorul unor pini pentru a permite deschiderea și închiderea facilă, în scop demonstrativ.
Figura IV.18. – Ușa este decupată în placa de polistiren
Componentele au fost fixate ulterior în interiorul incintei în locuri bine definite pentru a servi cât mai fidel scopului acestui proiect, și anume demonstarea capabilităților unui sistem de alarmă bazat pe placa Arduino Mega 2560.
Dimensiunile aproximative ale machetei sunt prezentate mai jos:
Lungime 100cm
Lățime 60cm
Înălțime 20cm
O imagine a machetei este prezentată în figura de mai jos
Figura IV.19. – Macheta în versiunea finală
În interiorul acestei machete a fost instalat montajul electronic bazat pe placa Arduino Mega 2560, care simulează o situație reală în care sistemul de alarmă monitorizează intruziunea într-un spațiu de locuit.
Montajul electronic este compus din câteva componente specifice mediului Arduino, care au funcții diferite și sunt comandate de «creierul» sistemului, și anume placa Arduino Mega 2560.
Senzorii sunt componentele de detecție efectivă și sunt de două feluri:
Senzori de mișcare (PIR HC SR-04)
Senzori magnetici (Reed Switch)
Figura IV.20. – Senzorii folosiți (magnetici și de mișcare)
Acești senzori sunt conectați electric prin conductori la intrările predefinite ale plăcii Arduino Mega 2560. Poziționarea senzorilor este diferită, în funcție de tipul lor:
Senzorii de mișcare – sunt plasați în puncte strategice din fiecare încăpere a machetei care se dorește a fi monitorizată
Senzorii magnetici – sunt plasați pe interiorul celor două uși ale machetei, ușa din față și ușa din spate în intenția de a detecta orice deschidere a respectivelor uși pe care le monitorizează
Următoarea componentă importantă este sistemul de I/O (intrare/ieșire) care va interacționa direct cu utilizatorul final al sistemului de alarmă prezentat. Aici avem 2 componente cu rol diferit și complementar în același timp:
Tastatura matriceală KPmatrix 4×4 care permite utilizatorului final al sistemului de alarmă să transmită date către placa Arduino Mega 2560, pentru a activa sau dezactiva starea de alarmă sau pentru a comanda orice funcție ulterioară a sistemului de alarmă
Ecranul LCD 2004-blue care va prezenta mesajele directe ale sistemului de alarmă către utilizatorul final, starea sistemului de alarmă, alarmele active la acel moment de timp, precum și orice mesaj care se va dori a fi transmis către utilizator de către orice funcție implementată ulterior
Tastatura și ecranul LCD vor fi conectate prin conductori la pinii predefiniti ai plăcii Arduino Mega 2560.
Figura IV.21. – Ecranul LCD si tastatura matriceală
Pentru a comanda componenta suplimentară a sistemului de alarmă, camera video Vivitar DVR 787HD vom folosi un servomotor MG995 care are rolul de a roti camera în direcția predefinită pentru a acoperi exact senzorul care a detectat starea de alarmă.
Camera video va fi direct susținută de către componenta servo prin intermediul unui suport de tip pan-tilt.
Activarea camerei va fi făcută direct de către placa Arduino Mega 2560 în momentul în care unul dintre senzorii prezenți va activa starea de alarmă prin transmiterea unui semnal electric specific. La activare camera va începe în mod automat să înregistreze după ce a fost poziționată în direcția corectă de către mecanismul servo care o deservește.
Servo-ul va fi conectat la placa Arduino Mega 2560 prin intermediul unor conductori electrici.
Figura IV.22. – Camera video este fixată pe servomotor
Componenta de alertare în cazul activării stării de alarmă este un generator de sunet de tip buzzer de tip pasiv care va fi conectat la placa Arduino Mega 2560 de asemenea prin intermediul unor conductori electrici.
Figura IV.23. – Generator de sunet de tip buzzer
În plus acestei componente de alertare de tip sunet, vom adăuga o componentă vizuală, adică o serie de LED-uri și de asemenea o banda de LED-uri comandată de către placa Arduino Mega 2560.
Figura IV.24. – LED-uri si LED strip
Instalarea componentelor hardware ale sistemului de alarmă prezentat se va face după ce macheta a fost construită și pregătită pentru această acțiune. Spațiul denumit “garaj”al machetei va fi folosit pentru stocarea componentelor pasive suplimentare ale montajului electronic:
Releele de tip modul releu cu 4 canale care vor fi folosite la comandarea mișcării camerei video pentru putea fi repoziționată în cazul activării stării de alarmă
Conectica folosită pentru a lega componentele montajului electronic
Suporturile de tip “bread-board” folosite de asemenea la interconectare
Placa Arduino Mega 2560
După cum se poate observa în cele prezentate mai sus, sistemul de alarmă bazat pe platforma Arduino, folosește un numar redus de componente electrice și electronice simple și de cost redus care îndeplinesc aceleași funcții ca și un sistem tradițional de alarmă și este flexibil și modular, avînd în vedere posibilitatea adăugării ulterioare a unor funcții suplimentare care să ajute și să completeze funcționalitatea sistemului de alarmă prezentat.
Această prezentare este un concept, care arată utilitatea conceptului de open-source hardware și este unul dintre multele implementări posibile folosind platforma Arduino pentru a înlocui o soluție electronică deja consacrată și relativ costisitoare de pe piață. Conceptul în sine este înrudit cu idea de open-source deja existentă în domeniul software și poate fi considerat o particularizare a acestei idei.
Combinarea conceptului de open-source prezent deja în domeniul software cu cel de open-source din domeniul hardware este un domeniu vast cu o aplicabilitate foarte mare și beneficii multiple pentru utilizatorul final.
Atât componenta hardware cât și cea software a proiectului este deschisă oricarei modificări ulterioare și ca urmare al acestui aspect flexibilitatea și adaptabilitatea proiectului este foarte mare, existînd posibilitatea reală de imbunătățire și dezvoltare ulterioară, chiar și de către utilizatorul final al acestui proiect precum și posibilitatea foarte facilă a reutilizării în orice alte condiții asemănătoare, fără efort major de reinstalare sau reconfigurare a sistemului în sine sau a componentelor acestuia, atât hardware cât și software.
IV.5. Testarea “Sistemului de automatizare și securizare a locuințelor”
Având în vedere principiile de funcționare ale unui sistem de alarmă tradițional, principii pe care sistemul de alarmă bazat pe Arduino, prezentat în această lucrare, a încercat să le păstreze și să le replice cât mai fidel, testarea se va face foarte simple, prin simularea unor evenimente de securitate care să fie asimilate de către sistemul de alarmă în discuție ca și intruziuni în spațiul pe care îl are sub acoperire.
Ca prim pas în cadrul procesului de testare, vom demonstra activarea și dezactivarea sistemului de alarmă bazat pe Arduino, prin utilizarea directă a tastaturii matriceale atașate montajului, situată pe peretele exterior al machetei, în imediata apropiere a intrării principale în spațiul monitorizat.
Vom face două încercări de introducere a codului PIN de activare/dezactivare. Prima va simula introducerea unui cod greșit, în urma căruia sistemul nu iși va schimba starea din activ în inactiv sau invers și doar va genera un mesaj de eroare pre-programat pe ecranul LCD atașat montajului, situat de asemenea în exterior, în imediata apropiere a tastaturii, pe peretele exterior din față.
Figura IV.25. – Mesaj de eroare in cazul PIN code grexit
A 2-a încercare de introducere a codului de activare/dezactivare a sistemului de alarmă va fi terminată cu succes, deoarece în acest caz vom introduce codul PIN corect și ca urmare sistemul își va schimba starea din activ în inactiv sau invers, urmînd să afișeze acest mesaj de finalizare a schimbării de stare pe ecranul LCD conectat.
Figura IV.26. – Mesaj de tipul cod PIN acceptat
După acest test în care am demonstrat capabilitatea sistemului de a fi comandat doar în cazul introducerii unui cod corect de securitate de tip PIN (personal identification number – număr personal de identificare) vom continua testarea prin simularea efectivă a unei intruziuni în oricare dintre camerele machetei, supravegheate de senzorii de mișcare descriși anterior.
Pentru acest al 2-lea test al sistemului de alarmă bazat pe platforma Arduino, vom introduce un obiect sau mâna în incinta monitorizată. Ca urmare a acestei acțiuni directe, care va fi interpretată de senzorii de mișcare ai sistemului de alarmă drept o intruziune în spațiul monitorizat, se va declanșa starea de alarmă, generatorul de sunet de tip buzzer va fi comandat, precum și LED-urile și LED-stripe-ul vor fi activate. Efectul va fi similar cu al unui sistem tradițional de alarmă, utilizatorul final va primi o avertizare sonora și luminoasă.
Ecranul LCD situat la exterior va afișa mesajul specific de alertă în care ne atenționează asupra evenimentului de securitate detectat în spațiul monitorizat de tip “mișcare în spațiul monitorizat”.
Figura IV.27. – Mesaj în cazul activării senzorilor de mișcare
De asemenea, ca acțiune suplimentară avertizării stării de alarmă pe ecranul LCD extern , și a activării avertizării sonore și luminoase, placa Arduino Mega 2560 va comanda schimbarea poziției și activarea camerei video atașate pentru a furniza o imagine a evenimentului de securitate detectat în spațiul monitorizat.
Al 3-lea test pe care îl vom efectua asupra sistemului de alarmă bazat pe platforma hardware open-source Arduino, va fi simularea deschiderii neautorizate a uneia dintre ușile de acces în spațiul monitorizat.
Această acțiune directă asupra machetei, va fi detectată de către senzorul magnetic aferent ușii respective și va fi interpretată de senzorul magnetic al sistemului de alarmă drept o intruziune în spațiul monitorizat, se va declanșa starea de alarmă, generatorul de sunet de tip buzzer va fi comandat, precum și LED-urile și LED-stripe-ul vor fi activate. Efectul va fi similar cu al unui sistem tradițional de alarmă, utilizatorul final va primi o avertizare sonoră și luminoasă.
Ecranul LCD situat la exterior va afișa mesajul specific de alertă în care ne atenționează asupra evenimentului de securitate detectat în spatiul monitorizat de tip “usa deschisa”.
Figura IV.28. – Mesaj de tip ușă deschisă
De asemenea, ca acțiune suplimentară avertizării stării de alarmă pe ecranul LCD extern , și a activării avertizării sonore și luminoase, placa Arduino Mega 2560 va comanda schimbarea poziției și activarea camerei video atașate pentru a furniza o imagine a evenimentului de securitate detectat în spațiul monitorizat.
Figura IV.29. – Camera video urmărește un eveniment de securitate
Concluzionând testele efectuate mai sus, putem spune că sistemul de alarmă bazat pe platforma Arduino are aceleași funcții ca și un sistem de alarmă traditional.
Acțiunile sistemului de alarmă în cazul detectării unui eveniment de securitate în spațiul monitorizat sunt configurabile prin modificarea directă, prin intermediul mediului de programare IDE a codului Arduino compilat și încărcat în memoria plăcii Arduino Mega 2560.
În același fel se va putea modifica răspunsul sistemului de securitate la condițiile de alarmă predefinite, valoarea codului PIN de securitate folosit la activarea sau dezactivarea stării de alarmă sau a acceptării unui eveniment de securitate în curs.
Figura IV.30. – Codul PIN este parola sistemului de securitate
Prin comparație cu un sistem tradițional de alarmă existent pe piață, funcționalitatea sistemului de alarmă bazat pe platforma Arduino este similară și ca urmare ar putea să înlocuiască cu succes un asemenea sistem tradițional și să îi preaia sarcinile specifice de detectare și avertizare pentru un spațiu de mărime mică sau medie, de exemplu un apartament sau un spațiu comercial de dimensiune mică.
Capitolul V. Concluzii
Capitolul V, este destinat concluziilor finale ce au survenit din partea teoretică și aportul individual, completat cu observații personale despre îmbunătățirea sistemului de securitate construit cu placa Arduino Mega 2560.
V.1. Diferențe: sistem de alarmă tradițional și “Sistem de alarmă Arduino”
Concluzionând, în lucrarea de față s-a realizat proiectarea și implementarea unui sistem de automatizare și securizare a locuințelor, pornind de la modelul tradițional al unui sistem clasic de alarmă, regăsit pe piață în momentul de față, folosind platforma de tip open-souce hardware de la Arduino, încercîndu-se o cât mai fidelă replicare a funcțiilor oferite de către sistemul tradițional și încercându-se să se aducă posibile îmbunătățiri prin adăugarea unei componente suplimentare de supraveghere video, care va putea fi ulterior configurată pentru a servi scopurilor specifice ale utilizatorului final care va beneficia de mai sus mentionatul sistem de automatizare și securizare a locuințelor.
În proiectarea sistemului de automatizare și securizare a locuințelor în discuție, am luat în considerare principiul utilizării componentelor cu cel mai redus impact de cost si cu o cît mai mare simplitate a montajului electronic și a principiilor de implementare și de funcționare finală, precum și o cât mai mare modularitate atât a părții de hardware cât și a părții de software, pentru a permite adăugarea ulterioară facilă a unor eventuale funcționalități suportate de către platforma Arduino în funcție de nevoile specifice ale utilizatorului final.
În cadrul fazei de implementare a montajului electronic și a machetei folosite la simularea spațiului de locuit care va fi monitorizat, ca și concluzii finale, am folosit aceleași principii enumerate mai sus pentru faza de proiectare, și anume simplitate, cost redus, modularitate și posibilitatea modificării cât mai ușoare daca se va dori ulterior acest lucru.
Macheta realizată pentru simularea spațiului de locuit care va fi monitorizat de către sistemul de automatizare și securizare a locuințelor prezentat în acestă lucrare, a fost proiectată și implementată pentru a reprezenta cât mai fidel un spațiu de locuit de tip apartament cu un garaj aferent și de asemenea a fost realizată cu materiale simple, la scară și de asemnea cu posibilitatea de modificare sau extindere ulterioara, in funcție de nevoile specifice ale utilizatorului final.
Concluziile fazei de testare, sunt că am scos în evidență funcționalitatea specifică a sistemului de alarmă, făcînd o paralelă cu sistemele tradiționale de alarmă existente pe piață. Am simulat câteva situații reale de evenimente de securitate care să activeze starea de alarmă și să scoată în evidență funcțiile sistemului de automatizare și securizare a locuințelor, precum și să arate posibilitățile de utilizare a sistemului bazat pe mediul Arduino într-o situație reală, și cum acesta ar putea să înlocuiască in mod real un sistem tradițional de alarmă existent pe piață, ba chiar să ofere facilități suplimentare, în funcție de nevoile specifice ale utilizatorului final. Acestea au scos in evidență aplicabilitatea ridicată a sistemului studiat.
Funcțiile oferite de către sistemul de automatizare și securizare a locuințelor prezentat în această lucrare sunt similare cu cele oferite de către un sistem de alarmă tradițional și pot fi asimilate în totalitate celor care se regăsesc la sisteme de securitate consacrate, care sunt folosite in aplicații dintre cele mai variate și conferă o bază solidă de concluzionare asupra valorii studiului efectuat si a sistemului open-source prezentat, astfel putând spune fară indoială că soluția Arduino poate înlocui cu succes un sistem traditional.
Toate aceste aspecte menționate mai sus, și prezentate anterior, sunt puncte forte ale sistemului de automatizare și securizare a locuințelor și sunt specifice in general platformei open-source, atăt hardware cât și software.
Ca și dezavantaje trebuie menționate lipsa suportului tehnic prezent în cazul unui sistem tradițional de alarmă achiziționat de pe piață, o aplicabilitate la scară redusă ca dimensiune a spațiului supravegheat, o fiabilitate mai redusă a componentelor electronice folosite și lipsa unei experiențe la scară mare a utilizării acestui tip de montaj electronic, care are ca aplicabilitate mai mare domeniile educațional și academic.
Aceste dezavantaje sunt însă in mare măsură generate de costul redus al acestui gen de proiect și dacă privim doar din punct de vedere funcțional, aceasta aplicație are șanse bune de a acoperi un sector de piață care este dedicat consumatorului casnic de dimesiuni și costuri cât mai scăzute.
La final aș vrea să adaug faptul că acest proiect, privit ca și un concept de sistem de automatizare, ar putea fi considerat o solutie complexă destinată îmbunătățirii calității vieții și confortului unei locuințe care pe lângă funcția specifică de alarmă anti-intruziune are posibilitatea adăugării unui număr de module care să asigure virtual un număr nelimitat de funcționalități care să poată fi implementate atât ca grup cât și independent.
V.2. Observații și posibilități de îmbunătățire
După cum am prezentat în lucrarea de față, mediul de dezvoltare Arduino permite implementarea unor multiple soluții de automatizare foarte variate.
Pe lânga funcția de alarmă, la sistemul prezentat am adăugat o funcție demonstrativă de supraveghere video, care sa arate in primul rând modularitatea sistemului și sa se constituie ca un punct de plecare pentru orice funcții suplimentare care se vor dori adăugate ulterior pentru a îmbunătății și a sofistica acest proiect.
Una dintre ideile de îmbunătățire a sistemului de alarmă prezentat în acest proiect, ar fi adăugarea unui modul de comunicație GSM, care necesita o componentă hardware adițională, specifică plăcii Arduino și anume un Arduino GSM Shield 2, care va permite implementarea funcției de avertizare via SMS în cazul unui eveniment de securitate survenit în cadrul spațiului monitorizat.
Figura V.1. – Extensie Arduino Shield 2
O altă posibilă extensie ar fi adăugarea unui shield wifi care să permită comunicația folosind o rețea wifi și în acest fel să poată să trimită și să primească informație către alte dispozitive prezente in aceeași rețea.
Cu observația că doar un tip de shield poate fi instalat la un moment de timp.
Figura V.2. – Extensie Arduino WIFI Shield
De asemenea, putem să avem in vedere utilizarea unui alt model de cameră video, care să permită vizualizarea directă folosind conexiunea la internet și în acest fel oferind posibilitatea supravegherii in timp real a spațiului monitorizat. (Schimbarea camerei video va implica însă un cost suplimentar, care va crește valoarea totală a proiectului, lucru care nu este dorit în cele mai multe cazuri de către utilizatorul final).
Bibliografie
BANZI, et al., 2011,Banzi, M., Getting Started with Arduino, ediția a II-a, Editura O'Reilly, USA, 2011
BLUM, Jeremy, Exploring Arduino: Tools and Techniques for Engineering Editura Wizardry, Wiley, 2013
CAPEL, Vivian, Home Security: Alarms, Sensors and Systems, Editura Newnes, Oxford, 1997
CHIN, Robert, Home Security Systems DIY Using Android and Arduino, Editura Createspace Independent Publishing Platform, December 2015
FALUDI, Robert, Building Wireless Sensor Networks Using Arduino, Editura O’reilly, Sebastopol, California, 2011
FINCH, Lynne, The Home Security Handbook: Expert Advice for Keeping Safe at Home (And Away), Editura Skyhorse Publishing, Inc., 2014
HADDOX, Alex, Practical Home Security: A Guide to Safer Urban Living, Editura Palladium Education, Inc., Locul, 2011,
HOROWITZ, Paul Hill, Winfeld The Art of Electronics a II-a ediție, Editura Cambridge University Press, Massachusetts, 1989
http://arduino.cc/playground/Main/ManualsAndCurriculum
http://constructingmodernknowledge.com/cmk08/?p=1099
http://hci.rwth-aachen.de/arduino – Arduino in a Nutshell – Jan Borchers, Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License
http://physcomp.arduinoeducation.com/
http://quickstartkitforarduino.blogspot.ro/
http://sheepdogguides.com/arduino/FA1main.htm
http://www.arduino.org/learning/getting-started
http://www.arduino.org/learning/reference
http://www.instructables.com/id/Home-automation-system-using-Arduino-and-SIM900-GS/
http://www.letsarduino.com/project-20-arduino-door-lock-using-4×4-keypad-and-servo-motor/
http://www.makeuseof.com/tag/arduino-technology-explained/
http://www.mediafire.com/file/kxlcxedsmgm/Arduino+-+Reference.pdf
http://www.mheducation.com/
http://www.talkingelectronics.com/te_interactive_index.html
https://library.oreilly.com/book/9780596155520/getting-started-with-arduino-1st-edition/toc
https://portal.anelisplus.ro/
https://www.inginerul.ro/functionarea-unui-sistem-de-alarma-casa/
https://www.packtpub.com/hardware-and-creative/iot-building-arduino-based-projects
https://www.safewise.com/resources
https://www.spy-shop.ro/dictionar-termeni.html
IGOE, Tom, Making Things Talk : Using Sensors, Networks, and Arduino to See, Hear, and Feel Your World, a II-a ediție, 2011,
ISHIKAWA, et al., 2009, Ishikawa, M., Maruta, I. (2009), Rapid prototyping for control education using Arduino and open-source technologies. Proceedings of 8th IFAC Symposium on Advances in Control Education, Japan, October 2009
LIPMAN, Ira A., How to Be Safe: Survival Tactics to Protect Yourself, Your Home, Your Business and Your Family, Editura Reader’s Digest association(Guardsmark, LLC), Inc.,2012
MARGOLIS, Michael, Arduino Cookbook, a II-a ediție, Editura O'Reilly Media, 2011
MNERIE, Alin Vasile și autor alternativ Molnar-Matei, Florin Îndrumător de laborator : Rețele, Sisteme intrare-ieșire, Achiziții de date, Calculatoare – echipamente Hard, Introducere în internet, Matematici discrete
MOLNAR ,Florin -Matei și Ioan Rareș Stanciu, Introducere în electronică analogică și digitală. Note de curs și îndrumător de laborator, ISBN 978-606-569-968-7, Editura Eurostampa, Coeditare cu Fundația "Ioan Slavici", Timișoara, 2015
MONK, Simon, Programming Arduino, Getting started with Sketches,a II-a ediție, Editura McGraw – Hill Education, 2016,
OXER, Jonathan și, Blemings Hugh, Practical Arduino Cool Projects for Open Source Hardware, Editura Apress, 2009
PHILLIPS, Bill, The Complete Book of Home, Site and Office Security: Selecting, Installing and Troubleshooting Systems and Devices , Editura The MCGraw – Hill Companies, Inc., 2006
TRIMMER, H. William, Understanding and Servicing Alarm Systems, a – III – a ediție, Editura Butterworth Heinemann, 1999
Anexe
Anexa 1. Cod sursă
/*
Titlul proiectului: Sistem de automatizare și securizare a locuintei
*/
/////////////////////////////////////////////////////////////////
#include <LiquidCrystal.h>
#include <Wire.h>
#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
#include <Servo.h>
#include "RTClib.h"
//Servo
Servo myservo; // create servo object to control a servo
int pos = 90; // variable to store the servo position
int passwd_pos = 15; // the postition of the password input
//Real Time Clock
RTC_DS1307 RTC;
//Password
Password password = Password( "1234" );
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns
char keys[ROWS][COLS] = { // Define the Keymap
{
'1','2','3','A' }
,
{
'4','5','6','B' }
,
{
'7','8','9','C' }
,
{
'*','0','#','D' }
};
byte rowPins[ROWS] = {
46, 47, 48, 49}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {
50, 51, 52, 53}; //connect to the column pinouts of the keypad
// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Assignign arduino pins to LCD display module
//Stroke LED Lights
int ledDelay = 50; // delay by 50ms
int redPin = 29;
int bluePin = 31;
//constants for LEDs, inputs and outputs
//int blueLED = 36;
int greenLED = 37;
int redLED = 38;
int pirPin1 = 39;
int pirPin2 = 34;
int reedPin1 = 41;
int reedPin2 = 42;
int speakerPin = 35;
//int relay1 = 3; //
int relay2 = 4; // connected to 12V Blue LED strip
int relay3 = 5; // Cam
int relay4 = 6; //
int alarmStatus = 0;
int zone = 0;
int alarmActive = 0;
void setup(){
Serial.begin(9600);
lcd.begin(20, 4);
//Adding time
Wire.begin();
RTC.begin();
//If we remove the comment from the following line, we will set up the module time and date with the computer one
RTC.adjust(DateTime(__DATE__, __TIME__));
myservo.attach(2); // attaches the servo on pin 2 to the servo object
displayCodeEntryScreen();
//Police LED Lights
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
//setup and turn off both LEDs
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(speakerPin, OUTPUT);
//pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT); //12V Blue LED lighting
pinMode(relay3, OUTPUT); //camera, 5V external DC supply
pinMode(relay4, OUTPUT); //
pinMode(pirPin1, INPUT); //Bedroom 2
pinMode(pirPin2, INPUT); //Garage
pinMode(reedPin1, INPUT); //Front door
pinMode(reedPin2, INPUT); //Back door
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
digitalWrite(speakerPin, LOW);
//digitalWrite(relay1, LOW); //
digitalWrite(relay2, HIGH); // 12V Blue LED lighting
digitalWrite(relay3, HIGH); // camera, 5V external DC supply
digitalWrite(relay4, LOW); //
keypad.addEventListener(keypadEvent); //add an event listener for this keypad
myservo.write(pos);
}
void loop(){
//display time and date
DateTime now = RTC.now();
//DATE
lcd.setCursor(0,1);
lcd.print(now.month(), DEC);
lcd.print('/');
//We print the day
lcd.print(now.day(), DEC);
lcd.print('/');
//We print the year
lcd.print(now.year(), DEC);
lcd.print(' ');
//TIME
lcd.setCursor(13,1);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.setCursor(16,1);
lcd.print(now.minute(), DEC);
//lcd.print(':');
//lcd.print(now.second(), DEC);
//delay(1000);
keypad.getKey();
//Serial.println(digitalRead(reedPin2));
//Serial.println(digitalRead(pirPin));
//Serial.println(digitalRead(pirPin2));
if (alarmActive == 1){
if (digitalRead(pirPin1) == HIGH)
{
zone = 0;
alarmTriggered();
}
if (digitalRead(reedPin1) == LOW)
{
zone = 1;
alarmTriggered();
}
if (digitalRead(reedPin2) == LOW)
{
zone = 2;
alarmTriggered();
}
if (digitalRead(pirPin2) == HIGH)
{
zone = 3;
alarmTriggered();
}
}
}
///////////////////////// Functions /////////////////////////////////
//take care of some special events
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
if (passwd_pos – 15 >= 5) {
return ;
}
lcd.setCursor((passwd_pos++),0);
switch (eKey){
case '#': //# is to validate password
passwd_pos = 15;
checkPassword();
break;
case '*': //* is to reset password attempt
password.reset();
passwd_pos = 15;
// TODO: clear the screen output
break;
default:
password.append(eKey);
lcd.print("*");
}
}
}
void alarmTriggered(){
int expected_pos;
int incr;
digitalWrite(speakerPin, HIGH);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(redPin, HIGH);
//
password.reset();
alarmStatus = 1;
// alarmActive = 0;
lcd.clear();
lcd.setCursor(0,2);
lcd.print(" SYSTEM TRIGGERED ");
lcd.setCursor(0,4);
if (zone == 1)
{
lcd.print(" Front Door Open ");
expected_pos = 65;
delay(1000);
}
if(zone == 0){
expected_pos = 40;
lcd.print("Motion in Bedroom 1 ");
delay(1000);
}
else if(zone == 2){
expected_pos = 10;
lcd.print("Backdoor Open");
delay(1000);
}
else if(zone == 3){
expected_pos = 145;
lcd.print("Motion in Garage");
delay(1000);
}
if (expected_pos > pos) {
incr = 1;
} else {
incr = -1;
}
for (pos = pos; pos != expected_pos; pos += incr) {
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(5); // waits 5ms for the servo to reach the position
}
/*
for(pos = 0; pos < angle; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(20); // waits 15ms for the servo to reach the position
}
for(pos = angle; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(20); // waits 15ms for the servo to reach the position
}
*/
{
StrokeLight();
}
}
void StrokeLight(){ //Stroke LED Lights
digitalWrite(redPin, HIGH); // turn the red light on
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW); // turn the red light off
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, HIGH); // turn the red light on
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW); // turn the red light off
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, HIGH); // turn the red light on
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW); // turn the red light off
delay(ledDelay); // wait 50 ms
delay(10); // delay midpoint by 100ms
digitalWrite(bluePin, HIGH); // turn the blue light on
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW); // turn the blue light off
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, HIGH); // turn the blue light on
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW); // turn the blue light off
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, HIGH); // turn the blue light on
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW); // turn the blue light off
delay(ledDelay); // wait 50 ms
}
void checkPassword(){ // To check if PIN is corrected, if not, retry!
if (password.evaluate())
{
if(alarmActive == 0 && alarmStatus == 0)
{
activate();
}
else if( alarmActive == 1 || alarmStatus == 1) {
deactivate();
}
}
else {
invalidCode();
}
}
void invalidCode() // display meaasge when a invalid is entered
{
password.reset();
lcd.clear();
lcd.setCursor(1,0);
lcd.print("INVALID CODE! LOL!");
lcd.setCursor(5,2);
lcd.print("TRY AGAIN!");
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
delay(2000);
digitalWrite(redLED, LOW);
delay(1000);
displayCodeEntryScreen();
}
void activate() // Activate the system if correct PIN entered and display message on the screen
{
if((digitalRead(reedPin1) == HIGH) && (digitalRead(reedPin2) == HIGH)){
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
digitalWrite(2, HIGH);
lcd.setCursor(0,0);
lcd.print("SYSTEM ACTIVE!");
alarmActive = 1;
password.reset();
delay(2000);
}
else{
deactivate(); // if PIN not corrected, run "deactivate" loop
}
}
void deactivate()
{
//digitalWrite(camera, LOW);
alarmStatus = 0;
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" SYSTEM DEACTIVATED!");
digitalWrite(speakerPin, LOW);
alarmActive = 0;
password.reset();
delay(5000);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
displayCodeEntryScreen();
}
void displayCodeEntryScreen() // Dispalying start screen for users to enter PIN
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter PIN:");
lcd.setCursor(0,2);
lcd.print("Home Security System");
lcd.setCursor(0,3);
lcd.print("By Jun Peng, TECH169");
}
Anexa 2 – Schema electronică a plăcii Arduino Mega 2560
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: II.1. Istoric Arduino 10 [307956] (ID: 307956)
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.
