This is an old revision of the document!
SafeDose este un dispozitiv embedded care ajută utilizatorul să respecte corect programul de administrare a medicamentelor. Sistemul oferă notificări la orele stabilite și indică utilizatorului compartimentul corespunzător dozei care trebuie administrată.
Dispozitivul verifică dacă utilizatorul a accesat compartimentul corect, folosind contacte mecanice montate pe compartimente. Dacă utilizatorul deschide compartimentul potrivit, sistemul marchează doza ca fiind administrată corect. Dacă nu există nicio acțiune într-un anumit interval de timp sau este accesat un compartiment greșit, doza poate fi considerată ratată sau incorectă.
Ideea proiectului a pornit de la problema uitării sau administrării greșite a medicamentelor, mai ales în cazul persoanelor care urmează tratamente zilnice sau au mai multe doze programate. SafeDose propune o soluție simplă, accesibilă și locală, care nu depinde de telefon mobil sau conexiune la internet.
Scopul proiectului este construirea unui prototip funcțional de cutie inteligentă pentru medicamente, capabilă să combine notificarea utilizatorului cu verificarea fizică a compartimentului accesat.
Sistemul este organizat în următoarele module:
Utilizatorul setează ora administrării și compartimentul asociat dozei. Modulul de timp real furnizează ora curentă către unitatea de control. Atunci când ora curentă coincide cu o doză programată, sistemul activează buzzer-ul și LED-ul asociat compartimentului corect. După deschiderea unui compartiment, contactul mecanic transmite starea către microcontroller, iar sistemul verifică dacă acțiunea utilizatorului este corectă.
Schema bloc a sistemului SafeDose evidențiază modul în care placa ATmega328P Xplained Mini comunică cu modulele externe și coordonează funcționalitatea proiectului.
+----------------------+
| Utilizator |
+----------+-----------+
|
| Butoane / interacțiune
v
+----------------+ +--------------------------+ +----------------+
| Modul RTC | I2C | ATmega328P Xplained Mini | I2C | Display LCD |
| DS3231 +------->| +------->| 1602 I2C |
+----------------+ | | +----------------+
| |
| | GPIO/PWM
| v
| +-------------+
| | Buzzer |
| +-------------+
|
| GPIO
v
+-------------+
| LED-uri |
| compart. |
+-------------+
|
| indică doza corectă
v
+-------------------+
| Compartimente |
| medicamente |
+-------------------+
^
| GPIO
|
+-------------+
| Microswitch |
| / senzori |
+-------------+
Placa ATmega328P Xplained Mini reprezintă unitatea centrală a sistemului. Modulul RTC și display-ul LCD comunică prin interfața I2C, iar LED-urile, buzzer-ul, butoanele și microswitch-urile sunt controlate prin pini digitali. Partea software coordonează notificările, verificarea compartimentului accesat și actualizarea interfeței cu utilizatorul.
| Componentă | Cantitate | Rol |
|---|---|---|
| ATmega328P Xplained Mini | 1 | Microcontroller principal |
| Modul RTC DS3231 I2C | 1 | Menținerea timpului real |
| LCD 1602, 16×2 | 1 | Afișarea informațiilor |
| Modul interfață I2C pentru LCD 1602 | 1 | Reducerea numărului de conexiuni pentru LCD |
| Buzzer activ 5V | 1 | Notificare sonoră |
| LED-uri 5mm | 4 | Indicator vizual pentru compartimente |
| Rezistențe 220Ω | 4 | Limitare curent pentru LED-uri |
| Microswitch / limit switch cu pârghie | 4 | Detectarea deschiderii compartimentelor |
| Butoane fără reținere | 3 | Interacțiune utilizator: UP, DOWN, SELECT |
| Rezistențe 10kΩ | 3 | Pull-up / pull-down pentru butoane, dacă nu se folosesc rezistențele interne |
| Rezistențe 4.7kΩ | 2 | Pull-up pentru magistrala I2C, opțional |
| Condensatori 100nF | 2-4 | Stabilizare alimentare, opțional |
| Breadboard | 1 | Platformă de prototipare |
| Fire Dupont tata-tata | 1 set | Interconectare pe breadboard |
| Fire Dupont tata-mamă | 1 set | Conectare module externe |
| Organizator medicamente | 1 | Structură fizică pentru compartimente |
Modulul RTC DS3231 și display-ul LCD folosesc aceeași magistrală I2C. Ambele module sunt conectate la liniile SDA și SCL ale plăcii ATmega328P Xplained Mini, împărțind aceeași magistrală de comunicație.
LED-urile sunt conectate la pini digitali prin rezistențe de 220Ω, pentru limitarea curentului. Fiecare LED corespunde unui compartiment și indică vizual doza care trebuie administrată.
Microswitch-urile sunt montate astfel încât să fie acționate de deschiderea sau închiderea compartimentelor. Fiecare microswitch este conectat la un pin de intrare al microcontrollerului. În implementare se poate folosi configurația INPUT_PULLUP, astfel încât intrarea să aibă o stare stabilă fără rezistențe externe suplimentare.
Butoanele sunt folosite pentru interacțiunea cu utilizatorul. Acestea permit navigarea prin meniu și selectarea opțiunilor. Buzzer-ul este utilizat pentru notificarea sonoră a utilizatorului atunci când este timpul pentru administrarea unei doze.
Prototipul este realizat pe breadboard, fără PCB, pentru a permite testarea rapidă și modificarea ușoară a conexiunilor în timpul dezvoltării. Firele sunt organizate astfel încât alimentarea, masa și semnalele digitale să poată fi urmărite ușor.
Această metodă este potrivită pentru etapa de prototipare, deoarece permite testarea individuală a modulelor înainte de integrarea completă. Pentru o versiune finală, circuitul poate fi mutat pe o placă PCB sau pe o placă de prototip cu lipituri pentru o fiabilitate mai bună.
Proiectul folosește funcționalități din mai multe laboratoare:
| Laborator | Funcționalitate folosită | Utilizare în proiect |
|---|---|---|
| Laboratorul 0 | GPIO | Control LED-uri, citire butoane și citire microswitch-uri |
| Laboratorul 2 | Întreruperi | Detectarea rapidă a apăsării butoanelor sau schimbării stării compartimentelor |
| Laboratorul 3 | Timere / PWM | Gestionarea alertelor și controlul buzzer-ului |
| Laboratorul 6 | I2C | Comunicare cu RTC DS3231 și LCD 1602 I2C |
Astfel, proiectul înglobează cel puțin trei noțiuni din laboratoare și utilizează mai mult de trei componente periferice externe.