Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 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 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 =====
pm/prj2023/drtranca/robert.veliscu.1685421389.txt.gz · Last modified: 2023/05/30 07:36 by robert.veliscu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0