This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:alexia.oprisan [2026/05/08 23:01] alexia.oprisan [Software Design] |
pm:prj2026:bianca.popa1106:alexia.oprisan [2026/05/16 10:18] (current) alexia.oprisan [Descrierea detaliata a modulelor hardware] |
||
|---|---|---|---|
| Line 9: | Line 9: | ||
| 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. | 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 detectata de senzorul LDR, contribuind la crearea unui mediu mai natural pentru pesti si plante. | + | 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. | 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. | ||
| Line 21: | Line 21: | ||
| * **Microcontrollerul ATmega328P** reprezinta unitatea centrala a sistemului si coordoneaza toate procesele. Acesta colecteaza date de la senzori, proceseaza informatiile si controleaza perifericele conectate. | * **Microcontrollerul ATmega328P** reprezinta unitatea centrala a sistemului si coordoneaza toate procesele. Acesta colecteaza date de la senzori, proceseaza informatiile si controleaza perifericele conectate. | ||
| * **Modulul RTC DS3231** este utilizat pentru pastrarea timpului real si pentru programarea actiunilor automate, precum hranirea pestilor sau controlul iluminarii la anumite ore. | * **Modulul RTC DS3231** este utilizat pentru pastrarea timpului real si pentru programarea actiunilor automate, precum hranirea pestilor sau controlul iluminarii la anumite ore. | ||
| - | * **Senzorul DS18B20 waterproof** monitorizeaza temperatura apei, iar valorile citite sunt afisate pe **display** si transmise prin **Bluetooth** catre telefon. | + | * **Senzorul NTC waterproof** monitorizeaza temperatura apei, iar valorile citite sunt afisate pe display. |
| * Nivelul apei este monitorizat folosind **senzorul ultrasonic HC-SR04**, care masoara distanta dintre senzor si suprafata apei pentru a detecta eventuale scaderi ale nivelului. | * Nivelul apei este monitorizat folosind **senzorul ultrasonic HC-SR04**, care masoara distanta dintre senzor si suprafata apei pentru a detecta eventuale scaderi ale nivelului. | ||
| - | * **Senzorul LDR** este utilizat pentru detectarea luminii ambientale, permitand controlul automat al iluminarii acvariului prin intermediul unui releu conectat la banda LED. | + | * **Senzorul LDR** este utilizat pentru detectarea luminii ambientale, permitand controlul automat aliluminarii acvariului prin intermediul unui releu conectat la banda LED. |
| * Pentru hranirea automata este utilizat un **servomotor SG90** care actioneaza mecanismul de distribuire a hranei la ore prestabilite. | * Pentru hranirea automata este utilizat un **servomotor SG90** care actioneaza mecanismul de distribuire a hranei la ore prestabilite. | ||
| * **Display-ul LCD** 16x2 conectat prin I2C afiseaza in timp real informatii importante despre sistem, precum temperatura apei, nivelul apei sau starea iluminarii. | * **Display-ul LCD** 16x2 conectat prin I2C afiseaza in timp real informatii importante despre sistem, precum temperatura apei, nivelul apei sau starea iluminarii. | ||
| Line 33: | Line 33: | ||
| * I2C pentru RTC si LCD | * I2C pentru RTC si LCD | ||
| * UART pentru comunicatia Bluetooth | * UART pentru comunicatia Bluetooth | ||
| - | * ADC pentru citirea senzorului LDR | ||
| * PWM pentru controlul servomotorului | * PWM pentru controlul servomotorului | ||
| Line 51: | Line 50: | ||
| | Microcontroller | ATmega328P Xplained Mini | - | Unitatea centrala a sistemului | | | Microcontroller | ATmega328P Xplained Mini | - | Unitatea centrala a sistemului | | ||
| | RTC | DS3231 | I2C | Pastreaza timpul real si programeaza actiunile automate | | | RTC | DS3231 | I2C | Pastreaza timpul real si programeaza actiunile automate | | ||
| - | | Senzor temperatura | DS18B20 Waterproof | OneWire | Monitorizeaza temperatura apei | | + | | Senzor temperatura | NTC waterproof | ADC | Monitorizeaza temperatura apei | |
| | Senzor nivel apa | HC-SR04 | GPIO | Masoara nivelul apei | | | Senzor nivel apa | HC-SR04 | GPIO | Masoara nivelul apei | | ||
| - | | Senzor lumina | LDR | ADC | Detecteaza lumina ambientala | | ||
| | Display LCD | LCD 16x2 I2C | I2C | Afiseaza informatii despre sistem | | | Display LCD | LCD 16x2 I2C | I2C | Afiseaza informatii despre sistem | | ||
| | Servomotor | SG90 180° | PWM | Controleaza mecanismul de hranire | | | Servomotor | SG90 180° | PWM | Controleaza mecanismul de hranire | | ||
| | Modul releu | Releu 5V 1 canal | GPIO | Controleaza banda LED | | | 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 | | | Iluminare | Banda LED 12V | Alimentare externa prin releu | Iluminarea acvariului | | ||
| | Modul Bluetooth | HM-10 / AT-09 BLE | UART | Comunicatie cu telefonul | | | Modul Bluetooth | HM-10 / AT-09 BLE | UART | Comunicatie cu telefonul | | ||
| Line 64: | Line 63: | ||
| ==== Descrierea detaliata a modulelor hardware ==== | ==== Descrierea detaliata a modulelor hardware ==== | ||
| - | **RTC DS3231** | + | === 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. | + | Modulul RTC DS3231 este utilizat pentru mentinerea timpului real chiar si atunci cand sistemul este oprit. Acesta permite programarea automata a hranirii si a iluminarii la anumite ore prestabilite. |
| - | **DS18B20 Waterproof** | + | RTC-ul comunica cu microcontrollerul prin interfata I2C: |
| - | Senzorul DS18B20 masoara temperatura apei si transmite valorile catre microcontroller folosind protocolul OneWire. Valorile sunt afisate pe LCD si transmise prin Bluetooth catre telefon. | + | * **SDA - PC4 (SDA)** |
| + | * **SCL - PC5 (SCL)** | ||
| - | **HC-SR04** | + | Interfata I2C permite comunicatia seriala folosind doar doua fire de date, ceea ce reduce numarul de pini utilizati. |
| - | 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** | + | === NTC waterproof === |
| - | Senzorul LDR detecteaza intensitatea luminii ambientale prin intermediul ADC-ului microcontrollerului. In functie de valoarea citita, sistemul poate controla automat iluminarea acvariului. | + | Senzorul NTC waterproof este utilizat pentru monitorizarea temperaturii apei din acvariu. Acesta functioneaza ca o rezistenta variabila dependenta de temperatura si este conectat intr-un divizor rezistiv impreuna cu un rezistor de 10kΩ. |
| - | **Servomotor SG90** | + | Conectare: |
| - | Servomotorul SG90 controleaza mecanismul de hranire automata. Acesta este comandat prin PWM si se roteste la anumite ore pentru a distribui hrana. | + | * **PC1 (A1)** - intrare analogica ADC |
| - | **LCD 16x2 I2C** | + | Valorile analogice citite de microcontroller sunt convertite in temperatura si afisate pe display-ul LCD. |
| - | Display-ul LCD afiseaza informatii importante despre sistem, precum temperatura apei, nivelul apei sau starea iluminarii. Comunicatia se realizeaza prin I2C. | ||
| - | **Modul Bluetooth BLE** | + | === HC-SR04 === |
| + | |||
| + | Senzorul ultrasonic HC-SR04 este utilizat pentru monitorizarea nivelului apei. | ||
| + | |||
| + | Conexiuni: | ||
| + | |||
| + | * **TRIG - PD4 (D4)** - iesire digitala | ||
| + | * **ECHO - PD5 (D5)** - intrare digitala | ||
| + | |||
| + | Distanta este calculata pe baza duratei semnalului receptionat. | ||
| + | |||
| + | |||
| + | === LDR === | ||
| + | |||
| + | Senzorul LDR detecteaza intensitatea luminii ambientale si permite controlul automat al iluminarii acvariului. | ||
| + | |||
| + | Conectare: | ||
| + | |||
| + | * **PC0 (A0)** - intrare analogica ADC | ||
| + | |||
| + | LDR-ul este utilizat impreuna cu un rezistor de 10kΩ intr-un divizor de tensiune. | ||
| + | |||
| + | === Servomotor SG90 === | ||
| + | |||
| + | Servomotorul SG90 controleaza mecanismul de hranire automata al pestilor. | ||
| + | |||
| + | Conectare: | ||
| + | |||
| + | * **PB1 (D9)** - pin PWM | ||
| + | |||
| + | PWM-ul permite controlul precis al unghiului de rotatie. | ||
| + | |||
| + | |||
| + | === LCD 16×2 I2C === | ||
| + | |||
| + | Display-ul LCD afiseaza informatii importante despre sistem, precum temperatura apei, nivelul apei si starea iluminarii. | ||
| + | |||
| + | Conexiuni I2C: | ||
| + | |||
| + | * **SDA - PC4** | ||
| + | * **SCL - PC5** | ||
| + | |||
| + | Utilizarea interfetei I2C reduce numarul de pini necesari conectarii. | ||
| + | |||
| + | |||
| + | === Modul releu === | ||
| + | |||
| + | Modulul releu controleaza banda LED de iluminare a acvariului. | ||
| + | |||
| + | Conectare: | ||
| + | |||
| + | * **PD7 (D7)** - iesire digitala | ||
| + | |||
| + | Releul este activat automat in functie de valoarea citita de LDR sau manual prin buton. | ||
| + | |||
| + | |||
| + | === Modul Bluetooth BLE === | ||
| + | |||
| + | Modulul HM-10 / AT-09 permite comunicatia dintre sistem si telefon prin Bluetooth Low Energy. | ||
| + | |||
| + | Conexiuni UART: | ||
| + | |||
| + | * **TXD modul - PB2 (D10)** | ||
| + | * **RXD modul - PB3 (D11)** | ||
| + | |||
| + | Prin Bluetooth, utilizatorul poate monitoriza parametrii sistemului si controla anumite functii folosind o aplicatie mobila. | ||
| + | |||
| + | |||
| + | === Butoane de control === | ||
| + | |||
| + | Sistemul utilizeaza doua butoane pentru control manual: | ||
| + | |||
| + | * **PD3 (D3)** - buton hranire manuala | ||
| + | * **PD6 (D6)** - buton control iluminare | ||
| + | |||
| + | Butonul de hranire utilizeaza intreruperi externe pentru detectarea rapida a apasarii. | ||
| + | |||
| + | ^ Componenta ^ Pin ATmega328P ^ Tip Interfata ^ | ||
| + | | RTC DS3231 | PC4 (SDA), PC5 (SCL) | I2C | | ||
| + | | LCD 16×2 I2C | PC4 (SDA), PC5 (SCL) | I2C | | ||
| + | | HC-SR04 | PD4 (TRIG), PD5 (ECHO) | GPIO | | ||
| + | | Senzor NTC waterproof | PC1 (ADC1 / A1) | ADC | | ||
| + | | LDR | PC0 (ADC0 / A0) | ADC | | ||
| + | | Modul releu | PD7 (D7) | GPIO | | ||
| + | | Banda LED 12V | Alimentare externa prin releu | Alimentare externa | | ||
| + | | Servomotor SG90 | PB1 (OC1A / D9) | PWM | | ||
| + | | Buton hranire | PD3 (INT1 / D3) | Intrerupere externa | | ||
| + | | Buton iluminare | PD6 (D6) | GPIO | | ||
| + | | Modul Bluetooth BLE HM-10 / AT-09 | PB2 (RX / D10), PB3 (TX / D11) | UART | | ||
| - | 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. | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 123: | Line 208: | ||
| 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. | 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 16x2. RTC-ul furnizeaza timpul real necesar pentru automatizarea hranirii si iluminarii, iar display-ul afiseaza informatii despre starea sistemului si valorile monitorizate. | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| Line 145: | Line 234: | ||
| </note> | </note> | ||
| + | **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. | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||