This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:aureliu.antonie [2026/05/21 00:14] aureliu.antonie [Software Design] |
pm:prj2026:atoader:aureliu.antonie [2026/05/22 23:33] (current) aureliu.antonie [Jurnal] |
||
|---|---|---|---|
| Line 118: | Line 118: | ||
| - RTClib pentru a putea realiza statisticile menționate, spre exemplu câtă apă am băut în ziua respectivă | - RTClib pentru a putea realiza statisticile menționate, spre exemplu câtă apă am băut în ziua respectivă | ||
| + | |||
| + | - SoftPWM pentru a varia intensitatea ledurilor | ||
| - EEPROM pentru a putea salva statisticile chiar și dacă dozatorul nu mai este alimentat | - EEPROM pentru a putea salva statisticile chiar și dacă dozatorul nu mai este alimentat | ||
| Line 127: | Line 129: | ||
| - utilizatorul poate seta la început volumul sticlei folosite (de la 50 ml la 1000 ml, increment de 50 ml) | - utilizatorul poate seta la început volumul sticlei folosite (de la 50 ml la 1000 ml, increment de 50 ml) | ||
| - | - după ce se așază sticla cu apa inițială, senzorul detectează exact masa, luând în calcul masa sticlei goale și a furtunului | + | - după ce se așază sticla cu apa inițială, senzorul detectează exact masa, luând în calcul masa sticlei goale |
| - | - la pornirea dozatorului, progresul este afișat atât pe baza LED-urilor (acestea se aprind alternativ, variind intensitatea pe măsura trecerii timpului), cât și prin intermediul ecranului LCD (afișează volumul rămas) | + | - la pornirea dozatorului, progresul este afișat atât pe baza LED-urilor (acestea se aprind alternativ, variind intensitatea pe baza volumului rămas), cât și prin intermediul ecranului LCD (afișează volumul rămas) |
| - | - există mai multe moduri de afișaj (timpul rămas sau cantitatea de apă consumată în ziua respectivă, acest lucru fiind foarte important în nutriție) | + | - există mai multe moduri de afișaj (volumul rămas sau cantitatea de apă consumată în ziua respectivă, acest lucru fiind foarte important în nutriție) |
| + | |||
| + | - dozatorul se poate pune pe pauză în orice moment, respectiv se poate relua activitatea rămasă | ||
| - după ce sticla se umple, se poate pune o nouă sticlă, fără a fi necesară repornirea aparatului | - după ce sticla se umple, se poate pune o nouă sticlă, fără a fi necesară repornirea aparatului | ||
| - | Codul propriu zis se bazeaza pe un automat de stari, astfel: | + | Codul propriu-zis se bazează pe un automat de stări circular, astfel: |
| + | |||
| + | - starea 0 (selecția) - se citește starea butoanelor. În această etapă, butoanele sunt utilizate pentru selectarea volumului sticlei | ||
| + | |||
| + | - starea 1 (așteptare) - se așteaptă punerea sticlei pe cântar și calcularea masei | ||
| + | |||
| + | - starea 2 (umplere) - microcontrolerul acționează releul, pornind pompa | ||
| + | |||
| + | - starea 3 (pauză) - pompa este oprită, iar totul (LCD, releul etc.) este pus pe pauză, în standby | ||
| - | - starea 0 ( | + | - starea 4 (finalizarea) - pompa s-a oprit, se salvează statisticile în EEPROM și se așteaptă ca sticla să fie ridicată. După ce se ridică sticla, se pornește din nou din starea 0 |
| Senzorul de greutate a fost calibrat pe baza unui cod software. Acesta poate fi vizualizat pe [[https://github.com/AntonieValentin/Dozator-de-apa-inteligent/commit/44f2458279bb0449c95a98473be8f0663289ac63|git]]. Am pus pe cântar o sticlă cu masă cunoscută (250 ml), iar apoi am reglat, prin UART, factorul de calibrare din software. | Senzorul de greutate a fost calibrat pe baza unui cod software. Acesta poate fi vizualizat pe [[https://github.com/AntonieValentin/Dozator-de-apa-inteligent/commit/44f2458279bb0449c95a98473be8f0663289ac63|git]]. Am pus pe cântar o sticlă cu masă cunoscută (250 ml), iar apoi am reglat, prin UART, factorul de calibrare din software. | ||
| Line 156: | Line 168: | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | [[https://www.youtube.com/shorts/JMbjXX_uIwk|Demonstrație Video]] | + | [[https://www.youtube.com/shorts/JMbjXX_uIwk|Demonstrație Video Prima Versiune]] |
| + | |||
| + | [[https://youtube.com/shorts/HjKurvxfl2s|Demonstrație Video A Doua Versiune]] | ||
| [[https://github.com/AntonieValentin/Dozator-de-ap-inteligent|Link github]] | [[https://github.com/AntonieValentin/Dozator-de-ap-inteligent|Link github]] | ||
| Line 170: | Line 184: | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| - | Am terminat montajul hardware, iar partea de software este aproape finalizată. | + | Am terminat proiectul |
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| Line 205: | Line 219: | ||
| [[https://github.com/adafruit/RTClib|RTClib]] | [[https://github.com/adafruit/RTClib|RTClib]] | ||
| + | |||
| + | [[https://github.com/bhagman/SoftPWM|SoftPWM]] | ||
| [[https://docs.arduino.cc/learn/built-in-libraries/eeprom/|EEPROM]] | [[https://docs.arduino.cc/learn/built-in-libraries/eeprom/|EEPROM]] | ||