This is an old revision of the document!
AquaGuardian System este un sistem inteligent creat pentru monitorizarea si automatizarea unui acvariu. Ideea proiectului a pornit din dorinta de a realiza un sistem capabil sa mentina conditii stabile si sigure pentru pesti prin monitorizarea permanenta a parametrilor importanti si automatizarea unor procese esentiale.
Scopul proiectului
Sistemul monitorizeaza constant parametri importanti ai acvariului, precum temperatura apei, nivelul apei si lumina ambientala, pentru a mentine un mediu sigur si stabil pentru pesti. Informatiile sunt afisate in timp real pe un LCD conectat prin I2C, astfel incat utilizatorul poate vedea rapid ce se intampla in acvariu.
Una dintre functiile principale ale proiectului este hranirea automata la ore fixe. Cu ajutorul modulului RTC DS3231, sistemul pastreaza timpul real si declanseaza automat hranirea la ore prestabilite, cum ar fi dimineata si seara. In plus, sistemul poate controla si iluminarea acvariului in functie de lumina detectatade senzorul LDR, contribuind la crearea unui mediu mai natural pentru pesti si plante.
Sistemul include si conectivitate Bluetooth BLE, permitand monitorizarea parametrilor principali direct de pe telefon. Utilizatorul poate vizualiza informatii precum temperatura apei sau starea iluminarii si poate controla anumite functii ale sistemului prin intermediul unei aplicatii mobile.
Mi s-a parut un proiect interesant deoarece combina mai multe concepte importante din domeniul sistemelor embedded: senzori, intreruperi, ADC, PWM, UART si comunicatie I2C. In plus, consider ca este un proiect util deoarece poate ajuta orice persoana care are un acvariu sa mentina un mediu mai sigur si mai stabil pentru pesti, fara sa verifice constant fiecare parametru manual.
Sistemul integreaza mai multe module hardware si software care comunica intre ele pentru a asigura functionarea automata a acvariului si monitorizarea parametrilor importanti.
Sistemul include si un modul Bluetooth BLE HM-10/AT-09 care permite comunicatia cu telefonul mobil. Prin intermediul unei aplicatii mobile, utilizatorul poate monitoriza parametrii principali ai acvariului si poate controla anumite functii ale sistemului.
Comunicatia dintre module este realizata folosind mai multe interfete specifice sistemelor embedded:
| Componenta | Model | Interfata cu MCU | Functie |
|---|---|---|---|
| Microcontroller | ATmega328P Xplained Mini | - | Unitatea centrala a sistemului |
| RTC | DS3231 | I2C | Pastreaza timpul real si programeaza actiunile automate |
| Senzor temperatura | NTC waterproof | ADC | Monitorizeaza temperatura apei |
| Senzor nivel apa | HC-SR04 | GPIO | Masoara nivelul apei |
| Display LCD | LCD 16×2 I2C | I2C | Afiseaza informatii despre sistem |
| Servomotor | SG90 180° | PWM | Controleaza mecanismul de hranire |
| Modul releu | Releu 5V 1 canal | GPIO | Controleaza banda LED |
| Senzor lumina | LDR | ADC | Detecteaza lumina ambientala |
| Iluminare | Banda LED 12V | Alimentare externa prin releu | Iluminarea acvariului |
| Modul Bluetooth | HM-10 / AT-09 BLE | UART | Comunicatie cu telefonul |
| Buton | Push Button | GPIO | Control manual al sistemului |
RTC DS3231
Modulul RTC DS3231 este utilizat pentru mentinerea timpului real chiar si atunci cand sistemul este oprit. Acesta comunica cu microcontrollerul prin interfata I2C si permite programarea automata a hranirii si iluminarii la anumite ore prestabilite.
DS18B20 Waterproof
Senzorul DS18B20 masoara temperatura apei si transmite valorile catre microcontroller folosind protocolul OneWire. Valorile sunt afisate pe LCD si transmise prin Bluetooth catre telefon.
HC-SR04
Senzorul ultrasonic HC-SR04 este utilizat pentru monitorizarea nivelului apei. Acesta masoara distanta dintre senzor si suprafata apei pentru a detecta eventuale scaderi ale nivelului.
LDR
Senzorul LDR detecteaza intensitatea luminii ambientale prin intermediul ADC-ului microcontrollerului. In functie de valoarea citita, sistemul poate controla automat iluminarea acvariului.
Servomotor SG90
Servomotorul SG90 controleaza mecanismul de hranire automata. Acesta este comandat prin PWM si se roteste la anumite ore pentru a distribui hrana.
LCD 16×2 I2C
Display-ul LCD afiseaza informatii importante despre sistem, precum temperatura apei, nivelul apei sau starea iluminarii. Comunicatia se realizeaza prin I2C.
Modul Bluetooth BLE
Modulul HM-10/AT-09 permite comunicatia dintre sistem si telefon prin Bluetooth Low Energy. Utilizatorul poate monitoriza parametrii sistemului si controla anumite functii folosind o aplicatie mobila.
Partea software a proiectului va fi dezvoltata in limbajul C/C++ si va fi completata pe masura realizarii si testarii hardware-ului.
Proiectul integreaza mai multe concepte si functionalitati studiate in cadrul laboratoarelor PM:
Lab 1 (USART)
Sistemul va transmite in timp real datele de monitorizare, precum temperatura apei, nivelul apei si nivelul luminii ambientale, precum si diferite mesaje de stare sau alerta catre terminalul serial si catre conexiunea Bluetooth.
Lab 2 (Intreruperi)
Va fi utilizata o intrerupere externa hardware pentru detectarea apasarii butonului de hranire manuala. In plus, sistemul va folosi semnalul de alarma generat de modulul RTC DS3231 pentru declansarea automata a hranirii la ore prestabilite.
Lab 3 (Timere si PWM)
Servomotorul SG90 utilizat pentru mecanismul de hranire va fi controlat prin semnal PWM generat de microcontroller. De asemenea, timerele interne vor fi folosite pentru gestionarea anumitor evenimente si actiuni periodice din sistem.
Lab 4 (ADC)
Convertorul Analog-Digital va fi utilizat pentru citirea senzorului LDR si monitorizarea luminii ambientale. Valorile citite vor fi folosite pentru controlul automat al iluminarii acvariului.
Se va realiza monitorizarea permanenta a parametrilor importanti ai acvariului si se va controla automat iluminarea si hranirea in functie de valorile senzorilor si de ora furnizata de RTC. Informatiile importante vor fi afisate pe display-ul LCD si transmise prin Bluetooth catre telefonul utilizatorului.
Lab 6 (I2C)
Protocolul I2C este utilizat pentru comunicatia cu modulul RTC DS3231 si cu display-ul LCD 16×2. RTC-ul furnizeaza timpul real necesar pentru automatizarea hranirii si iluminarii, iar display-ul afiseaza informatii despre starea sistemului si valorile monitorizate.
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.
Saptamana 1: Am ales ideea proiectului si am stabilit functionalitatile principale ale sistemului. In aceasta etapa am studiat componentele necesare si modul in care acestea pot comunica intre ele.
Saptamana 2: Am realizat planul proiectului, am ales modulele hardware necesare si am comandat componentele pentru realizarea sistemului.
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.