This is an old revision of the document!
Acest proiect reprezinta un sistem automat de administrare a medicamentelor. La ora programata, sistemul suna o alarma, roteste o roata compartimentata pentru a elibera pastilele zilei si umple un pahar cu apa folosind o pompa submersibila. Un ecran LCD afiseaza in permanenta ziua si ora curenta.
Scopul proiectului este de a automatiza complet procesul de administrare a medicatiei zilnice, eliminand necesitatea unei persoane care sa supravegheze sau sa reaminteasca acest lucru.
Ideea a pornit de la o situatie reala din familia mea. Bunicul meu ia medicamente zilnic si are nevoie ca cineva sa ii aminteasca sa le ia, sa ii pregateasca pastilele si sa stie ce zi este. Acest proiect incearca sa rezolve exact aceasta problema printr-un dispozitiv simplu de folosit si usor de inteles.
Consider ca un astfel de sistem poate fi util atat pentru persoanele in varsta care iau tratamente zilnice, cat si pentru familiile acestora, care nu mai trebuie sa fie prezente fizic pentru a se asigura ca medicatia a fost administrata corect si la timp.
Sistemul este compus din urmatoarele module hardware:
La ora programata, RTC-ul semnalizeaza microcontrollerul prin I2C. Buzzerul porneste si LCD-ul afiseaza ora. Utilizatorul apasa butonul (intrerupere hardware) pentru a opri alarma. Simultan, servo-ul roteste roata de pastile, iar releul porneste pompa pentru un interval fix de timp pana cand paharul este plin.
Exemplu de schema bloc: http://www.robs-projects.com/mp3proj/newplayer.html
Lista de componente:
Conexiuni principale:
Schema electronica (simulare Wokwi):
e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png)
Mediu de dezvoltare: PlatformIO
Librarii folosite: * avr/io.h — acces registre * avr/interrupt.h — tratare intreruperi * util/twi.h — comunicatie I2C pentru RTC si LCD
Algoritmi planificati: * La pornire: citire ora din RTC prin I2C si afisare pe LCD * La fiecare secunda: actualizare display * La ora programata: pornire buzzer * Apasare buton: intrerupere hardware (INT0) → oprire buzzer * Servo: rotire unghi fix pentru eliberare pastile (PWM) * Releu: pornire pompa pentru X secunde → umplere pahar
Laboratoare folosite: * Lab 2 (Intreruperi) — buton oprire alarma * Lab 3 (Timere + PWM) — control servo si timing pompa * Lab 6 (I2C) — comunicatie RTC si LCD
In curs de realizare. Vor fi adaugate poze si video demo dupa finalizarea proiectului.
In curs de realizare.
Fisierele se incarca pe wiki folosind facilitatea Add Images or other files. Namespace-ul in care se incarca fisierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (daca este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
* Saptamana 1: Alegere idee proiect si componente * Saptamana 2: Comanda si receptie componente * Saptamana 3: Testare individuala a fiecarei componente pe breadboard * Saptamana 4: Integrare componente si scriere firmware * Saptamana 5: Constructie roata de pastile din carton, testare finala