This shows you the differences between two versions of the page.
|
pm:prj2023:vstoica:sistem-alarma-cosor-mihai [2023/05/29 20:34] mihai.cosor [Software Design] |
pm:prj2023:vstoica:sistem-alarma-cosor-mihai [2023/05/29 20:49] (current) mihai.cosor [Software Design] |
||
|---|---|---|---|
| Line 120: | Line 120: | ||
| <code C> | <code C> | ||
| bool checkAlarm() { | bool checkAlarm() { | ||
| - | if (isPanic) { | + | if (isPanic) { // verificare buton de panica |
| lcd.clear(); | lcd.clear(); | ||
| lcd.setCursor(3, 0); | lcd.setCursor(3, 0); | ||
| Line 128: | Line 128: | ||
| } | } | ||
| - | if (isAuthorized) { | + | if (isAuthorized) { // verificare daca s-a introdus cartela/cod inainte |
| - | countdown(); | + | countdown(); // countdown pana se reporneste senzorul |
| isAuthorized = false; | isAuthorized = false; | ||
| return false; | return false; | ||
| } | } | ||
| | | ||
| - | if (getID()) { | + | if (getID()) { // verificare existenta cartela |
| if (tagID == MasterTag) { | if (tagID == MasterTag) { | ||
| countdown(); | countdown(); | ||
| Line 144: | Line 144: | ||
| } | } | ||
| - | if (isObstacleInFront()) { | + | if (isObstacleInFront()) { // verificare obstacol in fata senzorului |
| lcd.clear(); | lcd.clear(); | ||
| lcd.print("INTRUDER ALERT!"); | lcd.print("INTRUDER ALERT!"); | ||
| Line 155: | Line 155: | ||
| </code> | </code> | ||
| - | Functiile de citire senzor ultrasonic si calculare distanta | + | Functiile de citire senzor ultrasonic si calculare distanta si decidere daca exista obstacol in fata la 30 de cm sau nu. |
| <code C> | <code C> | ||
| int getDistance() { | int getDistance() { | ||
| Line 166: | Line 166: | ||
| duration = pulseIn(echoPin, HIGH); | duration = pulseIn(echoPin, HIGH); | ||
| - | distance = duration * 0.034 / 2; | + | distance = duration * 0.034 / 2; // formula distanta conform vitezei sunetului |
| return distance; | return distance; | ||
| Line 208: | Line 208: | ||
| </code> | </code> | ||
| + | |||
| + | Restul functiilor folosite, doar semnaturile deoarece cele de add / send / delete sunt asemanatoare in primirea si handle-uirea inputului de la tastatura. | ||
| <code C> | <code C> | ||
| + | /* | ||
| + | * Constante si initializari necesare programului in sine | ||
| + | */ | ||
| + | enum state {ACCEPTED, DENIED, WAITING}; | ||
| + | const byte NUMBER_OF_PASSWORDS = 10; | ||
| + | byte FREE_SPACE_PASSWORDS = 10; | ||
| + | long passwords[NUMBER_OF_PASSWORDS]; | ||
| + | const long MASTER_KEY = 2001; | ||
| + | bool isAuthorized = false; | ||
| + | |||
| + | /* | ||
| + | * Initializare vector de parole | ||
| + | */ | ||
| + | void initPasswords() {...} | ||
| + | |||
| + | /* | ||
| + | * Verificare parola | ||
| + | */ | ||
| + | state checkPassword(long password) {...} | ||
| + | |||
| + | /* | ||
| + | * Verificare parola admin | ||
| + | */ | ||
| + | bool checkMasterKey() {...} | ||
| + | |||
| + | /* | ||
| + | * Adaugare parola noua | ||
| + | */ | ||
| + | void add_password() {...} | ||
| + | |||
| + | /* | ||
| + | * Stergere parola | ||
| + | */ | ||
| + | void delete_password() {...} | ||
| + | |||
| + | /* | ||
| + | * Introducere parola pentru verificare | ||
| + | */ | ||
| + | void send_password() {...} | ||
| + | /* | ||
| + | * Start alarma | ||
| + | */ | ||
| + | void startAlarm() {...} | ||
| </code> | </code> | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||