This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:cristiana.tabacaru [2026/05/09 19:08] cristiana.tabacaru [Descriere generală] |
pm:prj2026:atoader:cristiana.tabacaru [2026/05/15 00:22] (current) cristiana.tabacaru |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Monitor de Hidratare ====== | ====== Monitor de Hidratare ====== | ||
| + | |||
| ===== Introducere ===== | ===== Introducere ===== | ||
| Line 12: | Line 13: | ||
| {{:pm:prj2026:atoader:diagrama_monitor_apa.drawio.png?600|Schema bloc Monitor de Hidratare}} | {{:pm:prj2026:atoader:diagrama_monitor_apa.drawio.png?600|Schema bloc Monitor de Hidratare}} | ||
| - | Proiectul este construit in jurul placii ATmega328PB Xplained Mini, care controleaza toate componentele sistemului. | + | **Module si interactiuni:** |
| + | |||
| + | * **ATmega328PB**: unitatea centrala de procesare. Citeste datele de la HX711, calculeaza consumul de apa, actualizeaza display-ul si gestioneaza butoanele si buzzerul. | ||
| + | * **Load Cell 5kg + HX711**: senzorul de greutate trimite un semnal analogic catre HX711, care il amplifica si il converteste la semnal digital pe 24 biti, transmis catre microcontroller prin 2 fire (CLK + DAT). | ||
| + | * **Display OLED SSD1306**: afiseaza informatii despre greutatea curenta, cantitatea de apa consumata si obiectivul zilnic. Comunicare prin I2C. | ||
| + | * **Butoane**: permit utilizatorului sa seteze obiectivul zilnic de hidratare, sa efectueze functia tare (zero) si sa navigheze in meniu. | ||
| + | * **Buzzer pasiv**: emite semnale sonore la intervale regulate (reminder de hidratare) sau la atingerea obiectivului zilnic. Controlat prin semnal PWM. | ||
| - | * **Sistem de cantarire** - Load Cell-ul masoara greutatea sticlei de apa. Semnalul este preluat de modulul HX711, care il converteste intr-un format digital si il trimite catre microcontroller prin GPIO (CLK + DAT). | + | ===== Laboratoare utilizate ===== |
| - | * **Display OLED SSD1306** - afiseaza cantitatea de apa consumata si obiectivul zilnic de hidratare. Comunicarea cu microcontrollerul se face prin I2C (SDA + SCL). | + | |
| - | * **Butoane** - permit utilizatorului sa seteze obiectivul zilnic, sa reseteze cantarul si sa navigheze in meniu. Sunt conectate prin GPIO si folosesc intreruperi pentru detectia apasarii. | + | * **Lab 0 - GPIO** — butoanele de navigare si modulul buzzer sunt conectate prin pini GPIO |
| - | * **Buzzer pasiv** - emite un semnal sonor periodic pentru a reaminti utilizatorului sa bea apa. Este controlat prin PWM. | + | * **Lab 2 - Intreruperi** — apasarea butoanelor este detectata prin intreruperi externe, nu prin polling |
| - | * **Alimentare** - placa este alimentata prin USB de la un calculator sau Power Bank. | + | * **Lab 3 - Timere si PWM** — buzzerul pasiv este controlat prin semnal PWM, iar reminderele de hidratare sunt generate cu un timer periodic |
| + | * **Lab 6 - I2C** — comunicarea cu display-ul OLED SSD1306 se face prin protocolul I2C | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | ==== Lista de piese ==== |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | ^ Nr. ^ Componenta ^ Cantitate ^ Rol in proiect^ |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | 1 | Load Cell 5kg | 1 buc. | Senzorul care simte cat cantareste sticla in fiecare moment | |
| - | * diagrame de semnal | + | | 2 | Modul HX711 | 1 buc. | Preia semnalul slab de la load cell si il face utilizabil pentru microcontroller | |
| - | * rezultatele simulării | + | | 3 | Ecran OLED SSD1306 0.96" | 1 buc. | Afiseaza progresul de hidratare in timp real | |
| - | </note> | + | | 4 | ATmega328PB Xplained Mini | 1 buc. | Creierul intregului sistem, coordoneaza toate celelalte componente | |
| + | | 5 | Modul Buzzer Pasiv 5V | 1 buc. | Reaminteste utilizatorului sa bea apa daca trece prea mult timp fara consum | | ||
| + | | 6 | Butoane PCB Mini 6x6x5mm | 3 buc. | Permit setarea obiectivului zilnic si resetarea cantarului | | ||
| + | | 7 | Kit rezistente | 1 set | Rezistente de pull-up pentru butoane | | ||
| + | | 8 | Fire Dupont M-F | 1 set | Leaga modulele externe la placa fara lipire | | ||
| + | | 9 | Fire breadboard M-M | 1 set | Conexiuni rapide intre componente pe breadboard | | ||
| + | | 10 | Breadboard 830 pini | 1 buc. | Permite testarea circuitului fara lipire permanenta | | ||
| + | | 11 | Cablu Micro-USB | 1 buc. | Alimentare si programare placa de la laptop sau power bank |<hidden>Hidden section</hidden> | ||
| + | |||
| + | ==== Circuit ==== | ||
| + | {{:pm:prj2026:atoader:monitor_hidratare_circuit.png?500|}} | ||
| + | |||
| + | ==== Schema electrica ==== | ||
| + | |||
| + | === Pini folositi === | ||
| + | |||
| + | ^ Componenta ^ Pin componenta ^ Pin ATmega328PB Xplained Mini ^ Explicatie ^ | ||
| + | | HX711 | VCC | 5V | Modulul este alimentat la 5V de la placa | | ||
| + | | HX711 | GND | GND | Toate componentele trebuie sa aiba masa comuna | | ||
| + | | HX711 | DAT / DOUT | PD2 | Pin digital folosit pentru citirea datelor de la HX711 | | ||
| + | | HX711 | CLK / SCK | PD3 | Pin digital folosit pentru semnalul de clock catre HX711 | | ||
| + | | OLED SSD1306 | VDD / VCC | 5V | Display-ul este alimentat de la placa | | ||
| + | | OLED SSD1306 | GND | GND | Masa comuna | | ||
| + | | OLED SSD1306 | SDA | PC4 / SDA | Pinul standard pentru date I2C | | ||
| + | | OLED SSD1306 | SCL | PC5 / SCL | Pinul standard pentru clock I2C | | ||
| + | | Buton UP | semnal | PD4 | Buton pentru navigare in meniu | | ||
| + | | Buton DOWN | semnal | PD5 | Buton pentru navigare in meniu | | ||
| + | | Buton OK/TARE | semnal | PD6 | Buton pentru confirmare si resetarea cantarului | | ||
| + | | Buzzer pasiv | semnal / + | PB1 / OC1A | Pin potrivit pentru PWM, folosit pentru generarea sunetului | | ||
| + | | Buzzer pasiv | GND / - | GND | Masa comuna | | ||
| + | |||
| + | === Schema === | ||
| + | {{:pm:prj2026:atoader:monitor_hidratare_schema_electrica.png?700|Schema electrica Monitor de Hidratare}} | ||
| + | |||
| + | Butoanele vor fi citite folosind rezistentele interne de pull-up ale microcontrollerului. Asta inseamna ca un pin al butonului merge la pinul digital, iar celalalt merge la GND. Cand butonul este apasat, pinul este tras la 0 logic. | ||
| + | |||
| + | Am ales pinii PC4 si PC5 pentru OLED deoarece acestia sunt pinii dedicati pentru I2C. Pentru buzzer am ales PB1, deoarece poate fi folosit cu PWM. Pentru HX711 am folosit PD2 si PD3 pentru ca modulul are nevoie doar de doua linii digitale: una pentru date si una pentru clock. | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 64: | Line 108: | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| - | <note> | + | ==== Resurse hardware ==== |
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
| - | </note> | + | * ATmega328PB Xplained Mini - documentatie Microchip: https://www.microchip.com/en-us/development-tool/ATMEGA328PB-XMINI |
| + | * Load Cell 5kg: https://www.drot.ro/platforma-arduino/1119-senzor-de-greutate-5-kg.html | ||
| + | * Modul HX711: https://sigmanortec.ro/en/weight-reading-module-hx711-24ad-2-channels-3-5v | ||
| + | * Display OLED SSD1306 0.96": https://www.drot.ro/platforma-arduino/1569-ecran-oled-iic-i2c-0-96-alb-128-x-64.html | ||
| + | * Modul buzzer pasiv si butoane: https://sigmanortec.ro/en/passive-buzzer-mode | ||
| + | |||
| + | ==== Resurse software / scheme ==== | ||
| + | |||
| + | * EasyEDA - realizare schema electrica: https://easyeda.com/ | ||
| + | * Cirkit Designer - schema orientativa de conectare pe breadboard: https://www.cirkitdesigner.com/ | ||
| <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> | ||