Pastillero inteligente- Grupo 03
1. Objetivos del proyecto
El objetivo principal de este proyecto es diseñar e implementar un pastillero inteligente basado en Arduino que permita mejorar el seguimiento de la medicación por parte del usuario, reduciendo olvidos y facilitando la toma correcta de los medicamentos a lo largo de la semana.
Para ello, se plantean los siguientes objetivos específicos:
- Desarrollar un sistema capaz de generar avisos automáticos en horarios configurables mediante señales acústicas y visuales.
- Implementar un mecanismo de confirmación de toma basado en la apertura y cierre de compartimentos mediante microswitches.
- Integrar un sistema de visualización que muestre información relevante como la hora actual y las alarmas configuradas.
- Diseñar una interfaz sencilla e intuitiva, utilizando un joystick, que permita modificar los horarios de las alarmas por el usuario.
- Construir un sistema fiable que funcione en tiempo real gracias al uso de un módulo RTC.
2. Descripción del proyecto
El sistema avisa mediante un buzzer y un LED cuando llega la hora de la medicación, y mantiene la alerta activa hasta que el usuario abre el compartimento correspondiente y lo cierra posteriormente, detectado mediante un microswitch.
Además, el dispositivo incluye una pantalla LCD que muestra en todo momento la hora actual así como la alarma configurada. La configuración de horarios se realiza mediante un joystick, que permite modificar las alarmas de cada día.

3. Componentes
El sistema se basa en los siguientes elementos:
- Un módulo RTC (DS3231) que proporciona la hora y fecha en tiempo real.
- Una pantalla LCD 16×2 para mostrar información.
- Un buzzer para avisos sonoros.
- Un LED como indicador visual.
- Un joystick para la configuración manual de alarmas.
- 7 microswitches, uno por compartimento del pastillero.
4. Funcionamiento general del sistema
El funcionamiento del sistema es el siguiente:
- El RTC obtiene la hora y el día actual.
- El sistema compara la hora con las alarmas programadas.
- Si coincide:
- Se activa el buzzer de forma intermitente.
- Se enciende el LED.
- La pantalla muestra “TOMA PASTILLA”.
- La alarma solo se desactiva cuando el usuario abre/cierra el compartimento correspondiente.
- El joystick permite modificar la hora de la alarma de cada día.




5. Implementación
Hardware utilizado:
- Arduino UNO
- RTC DS3231
- LCD 16×2 con módulo I2C
- Buzzer activo
- LED
- Joystick analógico
- 7 microswitches
- Resistencias y cables de conexión
Software:
- Arduino IDE
- Librerías:
- RTClib
- LiquidCrystal_I2C

6. Código
Link al código completo:
https://app.arduino.cc/sketches/1eb7c415-5612-4e90-a642-ee33712b6488?view-mode=preview
7. Reparto de tareas
En el desarrollo del proyecto, ambos miembros hemos participado activamente en las distintas áreas, abarcando tanto el diseño y montaje del circuito (incluyendo Arduino, sensores y conexiones), como la integración de componentes hardware como la pantalla LCD, el módulo RTC, el buzzer y el LED. Asimismo, se ha llevado a cabo el desarrollo del código, incluyendo la lógica de funcionamiento de las alarmas, la programación de la interfaz mediante joystick y las tareas de ajuste, depuración y validación del sistema.
Todo el trabajo ha sido realizado de forma conjunta por ambos miembros, colaborando en la toma de decisiones, la integración final del sistema hardware-software y la elaboración tanto de la memoria como de la presentación.
8. Coste aproximado de materiales
| Componente | Coste aproximado |
| RTC DS3231 | 5,99€ |
| LCD 16×2 I2C | 5,99€ |
| Buzzer | 4,15€ |
| Joystick | 4,00€ |
| Microswitches (x7) | 4,69€ |
| Cables Dupont | 4,60€ |
| Total | 29,42€ |
9. Problemas encontrados y soluciones
Problema 1: Fallo en microswitch
- Problema: uno de los microswitches no detectaba correctamente la apertura y cierre del compartimento, mostrando siempre el mismo estado.
- Solución: se comprobó el cableado y, al ver que el problema persistía, se sustituyó el microswitch por uno nuevo, solucionando el fallo de detección.
Problema 2: Error “Missing FQBN”
- Problema: el IDE no reconocía la placa.
- Solución: selección manual de la placa Arduino en el IDE.
Problema 3: Buzzer continuo
- Problema: el buzzer era molesto al sonar constantemente.
- Solución: implementación de buzzer intermitente usando millis().
Problema 4: Gestión de alarmas
- Problema: la alarma se apagaba automáticamente.
- Solución: se implementó lógica de persistencia hasta detectar el cierre del compartimento.
Problema 5: Librería LCD incompatible
- Problema: advertencias de compatibilidad con LiquidCrystal_I2C.
- Solución: uso de versión estable de la librería o ignorar advertencia si funciona correctamente.
10. Casos de uso
El sistema está diseñado para:
- Personas mayores con medicación diaria
- Pacientes con tratamientos semanales
- Recordatorio automático de pastillas
- Control de cumplimiento de medicación
- Reducción de olvidos en tratamientos médicos