This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:alexia.oprisan [2026/05/24 16:53] alexia.oprisan [Implementare] |
pm:prj2026:bianca.popa1106:alexia.oprisan [2026/05/24 20:52] (current) alexia.oprisan [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 196: | Line 196: | ||
| **GPIO si control hardware** | **GPIO si control hardware** | ||
| - | Pinii microcontrollerului au fost configurati manual folosind registrele DDR si PORT. Au fost configurate iesiri digitale pentru servomotor si releu, precum si intrari digitale cu pull-up intern pentru butoane. | + | Pinii microcontrollerului au fost configurati utilizand functiile pinMode, digitalWrite si digitalRead din framework-ul Arduino. Au fost configurate iesiri digitale pentru servomotor si releu, precum si intrari digitale cu pull-up intern pentru butoane. |
| Servomotorul conectat pe PB1 controleaza mecanismul de hranire, iar releul conectat pe PD7 controleaza iluminarea acvariului. | Servomotorul conectat pe PB1 controleaza mecanismul de hranire, iar releul conectat pe PD7 controleaza iluminarea acvariului. | ||
| - | **USART** | + | **Serial Monitor** |
| - | Comunicatia seriala este utilizata pentru afisarea mesajelor de debug si monitorizarea parametrilor sistemului in timp real. A fost implementata o biblioteca proprie USART prin configurarea registrelor hardware ale microcontrollerului. | + | Comunicatia seriala este utilizata pentru afisarea mesajelor de debug si monitorizarea parametrilor sistemului in timp real prin Serial Monitor. |
| Prin terminalul serial sunt afisate: | Prin terminalul serial sunt afisate: | ||
| - | * valorile citite de senzori | + | * valorile citite de senzori |
| - | * nivelul apei | + | * temperatura apei |
| - | * mesajele de stare | + | * nivelul apei |
| - | * alertele sistemului | + | * valorile LDR |
| + | * mesajele de stare | ||
| + | * alertele sistemului | ||
| Aceasta functionalitate a fost utilizata pentru testarea si validarea proiectului. | Aceasta functionalitate a fost utilizata pentru testarea si validarea proiectului. | ||
| Line 219: | Line 221: | ||
| LDR-ul este conectat pe PC0, iar senzorul NTC pe PC1. | LDR-ul este conectat pe PC0, iar senzorul NTC pe PC1. | ||
| - | **Intreruperi externe** | + | **Control PWM si RTC** |
| - | Pentru butonul de hranire manuala a fost utilizata o intrerupere externa pe pinul PD3 (INT1). ISR-ul asociat seteaza un flag software care declanseaza hranirea in bucla principala. | + | Servomotorul SG90 este controlat folosind semnal PWM pentru actionarea mecanismului de hranire automata. Modulul RTC DS3231 furnizeaza timpul real necesar pentru declansarea automata a hranirii la ora prestabilita. |
| - | + | ||
| - | Utilizarea intreruperilor permite detectarea rapida a apasarii butonului fara polling continuu. | + | |
| **Monitorizare si automatizare** | **Monitorizare si automatizare** | ||
| Line 230: | Line 230: | ||
| Sistemul realizeaza automat hranirea pestilor la ora prestabilita si permite control manual prin intermediul butoanelor. | Sistemul realizeaza automat hranirea pestilor la ora prestabilita si permite control manual prin intermediul butoanelor. | ||
| + | |||
| + | Pentru iluminare a fost implementat un prag minim si maxim pentru evitarea aprinderii si stingerii repetate a benzii LED la variatii mici ale luminii ambientale. | ||
| **Alegerea bibliotecilor** | **Alegerea bibliotecilor** | ||
| - | Au fost utilizate doar biblioteci AVR minimale: | + | Au fost utilizate urmatoarele biblioteci: |
| - | avr/io.h | + | * Wire.h |
| - | avr/interrupt.h | + | * RTClib.h |
| - | util/delay.h | + | * LiquidCrystal_I2C.h |
| + | * Servo.h | ||
| + | * math.h | ||
| - | Acestea permit acces direct la registrele hardware si un control mai bun asupra perifericelor microcontrollerului. Comunicatia USART a fost implementata folosind o biblioteca proprie pentru intelegerea modului de functionare al perifericelor seriale. | + | Aceste biblioteci permit comunicatia I2C cu RTC-ul si display-ul LCD, controlul servomotorului si calculul temperaturii utilizand senzorul NTC. |
| **Validare si optimizari** | **Validare si optimizari** | ||
| - | Fiecare modul hardware a fost testat individual folosind mesaje de debug transmise prin USART. Aplicatia utilizeaza flag-uri volatile pentru comunicarea intre ISR si bucla principala si foloseste pull-up-urile interne pentru reducerea componentelor externe. | + | Fiecare modul hardware a fost testat individual folosind Serial Monitor pentru verificarea valorilor citite si a functionalitatii sistemului. |
| + | |||
| + | Au fost implementate debounce software pentru butoane si praguri diferite pentru aprinderea si stingerea iluminarii automate, reducand astfel fluctuatiile nedorite ale sistemului. | ||
| + | |||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | Sistemul AquaGuardian a fost implementat si testat cu succes pe microcontrollerul ATmega328P. |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | Proiectul permite monitorizarea temperaturii apei, a nivelului apei si a luminii ambientale in timp real. Valorile sunt afisate pe display-ul LCD si monitorizate prin Serial Monitor. |
| + | |||
| + | Iluminarea acvariului este controlata automat folosind senzorul LDR si un releu conectat la banda LED. Sistemul permite si control manual prin intermediul butoanelor. | ||
| + | |||
| + | Hranirea automata a pestilor functioneaza pe baza timpului furnizat de modulul RTC DS3231, iar servomotorul SG90 distribuie hrana la ore prestabilite. | ||
| + | |||
| + | Toate modulele hardware au fost testate individual si integrate cu succes in sistemul final. | ||
| + | |||
| + | {{ :pm:prj2026:bianca.popa1106:aquaguardian.jpeg?400 }} | ||
| + | |||
| + | |||
| + | ===== Demo Video ===== | ||
| + | |||
| + | [[https://youtu.be/X1zI2bSQHXY|Demo AquaGuardian System]] | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | AquaGuardian reprezinta un sistem inteligent capabil sa monitorizeze si sa automatizeze functii importante ale unui acvariu, contribuind la mentinerea unui mediu sigur si stabil pentru pesti. | ||
| + | |||
| + | {{ :pm:prj2026:bianca.popa1106:aqua2.jpeg?300 |}} | ||
| ===== Download ===== | ===== Download ===== | ||
| <note warning> | <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ă ;-). | + | **Link Github:** |
| - | 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**. | + | https://github.com/alexiaoprisan/AquaGuardian-System |
| </note> | </note> | ||
| Line 271: | Line 295: | ||
| **Saptamana 3**: Am realizat schema bloc a sistemului si am inceput redactarea documentatiei. De asemenea, am studiat conexiunile si protocoalele de comunicatie utilizate de fiecare modul. | **Saptamana 3**: Am realizat schema bloc a sistemului si am inceput redactarea documentatiei. De asemenea, am studiat conexiunile si protocoalele de comunicatie utilizate de fiecare modul. | ||
| + | |||
| + | **Saptamana 4**: Am realizat conexiunile hardware dintre componente si am testat individual fiecare modul: RTC, LCD, senzorul ultrasonic, senzorul LDR, senzorul NTC si servomotorul. De asemenea, am realizat schema electrica a sistemului. | ||
| + | |||
| + | **Saptamana 5**: Am implementat partea software a proiectului si am integrat toate functionalitatile sistemului. Au fost realizate automatizarea hranirii folosind RTC-ul, controlul automat al iluminarii, afisarea informatiilor pe LCD si monitorizarea parametrilor prin Serial Monitor. De asemenea, au fost realizate testarea si optimizarea functionarii sistemului. | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||