This shows you the differences between two versions of the page.
pm:prj2023:drtranca:robert.veliscu [2023/05/30 07:36] robert.veliscu created |
pm:prj2023:drtranca:robert.veliscu [2023/05/30 10:33] (current) robert.veliscu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Detector de scurgeri de gaze si inundatii ====== | ====== Detector de scurgeri de gaze si inundatii ====== | ||
+ | <note tip> | ||
+ | * Nume: Veliscu Robert-Valentin | ||
+ | * Grupa: 341C4 | ||
+ | </note> | ||
+ | |||
===== Introducere ===== | ===== Introducere ===== | ||
Line 22: | Line 27: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ==== Cod Arduino ==== | ||
==== Setup ==== | ==== Setup ==== | ||
Line 38: | Line 43: | ||
* Se analizeaza valorile citite pentru determinarea starii senzorului de gaz si a clasei de apa. | * Se analizeaza valorile citite pentru determinarea starii senzorului de gaz si a clasei de apa. | ||
* Pentru senzorul de gaz, daca valoarea citita este mai mare de 250, se considera ca exista gaz si se seteaza variabila gaz la 1. Altfel, se seteaza gaz la 0. | * Pentru senzorul de gaz, daca valoarea citita este mai mare de 250, se considera ca exista gaz si se seteaza variabila gaz la 1. Altfel, se seteaza gaz la 0. | ||
- | * Pentru senzorul de apa, se realizeaza o serie de comparatii pentru a determina clasa apei in functie de valoarea citita (sunt 3 clase). Aceasta se atribuie variabilei current_class. | + | * Pentru senzorul de apa, se realizeaza o serie de comparatii pentru a determina clasa apei in functie de valoarea citita (sunt 4 clase). Aceasta se atribuie variabilei current_class. |
* Se verifca daca s-au produs modificari in starea senzorului de gaz sau in clasa apei fata de masuratorile anterioare. | * Se verifca daca s-au produs modificari in starea senzorului de gaz sau in clasa apei fata de masuratorile anterioare. | ||
* Daca s-au produs modificari, se seteaza variabila ok la 1 pentru a semnala ca trebuie trimise noi date catre server. | * Daca s-au produs modificari, se seteaza variabila ok la 1 pentru a semnala ca trebuie trimise noi date catre server. | ||
Line 51: | Line 56: | ||
* readAnalogValue(int pin): Functia citeste valoarea analogica de la pinul specificat si o converteste intr-o valoare digitala folosind modulul ADC al microcontrolerului AVR. | * readAnalogValue(int pin): Functia citeste valoarea analogica de la pinul specificat si o converteste intr-o valoare digitala folosind modulul ADC al microcontrolerului AVR. | ||
+ | ==== Cod Server ==== | ||
+ | ==== Server ==== | ||
+ | * Se importa modulele necesare, cum ar fi Express, Body Parser si WebSocket. Se configureaza adresa IP si portul serverului | ||
+ | * Se configureaza middleware-ul Express pentru a permite analiza cererilor si raspunsurilor HTTP. De asemenea, se seteaza motorul de vizualizare EJS pentru a genera pagini HTML. | ||
+ | * Odata ce se primeste o cerere GET pentru ruta de baza "/", se randeaza template-ul EJS "index.ejs", care afiseaza valorile curente ale cheilor "gaz" si "apa". | ||
+ | * Atunci cand se primeste o cerere POST pentru ruta de baza "/", se actualizeaza valorile cheilor "gaz" si "apa" cu noile valori primite in corpul cererii POST. Apoi, se trimite o actualizare prin WebSocket catre toti clientii conectati. | ||
+ | * Atunci cand un client se conecteaza prin WebSocket, acesta este adaugat la lista de clienti conectati. Se trimit clientului valorile curente ale cheilor "gaz" si "apa". In momentul in care un client se deconecteaza, acesta este eliminat din lista de clienti. | ||
+ | ==== Client ==== | ||
+ | * Se stabileste o conexiune WebSocket catre adresa IP si portul specificat. | ||
+ | * Cand se primeste un mesaj WebSocket, acesta este parsat intr-un obiect JSON pentru a obtine valorile gazului si apei. | ||
+ | * Utilizand un switch, se verifica valorile primite si se afiseaza mesaje corespunzatoare pentru fiecare valoare, insotite de schimbari ale imaginii de fundal si a culorii textului. | ||
+ | * Elementele HTML cu id-urile "gaz" si "apa" sunt actualizate pentru a afisa valorile corespunzatoare. | ||
+ | | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 59: | Line 77: | ||
===== Download ===== | ===== Download ===== | ||
- | + | {{:pm:prj2023:drtranca:pm:prj2023:cc:veliscu_robert_valentin:veliscu_robert_valentin_341c4_fost_cc.zip|Cod Sursa}} | |
- | {{:pm:prj2023:drtranca:pm:prj2023:cc:veliscu_robert_valentin:veliscu_robert_valentin_341c4_cc.zip|Cod sursa}} | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |