Differences

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

Link to this comparison view

pm:prj2024:ccontasel:yannick.koning [2024/05/25 21:07]
yannick.koning [Software Design]
pm:prj2024:ccontasel:yannick.koning [2024/05/26 20:11] (current)
yannick.koning [Hardware Design]
Line 16: Line 16:
     * Modul RTC (Real-Time Clock)     * Modul RTC (Real-Time Clock)
     * Baterie sau sursă de alimentare     * Baterie sau sursă de alimentare
-    * Carcasă pentru protejarea componentelor+    * Senzor ultrasonic
     * Rezervor pentru apă     * Rezervor pentru apă
     * Conectori și fire pentru conexiuni     * Conectori și fire pentru conexiuni
 </​note>​ </​note>​
  
-{{schema_electrica_water_disp.png}}+{{schema_electrica_water_disp.png?769}}
  
 <note tip> <note tip>
 Conexiuni: Conexiuni:
  
-Senzor ​de nivel al apei (HC-SR04)+Senzor ​ultrasonic
  
     * VCC la 3.3V de la Arduino     * VCC la 3.3V de la Arduino
Line 38: Line 38:
     *B (bază) de la tranzistor NPN printr-o rezistență de 220Ω la pinul digital 3 de la Arduino (PWM)     *B (bază) de la tranzistor NPN printr-o rezistență de 220Ω la pinul digital 3 de la Arduino (PWM)
  
-Senzor de calitate a apei (turbiditate)+Senzor de nivevl apa
  
     *VCC la 3.3V de la Arduino     *VCC la 3.3V de la Arduino
Line 85: Line 85:
         * Pornește pompa dacă nivelul apei este prea scăzut.         * Pornește pompa dacă nivelul apei este prea scăzut.
         * Trimite un mesaj MQTT dacă pompa a fost activată de mai multe ori.         * Trimite un mesaj MQTT dacă pompa a fost activată de mai multe ori.
 +
 +===== Concepte Folosite =====
 +
 +**1. GPIO (General Purpose Input/​Output)**
 +  * **Pini de Senzori și Actuatori**:​ Utilizarea pinilor GPIO pentru a controla senzorii și pompa de apă.
 +  * **Pini Definiți**:​
 +    * `sensorPower` (pin 13): Controlul alimentării senzorului de nivel al apei.
 +    * `trigPin` (pin 12) și `echoPin` (pin 14): Controlul senzorului ultrasonic pentru măsurarea distanței.
 +    * `pumpPin` (pin 15): Controlul pompei de apă.
 +  * **Operații GPIO**:
 +    * `pinMode()`:​ Setarea modului pinilor ca intrare sau ieșire.
 +    * `digitalWrite()`:​ Scrierea valorilor HIGH sau LOW pe pini pentru a controla senzorii și pompa.
 +
 +**2. UART (Universal Asynchronous Receiver-Transmitter)**
 +  * **Comunicare Serială**: Utilizarea interfeței seriale pentru a debuga și monitoriza activitatea sistemului.
 +  * **Operații UART**:
 +    * `Serial.begin(9600)`:​ Inițializarea comunicării seriale la o viteză de 9600 bps.
 +    * `Serial.print()` și `Serial.println()`:​ Trimiterea mesajelor și datelor către monitorul serial pentru diagnosticare.
 +
 +**3. ADC (Analog-to-Digital Converter)**
 +  * **Citirea Senzorului de Nivel al Apei**: Utilizarea pinului analogic pentru a citi valorile de la senzorul de nivel al apei.
 +  * **Operații ADC**:
 +    * `analogRead(sensorPin)`:​ Citirea valorii analogice de la pinul senzorului pentru a determina nivelul apei.
 +
 +**4. Timere**
 +  * **Managementul Timpului**: Utilizarea funcțiilor de delay și millis pentru a gestiona temporizarea în sistem.
 +  * **Operații cu Timere**:
 +    * `delay()`: Introducerea unor întârzieri pentru stabilizarea senzorilor și activarea pompei.
 +    * `millis()`: Verificarea timpului scurs pentru a efectua verificări periodice ale senzorilor (de exemplu, verificarea prezenței animalului de companie la fiecare 5 secunde).
 +
 +**5. WiFi**
 +  * **Conectivitate la Rețea**: Utilizarea modulului WiFi integrat în ESP8266 pentru a conecta dispozitivul la o rețea WiFi și pentru a comunica cu broker-ul MQTT.
 +  * **Operații WiFi**:
 +    * `WiFi.begin(ssid,​ password)`: Inițierea conexiunii la rețeaua WiFi specificată prin SSID și parolă.
 +    * `WiFi.status()`:​ Verificarea stării conexiunii WiFi.
 +    * `WiFi.localIP()`:​ Obținerea adresei IP alocate dispozitivului în rețeaua locală.
 +
 +**6. MQTT (Message Queuing Telemetry Transport)**
 +  * **Protocol pentru Comunicarea M2M**: Utilizarea MQTT pentru transmiterea datelor între dispozitivele IoT și broker-ul MQTT.
 +  * **Operații MQTT**:
 +    * `client.setServer()`:​ Configurarea serverului MQTT.
 +    * `client.setCallback()`:​ Setarea funcției de callback pentru gestionarea mesajelor primite.
 +    * `client.connect()`:​ Conectarea la broker-ul MQTT.
 +    * `client.subscribe()`:​ Abonarea la un anumit topic MQTT.
 +    * `client.publish()`:​ Publicarea unui mesaj pe un topic MQTT.
 +
  
  
