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 ===== |