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:
* ATmega328P-XMINI — microcontrollerul principal care coordoneaza toate modulele * RTC DS3231 — retine ora si data exacta, comunicatie prin I2C * LCD 1602 I2C — afiseaza ora si ziua curenta, comunicatie prin I2C * Servo motor SG90 — roteste roata de pastile la ora programata, controlat prin PWM * Releu + pompa submersibila — umple paharul cu apa, controlata printr-un pin digital * Buzzer activ 5V — suna alarma la ora programata * Buton — opreste alarma prin intrerupere hardware (INT0)
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: * ATmega328P-XMINI — microcontroller principal * Modul RTC DS3231 — ceas timp real, comunicatie I2C * LCD 1602 cu adaptor I2C — afisare ora si zi * Servo motor SG90 — rotire roata de pastile * Modul releu 5V cu optocuplor — control pompa * Pompa submersibila 3-6V — umplere pahar cu apa * Buzzer activ 5V — alarma sonora * Modul buton microswitch — oprire alarma * Breadboard 830 puncte * Set fire jumper mama-tata * Set rezistoare
Conexiuni principale: * RTC DS3231: SDA→A4, SCL→A5, VCC→5V, GND→GND * LCD 1602 I2C: SDA→A4, SCL→A5, VCC→5V, GND→GND * Servo SG90: Signal→D9, VCC→5V, GND→GND * Modul releu: IN→D7, VCC→5V, GND→GND * Buzzer: +→D6, –>GND * Buton: OUT→D2 (INT0), VCC→5V, GND→GND * Pompa: conectata la contactele releului
Schema electronica (simulare Wokwi):
e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png)
Mediu de dezvoltare: PlatformIO / AVR Studio
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
Resurse Hardware: * Datasheet ATmega328P: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf * Datasheet DS3231: https://datasheets.maximintegrated.com/en/ds/DS3231.pdf * Datasheet SG90: http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf
Resurse Software: * AVR-libc documentation: https://www.nongnu.org/avr-libc/ * Cursuri PM OCW: https://ocw.cs.pub.ro/courses/pm * Simulare Wokwi: https://wokwi.com/projects/463378615922400257