PRJ005 — Presentation
--- Headline ---
Headline
2025-PRJ-005-ST_005-ST_005-Nazov projektu

Téma Projektu
Vývoj a výroba funkčného prototypu inteligentnej misky pre psa, ktorá automaticky deteguje nízku hladinu vody a zabezpečí jej doplnenie. Projekt spája hardvér (mikrokontrolér Arduino a senzory), softvér (programovanie v C++), 3D modelovanie a 3D tlač do jedného funkčného celku.
--- Headline ---
--- introduction ---
Introduction
2025-PRJ-005-ST_005-ST_005-Nazov projektu
Strucny text o projekte (zhrnutie zadania + prinos). --- introduction ---
--- obsah ---
Obsah
- 01-Business
- 02-Top Level Architecture
- 03-Solution Architecture
- 04-Analysis
- 05-Design
- 06-Implementation
- 07-Testing & Verification
- 08-Operation
- 09-Change Management --- obsah ---
01-Business

02-Top Level Architecture
Fyzický Model
Fyzický model zobrazuje konkrétne hardvérové komponenty, z ktorých sa systém skladá, a ich prepojenie. Identifikuje hlavné časti ako Arduino, senzor, ovládač motora (MOSFET) a samotnú pumpu.

Logický Model (Štruktúra Kódu)
Logický model sa zameriava na softvérovú architektúru. Definuje hlavné triedy a ich metódy, ako napríklad MiskaController, PumpaController a SenzorHladiny, a ukazuje, ako spolu komunikujú.

03-Solution Architecture
5.1. Prvé Experimenty a Prototypovanie
Práca začala experimentovaním s hardvérom. Prvotný plán bol použiť ultrazvukový senzor na meranie hladiny vody. Zostavila som testovací obvod s Arduinom a senzorom na breadboarde, aby som overila jeho funkčnosť.

04-Analysis
05-Design
06-Implementation
06-Implementation
5.3. Finálny Kód
S novým hardvérovým návrhom som finalizovala aj kód pre Arduino. Kód neustále monitoruje analógový pin pripojený k sondám. Ak hodnota klesne pod prahovú úroveň (voda chýba), aktivuje pin, ktorý spína čerpadlo.
// Definovanie pinov
constexpr int testPin = A0; // Vstupny pin na citanie stavu vodivosti
constexpr int controlPWM = 3; // Vystupny pin na ovladanie cerpadla
void setup() {
pinMode(testPin, INPUT);
pinMode(controlPWM, OUTPUT);
Serial.begin(9600);
}
void loop() {
static int sensorValue = 0, u = 0;
sensorValue = analogRead(testPin);
// Ak je hodnota nízka (pod 60), voda chýba -> aktivuj cerpadlo
if (sensorValue < 60) {
u = 255;
} else {
u = 0;
}
analogWrite(controlPWM, u);
delay(500);
}