Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Dispensador Inteligente de Pastillas: Sistema de Gestión de Medicación de Precisión

Componentes y materiales

Placa de desarrollo AVR-IoT WA (Microchip Technology) 1
Arduino Mega 2560 1
Micro-servo SG90 4
Pantalla táctil HMI TFT Nextion NX8048T070 7.0" (Itead) 1
Driver PWM/Servo 16 canales 12-bit I2C (Adafruit) 1
Altavoz 0.25W, 8 ohm 1
Sensor foto-transistor IR (Adafruit) 4
LED IR 5mm 940nm (Adafruit) 4
Sensor ultrasónico HC-SR04 1
Servo Feedback 360° alta velocidad (Parallax) 1
Fuente conmutada 5V 2A pared (Adafruit) 1

Herramientas y máquinas necesarias

Aplicaciones y servicios en línea

Descripción del proyecto

¿Por qué este proyecto?

Actualmente hay dos tipos de dispensadores en el mercado: no eléctricos y automáticos. Aunque la mayoría tienen recordatorios (no siempre aptos para discapacidades visuales/sensoriales), ambos requieren que una persona organice las pastillas diaria/semanalmente en compartimentos, haciendo al paciente dependiente. Debido al COVID-19, familiares y cuidadores de ancianos tienen más dificultades para atender a personas dependientes.

Por eso creamos SmartPill: un dispensador inteligente que no requiere organización manual, es accesible para discapacitados y permite al paciente ser más independiente.

¿Cómo funciona?

El sistema SmartPill tiene 2 subsistemas:

Desde la web app (interfaz amigable), el médico configura hasta 4 pastillas distintas por dispensador y hasta 3 tomas diarias por pastilla. Permite cambiar dosis remotamente sin intervención del paciente.

Diseñado para dificultades de demencia senil, Alzheimer, discapacidad visual/auditiva: pantalla grande para carga cómoda, feedback audible y luminoso para recordar tomas a la hora exacta.

El usuario no se preocupa de dónde/quién pone cada pastilla: un mecanismo inteligente las distribuye internamente y dispensa la dosis correcta a la hora indicada.

Conexión WiFi a nube AWS gracias al Microchip AVR-IoT, permitiendo monitorización y configuración remota. La app muestra cuándo se tomaron las pastillas y notifica al familiar si no se tomó.

SmartPill Dispenser

Sistema de dispensación

Todo (excepto pantalla) impreso en 3D con PLA. Archivos .STL disponibles al final.

  1. Base: Soporta el resto. Dos orificios para sensor de movimiento. Contiene solapa que lleva pastillas al vaso.
  2. Deslizador (Slider): Soporta contenedores de pastillas. Debajo, rampa por donde caen a la solapa. Hueco inferior para electrónica.
  3. Partes laterales: Protegen hardware y pastillas de humedad, temperatura, suciedad y polvo.
  4. Pantalla Nextion NX8048T070: Interfaz usuario-dispensador.
  5. Partes superiores: Protección (superior) y separación tambor-contenedores (inferior).
  6. Servo Parallax 900-0005: Motor 360° que posiciona el tambor (7).
  7. Tambor (Drum): Tubo de conexión entre exterior y contenedores. Gira para acceder al contenedor correcto.
  8. Puerta trasera: Acceso para meter/sacar contenedores con el deslizador.
  9. Altavoces: Comunican información al usuario.
  10. Sensor ultrasónico HC-SR04: Detecta si el vaso se ha retirado.
  11. Contenedores de pastillas (4 en prototipo): Almacenan y dispensan la cantidad correcta en el momento. Adaptables a mayor capacidad.

¿Quiere su propio SmartPill? Descargue los STL al final e imprima todas las piezas. Proyecto completamente open-source.

Ensamblaje

Electrónica

Cerebro principal: Arduino Mega controla servos de dispensación, pantalla Nextion, RTC, efectos de sonido y placa AVR-IoT.

Para replicar, haga todas las conexiones según el esquema con protoboard o PCB propio. Recomendamos montar el circuito en una base de madera como en la foto. El esquema está al final de la página.

SmartPill Web App

Facilita configurar el dispensador y controlar la medicación de otro.

Desarrollo

Backend: AWS API Gateway (HTTP API REST).
Frontend: Ionic & Angular. Ionic es framework NodeJS gratuito/open-source basado en AngularJS, con componentes UI nativos para iOS/Android. Usa HTML, CSS, JavaScript, Angular. Ionic CLI crea apps móviles funcionales.

Requisito previo: Node.js instalado.

Pasos iniciales:

$ npm install -g @ionic/cli
$ ionic start smartpill-webui blank
$ cd smartpill-webui
$ ionic serve

ionic serve permite probar en navegador (esencial para debug).

Estructura básica

Organización simple para navegación fácil. Carpetas: módulo de rutas, componentes, "services", y una carpeta por ruta.

Archivos esenciales:

Página de configuración y edición de pastilla

Ruta "page-config" muestra posts programados. Botón "+" (abajo derecha) redirige a "page-edit-pill" para crear. Botón "Editar" en post existente redirige a misma página llevando el ID.

La página "page-edit-pill" detecta si entra con o sin ID y ejecuta funciones correspondientes.

Interacción con componentes Ionic (inputs, selects) que se envían a la API:

La "config-page" usa ciclo de vida Angular: al volver de "edit-pill", recarga posts automáticamente. Botón de borrado con confirmación asíncrona.

Página de registros (Logs)

Muestra histórico de pastillas dispensadas. Similar a "config-page" pero solo carga datos de la API.

Amazon Web Services

AWS elegido para desplegar SmartPill: amplia gama de servicios en un ecosistema, enfoque serverless que escala a necesidades del usuario y paga solo por uso.

Arquitectura Cloud Serverless

AWS IoT Core

Conecte AVR-IoT a su cuenta AWS (guías Microchip IoT Developer Guides for AWS). Verifique en IoT Core → Manage → Things. Configure WiFi en AVR-IoT (Getting Started Guide).

AWS DynamoDB

Cree dos tablas:

Clave primaria: "id".

AWS Lambda

Asegure permisos AmazonDynamoDBFullAccess en rol de ejecución (pestaña Permissions → Role Name). Cada Lambda con su propio rol. Adjunte política si falta. Suba código desde repositorio GitHub. Configure integraciones Lambda ↔ IoT Core para ejecutar función correcta al recibir mensaje.

AWS EventBridge

3 reglas programadas (cron UTC) para mañana, tarde, noche. Disparan Lambda smartpill-dispensepill.

AWS API Gateway

Crear HTTP API "smartpill-webui". Configurar todas las Lambdas como integraciones. Definir rutas según tabla. Desplegar para obtener endpoint HTTP. O importar smartpill-api.json del repo.

AWS S3

Crear Bucket (nombre amigable = DNS). Activar Static website hosting (Propiedades → abajo): Enable, index.html como índice y error. Subir archivos estáticos compilados por Angular. Acceda a su DNS. ¡Listo!

Placa AVR-IoT

Interfaz de comunicación para dar conectividad Cloud al Dispensador. Conectada a Arduino principal por Serial.

Firmware basado en ejemplo original, extendido:

  • Comando CLI pill y callback pill_command() que parsea mensaje y envía JSON confirmación por MQTT a topic confirmationpill.
  • Mensajes personalizados para parámetros desconocidos/incorrectos.
  • CLI original usaba USART2 (conectado a debugger, inaccesible). Esta versión mueve CLI y printf() a USART1 (pines RX/TX accesibles). Configuración: 115200 baudios, 8N1.
  • Suscripción MQTT personalizada a topic dispensepill con parser JSON en application_manager.c (modificada subscribeToCloud()) vinculada a callback receiveddispenseFromCloud() que extrae datos del JSON.
  • En IoTPill.h estructuras principales para datos recibidos/enviados.

Protocolo bidireccional simple con dos mensajes:

  • dispensepill: EventBridge lo dispara a la hora → envía a dispensador para dispensar.
  • confirmationpill: AVR-IoT lo envía al dispensar correctamente → AWS lo registra en BD.

Mensaje 'dispensepill' (AWS → IoT Board → Arduino)

EventBridge dispara Lambda smartpill-dispensepill → MQTT a IoT Board JSON:

{
  "cmd": "dispensepill",
  "npills": 2,
  "intake": { "time": "morning" },
  "pills": {
    "1": { "pill": "Ibuprofeno", "qty": 1, "deposit": 1, "weight": 200 },
    "2": { "pill": "Paracetamol", "qty": 2, "deposit": 2, "weight": 500 }
  }
}

IoT Board envía por USART a Arduino:

D Ibuprofeno 1 1 200 D Paracetamol 2 2 500 \n

Mensaje 'confirmationpill' (Arduino → IoT Board → AWS)

Arduino envía comando pill + 1 si entrega correcta:

pill 1

IoT Board procesa con CLI personalizado (usando intake previo con "time") y envía JSON a AWS:

{
  "time": "morning",
  "state": "ok"
}

AWS registra log vía Lambdas y notifica a servicio web.

Código

  • Smartpill Web Application (Frontend): GitHub
  • Smartpill Backend Lambda functions: GitHub
  • Smartpill AVR-IoT Code: GitHub
  • Smartpill Arduino Code: GitHub

Piezas personalizadas y cajas

  • Repositorio Thingiverse: Thingiverse - Archivos CAD: mecanismo dispensador controlado por servo, envolvente completa, ensamblaje total (formato STEP editable).

Esquemáticos

Conexiones hardware electrónica SmartPill

Proceso de manufactura

  1. La ciencia y fabricación de pastillas para dormir: de remedios antiguos a la farmacología moderna
  2. Pastillas Anticonceptivas: Historia, Beneficios, Riesgos y Producción
  3. Barman Inteligente: Construye tu Propia Estación de Cócteles con Raspberry Pi
  4. Semáforo Inteligente: Iluminación Vial Adaptativa con IoT
  5. Papelera Inteligente Avanzada: Optimización de Recogida de Residuos con Sensores IoT
  6. Planta Inteligente IoT: Construye un Invernadero Conectado con Arduino y Azure
  7. UnifiedWater v1 – Kit completo de sensor de calidad de agua con Arduino
  8. Persianas Inteligentes: Control Automático de Luz con Arduino y Energía Solar
  9. Really Smart Box: Solución de Almacenamiento Inteligente IoT
  10. Autodesk Smart Manufacturing: Automatice su flujo de trabajo y conecte el desarrollo de productos
  11. Fabricación Inteligente Explicada: Transformando la Producción con IoT