Line 90: Line 136:
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Codul trebuie modificat pentru a schimba refill-ul cu formula 10 umpleri/L. 
 + 
 + 
 +**Video cum functioneaza**:​ 
 +https://​drive.google.com/​file/​d/​1RldX3eXIpAgX2A6bU9fj-tDBX_Kzxtoz/​view?​usp=sharing
 </​note>​ </​note>​
  
Line 102: Line 152:
 | 13 Mai – 17 Mai   | Integrare senzori ​            | Implementarea funcționalităților pentru senzorii de nivel și calitate a apei. | | 13 Mai – 17 Mai   | Integrare senzori ​            | Implementarea funcționalităților pentru senzorii de nivel și calitate a apei. |
 | 13 Mai – 17 Mai   | Control PWM și întreruperi ​   | Configurarea PWM pentru pompa de apă și întreruperilor pentru nivelul scăzut de apă. | | 13 Mai – 17 Mai   | Control PWM și întreruperi ​   | Configurarea PWM pentru pompa de apă și întreruperilor pentru nivelul scăzut de apă. |
-                  ​| Testare și calibrare ​         | Testarea sistemului și ajustarea parametrilor pentru funcționare optimă. || +17 Mai - 22 Mai   | Testare și calibrare ​         | Testarea sistemului și ajustarea parametrilor pentru funcționare optimă. || 
-                  ​| Documentare finală ​           | Redactarea documentației pentru proiect. || +17 Mai - 22 Mai   | Documentare finală ​           | Redactarea documentației pentru proiect. || 
-                  ​| Prezentare și revizuire ​      | Prezentarea proiectului și revizuirea finală pe baza feedback-ului. ||+17 Mai - 22 Mai   | Prezentare și revizuire ​      | Prezentarea proiectului și revizuirea finală pe baza feedback-ului. ||
  
  
Line 111: Line 161:
 https://​github.com/​YANNICKKO/​SmartWaterDispenser https://​github.com/​YANNICKKO/​SmartWaterDispenser
  
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). 
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. 
-</​note>​ 
  
-===== Jurnal ​=====+===== Bibliografie/​Resurse ​=====
  
-<note tip> +Biblioteci: 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului+  * https://​github.com/​knolleary/​pubsubclient 
-</note>+  * https://​github.com/​esp8266/​Arduino/​blob/​master/​libraries/​ESP8266WiFi/​src/​ESP8266WiFi.h
  
-===== Bibliografie/Resurse =====+Software: 
 +  * https://​ocw.cs.pub.ro/​courses/​iothings/​laboratoare/​lab7 
 +  * https://​howtomechatronics.com/​tutorials/​arduino/​ultrasonic-sensor-hc-sr04/​ 
 +  * https://​lastminuteengineers.com/​water-level-sensor-arduino-tutorial/
  
-<​note>​ +Hardware: 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  https://www.adafruit.com/​product/2821
-</note>+
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2024/ccontasel/yannick.koning.1716660475.txt.gz · Last modified: 2024/05/25 21:07 by yannick.koning
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