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 de píldoras inteligente

Componentes y suministros

Placa de desarrollo AVR-IoT WA de la tecnología de Microchip
× 1
Arduino Mega 2560
× 1
Micro-servo motor SG90
× 4
Itead Nextion NX8048T070 - Pantalla táctil LCD TFT HMI genérica de 7.0 "
× 1
Adafruit PWM de 16 canales y 12 bits / Servocontrolador I2C
× 1
Altavoz:0,25 W, 8 ohmios
× 1
Sensor de luz infrarroja con fototransistor Adafruit
× 4
LED IR Adafruit de 5 mm - 940 nm
× 4
Sensor ultrasónico - HC-SR04 (genérico)
× 1
Servo de alta velocidad de 360 ​​° con retroalimentación Parallax
× 1
Fuente de alimentación de pared conmutada Adafruit 5V 2A
× 1

Herramientas y máquinas necesarias

Impresora 3D (genérica)
Soldador (genérico)
Alambre de soldadura, sin plomo

Aplicaciones y servicios en línea

Tecnología de microchip MPLAB X IDE
Arduino IDE
Autodesk Fusion 360
Amazon Web Services AWS IoT
Amazon Web Services AWS DynamoDB
Amazon Web Services AWS API Gateway
Amazon Web Services AWS Lambda
Microsoft VS Code

Acerca de este proyecto

¿Por qué este proyecto?

Actualmente existen en el mercado dos tipos de dispensadores de pastillas:los no eléctricos y los automáticos. Aunque la mayoría de ellos cuentan con un mecanismo recordatorio (no siempre apto para personas con deficiencias visuales o sensoriales), ambos tipos normalmente requieren de una persona que organice las pastillas diaria o semanalmente en diferentes compartimentos, convirtiendo al paciente en una persona dependiente. Hoy en día debido al Covid-19, los familiares o asistentes de ancianos tienen más dificultades para cuidar a las personas dependientes.

Es por eso que vimos la necesidad de crear un dispensador de píldoras inteligente que no necesite una organización de píldoras hecha a mano, accesible para personas discapacitadas y que tenga la capacidad de ayudar a los pacientes a ser más independientes.

A continuación, le mostramos los 10 mejores dispensadores de píldoras de 2020:

Como ves, hay mucho por mejorar en el mundo de los pastilleros. Y esto es exactamente lo que SmartPill va a resolver.

¿Cómo funciona?

El sistema SmartPill está compuesto por 2 subsistemas:

  • Dispensador de píldoras inteligentes: Dispositivo físico que organizará, almacenará y dispensará las pastillas. Actuará como la interfaz principal para el paciente.
  • Aplicación web Smartpill: Interfaz de usuario web que permitirá al médico o la persona responsable del paciente configurar y realizar un seguimiento de las ingestas de pacientes.

Con la ayuda de la aplicación web con una interfaz de usuario agradable y amigable, el médico puede configurar hasta 4 píldoras diferentes para cada Dispensador de Smartpill y seleccionará hasta 3 tomas por día para cada píldora. Esto le permite al médico cambiar la dosis de forma remota cuando sea necesario sin la intervención del propio paciente.

El sistema SmartPill ha sido diseñado teniendo en cuenta las dificultades que puede tener un paciente con demencia senil, Alzheimer o deficiencias visuales o auditivas. Por ello, el dispensador cuenta con una pantalla de gran formato que permitirá al paciente llenar las pastillas de forma cómoda así como una retroalimentación sonora y ligera que le recordará al paciente que debe tomar las pastillas en el momento adecuado.

El usuario no tiene que preocuparse por dónde o cómo deben colocarse las diferentes píldoras. Eso es porque hay un mecanismo inteligente que distribuye las píldoras dentro del dispensador de píldoras y dispensa la dosis necesaria en el momento adecuado.

El Dispensador SmartPill dispone de conexión inalámbrica a Internet a la Nube de AWS gracias a la conexión WiFi de la placa Microchip AVR-IoT, por lo que se puede monitorizar y configurar de forma remota a través de la aplicación web.

La aplicación también mostrará cuándo se han tomado las píldoras y notificará al miembro de la familia si no se toma la píldora.

Dispensador SmartPill

Sistema de dispensación

Quizás se esté preguntando, ¿cómo funciona el sistema de dispensación? Esta sección muestra todas las diferentes partes y explica su funcionalidad.

Debemos aclarar que además de la pantalla, todo ha sido impreso en 3D con Plástico PLA. También puede consultar el archivo .STL de todo el dispensador disponible a continuación.

1. Base :Soporta el resto del dosificador. Tiene dos orificios para que el sensor de movimiento sea funcional. Contiene una solapa que lleva las pastillas al vaso.

2. Control deslizante :La parte superior del control deslizante soporta los envases de las píldoras. Debajo hay una pendiente en la que las pastillas descienden hasta la solapa. En la parte inferior hay un hueco preparado para colocar toda la electrónica.

3. Partes laterales :Se utiliza para proteger el hardware y las pastillas de la humedad, las temperaturas, la suciedad y el polvo.

4. Nextion NX8048T070 :Pantalla utilizada como interfaz entre el dispensador y el usuario.

5. Partes superiores :

  • Se utiliza para proteger el hardware y las pastillas de la humedad, las temperaturas, la suciedad y el polvo (arriba).
  • Separa el bidón de los envases de pastillas (parte inferior).

6. Parallax Servo 900-0005 :Motor eléctrico de 360º que coloca en la posición correcta la pieza número 7.

7. Tambor :Tubo de conexión entre el exterior y los envases de pastillas. Gira para llegar al contenedor correcto.

8. Puerta trasera :Necesario para entrar y salir de los envases de las píldoras con el control deslizante.

9. Ponentes :Comunicarán al usuario toda la información necesaria.

10. Sensor ultrasónico - HC SR04 :Este dispositivo detectará si la taza se ha movido.

11. Envases de pastillas :Contienen las pastillas y las dispensan en el momento oportuno con la cantidad adecuada. Como prototipo, hemos diseñado el dosificador de pastillas con 4 envases. Sin embargo, se puede adaptar a una capacidad mayor.

¿Quieres tu propio dispensador de SmartPill? ¡Descarga los archivos STL en la parte inferior e imprime todas las partes con tu impresora 3D! El proyecto es completamente de código abierto.

En el siguiente apartado explicaremos paso a paso cómo montar el sistema de dispensación.

Montaje

  • Para imprimir en 3D el control deslizante (Parte 2 - Dibujo general) lo hemos dividido en tres partes. Entonces, primero que nada, lo ensamblamos. Escoge las nueces ( 2.3.2 - Dibujo del control deslizante ) y colócalos en el control deslizante ( 2.2 - Dibujo del control deslizante ) con un soldador. Luego atornille ambas partes ( 2.3.1 y 2.2 - Dibujo del control deslizante ). Espere a poner el tapón (2.4 - Dibujo del control deslizante) hasta que la electrónica esté conectada.
  • Coloque los componentes electrónicos dentro del espacio del control deslizante, incluido el Sensor ultrasónico - HC SR4 (Parte 10 - Dibujo general) y atornille la tapa del control deslizante (2.4).
  • Arme los envases de las píldoras (mire el Dibujo de los envases de las píldoras ). ) con un servo SG90 cada uno. Primero únase a la Parte 1 con la Parte 7 y atornille el SG90 a la Parte 7 . Luego, une la Parte 3 con la Parte 4 (Cojinete de rueda) y finalmente agrega la Parte 2. Luego, atornilla los contenedores de pastillas a la parte superior del control deslizante (Parte 2 - Dibujo general) .
  • Atornille la pantalla (Parte 4 - Dibujo general). a la parte lateral adecuada y coloque el enchufe. Y luego coloque las partes de Sider (Parte 3 - Dibujo general) a la base hasta que hagan clic.
  • Hay dos partes superiores ( (Parte 5 - Dibujo general) . Las ensamblamos volviendo a coger las tuercas y encajándolas en las piezas. Esta vez no se necesita ningún soldador. Ajustar el tambor (Parte 7 - Dibujo general) y el Parallax Servo (Parte 6- Dibujo general) entre ellos y atornillamos ambas partes superiores juntas.
  • Finalmente atornille la puerta trasera (Parte 8 - Dibujo general) al ensamblaje de la parte superior.

Electrónica

El cerebro principal de la electrónica es un Arduino Mega que se encargará de controlar los servomotores que dispensan las pastillas, así como la pantalla táctil Nextion, el Real-Time Clock (RTC), los efectos de sonido y la placa de comunicaciones AVR-IoT.

  • AVR-IoT está conectado al Arduino Mega mediante una conexión UART serie.
  • Los servomotores están controlados por PWM.
  • RTC está conectado al Arduino Mega por I2C.
  • El sensor de barrera IR para detectar las pastillas está conectado a los pines analógicos de la placa Arduino.

Para replicar el proyecto, debe hacer todas las conexiones como se describe en el esquema con la ayuda de un protoboard o PCB de fabricación propia. Recomendamos encarecidamente montar el circuito en una especie de placa de madera como en la imagen de arriba.

El esquema se puede encontrar al final de la página.

Aplicación web SmartPill

La aplicación web SmartPill tiene como objetivo facilitar la experiencia que implica configurar un dispositivo electrónico y controlar la medicación de otra persona.

  • Un dispensador de SmartPill fácil de configurar, con la información del paciente, las píldoras que deben tomarse, la dosis necesaria y el intervalo de tiempo.
  • Controlar la ingesta de pastillas.

¿Cómo se ha desarrollado?

Para desarrollar una web desde el principio se trabaja con las áreas fundamentales de la programación:backend y frontend. La aplicación web Smartpill se ha creado con:

  • Backend. AWS API Gateway (HTTT API Rest).
  • Frontend. Iónico y Angular. Para desarrollar una web desde el principio se trabaja con las áreas fundamentales de la programación:backend y frontend.

Ionic es un marco de NodeJS completamente gratuito y de código abierto basado en AngularJS que proporciona elementos de interfaz de usuario específicos de la plataforma a través de una biblioteca de componentes nativos para iOS y Android. Utiliza tecnologías front-end como HTML, CSS, JavaScript y Angular para el desarrollo de aplicaciones. Ionic puede usar Angular CLI (Command-Line Interface) para crear aplicaciones móviles completamente funcionales.

Tenga en cuenta que antes de comenzar su web con Ionic, Node.js debe estar instalado para que funcione, ya que Ionic es parte de un gran ecosistema de JavaScript.

La página de documentación de Ionic Framework puede guiarlo sin problemas dentro del inicio de su aplicación. Sin embargo, mencionaré brevemente los primeros pasos seguidos para la creación de la aplicación Smartpill:

1. Vaya a la línea de comandos de su editor de código e instale la CLI iónica con npm:

  $ npm install -g @ ionic / cli  

2. Cree una nueva aplicación:

  $ ionic start smartpill-webui en blanco  

3. Vaya a la carpeta de su interfaz y ejecútelo:

  $ cd smartpill-webui 
$ servicio iónico

Ejecutar su aplicación significa que puede probarla en el navegador de su dispositivo. Esta función iónica es esencial para depurar y probar.

Estructura básica de la aplicación web Smartpill.

La aplicación web Smartpill está organizada de manera sencilla, para simplificar la navegación. Dentro de las carpetas de la aplicación podemos encontrar el módulo de enrutamiento de la aplicación, los archivos de los componentes de la aplicación, una carpeta de "servicios" y una carpeta para cada ruta.

Si nunca ha tocado las tecnologías frontend, notará en la descripción general de este código cómo los diferentes lenguajes interactúan entre sí. Pero si tuviéramos que describir brevemente cómo funciona, la parte de la web que verá es el archivo html de la carpeta, mientras que el archivo mecanografiado son las funciones que se ejecutan cuando el usuario interactúa con la página. Los modules.ts son para propósitos de enrutamiento.

Los archivos más esenciales de la aplicación Smartpill son:

  • app-routing.module.ts. Permite al usuario navegar por todas las diferentes rutas disponibles. Ciertas rutas permiten al desarrollador web llevar variables de una ruta a otra.
  rutas const:Routes =[
{
ruta:'',
redirectTo:'page-login',
pathMatch:'full'
},
{
ruta:'page-config',
loadChildren:() => import ('./ page-config / page-config.module'). luego (m => m.PageConfigPageModule)
},
{
ruta:'page-status',
loadChildren:() => import ('./ page-status / page- status.module '). luego (m => m.PageStatusPageModule)
},
...
  • post.service.ts. Se comunica con la API. Aquí se definen las interfaces principales (Post, Dep y Log), junto con la clase PostService. PostService tiene las principales funciones básicas para comunicarse con la API:función get, para recibir información de la API; publicar, para crear un nuevo artículo en la API; eliminar, para eliminar un artículo; y poner, para editar un artículo existente en la interfaz, pero eliminando los datos anteriores que contenía.
  getPosts () {
return this.http.get (this.API);
}

getDeposit () {
return this.http.get (this.DEPOSIT);
}


getLogs () {
return this.http.get (this.LOGS);
}

createPost (píldora:cadena, depósito:cadena, peso:cadena, mañana:booleano, tarde:booleano, noche:booleano) {
devuelve this.http.post (this.API, {
píldora,
depósito,
peso,
mañana,
tarde,
noche,
});
}

removePost (id:string) {
return this.http.delete (` $ {this.API} / $ {id} `);
}
...

Configuración y edición de la página de píldoras.
Smartpill tiene una ruta dedicada a mostrar todas las publicaciones programadas llamada “page-config”. Para crear una nueva publicación para configurar las píldoras, el usuario debe presionar un botón en la esquina inferior derecha que las redireccionará a la página de edición “page-edit-pill”. Sin embargo, si no quieren crear sino editar, al presionar el botón editar de una publicación ya creada, la web también los redirigirá a la “página-edición-píldora” pero con la identificación de la publicación. Esas dos declaraciones se definen de la siguiente manera:

  • Botón para crear una nueva publicación
   



  • Botón Editar publicación
   ​​

Editar

La página "page-edit-pill" reconoce si el usuario ha entrado en la ruta con o sin una identificación, y realiza las funciones correspondientes con la ayuda de simples ifs.

  • Ruta con Id definido en el módulo de ruta
  {
ruta:'pill / edit /:postId',
loadChildren :() => import ('./ page-edit-pill / page-edit-pill.module ') .entonces (m => m.PageEditPillPageModule)
},
  • Leer si la ruta lleva una identificación
  ngOnInit () {
this.actiavtedRoute.paramMap.subscribe ((paramMap) => {
if (ParamMap.get ("postId")) {
this. postService
.getPostById (paramMap.get ("postId"))
.subscribe ((res) => {
this.post =res;
this.editing =true;
});
}
});
}
  • Si muestra un ejemplo
   
{{¿editar?
'Actualice su':
'Cree su'
}} Depósito
  • Ejemplo de botón If
   
{{¿editar? 'Actualizar':'Enviar'}}

La "página de edición de píldoras" interactúa con el usuario con componentes de IU iónicos, como entradas y selecciones, que se enviarán más tarde a la API:

  • Selección múltiple de tiempo
   
Haga clic aquí para elegir la hora del día.
cancelText ="Cancelar" okText ="Enviar">
Morning
Tarde
Noche

  • Entrada de píldora
   
Nombre de la píldora:

La “página de configuración” ha sido programada con Ciclo de vida angular, por lo que cuando regrese de la “píldora de edición de página” o de cualquier otra, la página se actualizará y las publicaciones se volverán a cargar, actualizando los cambios automáticamente.

  • Cargar función de publicación
  loadPosts () {
this.postService.getPosts (). subscribe (
(res) => {
this.posts =res;
},
(err) => console.log (err)
);
this.postService.getDeposit (). subscribe (
(res) => {
this .dep =res;
console.log (this.dep);
};
(err) => console.log (err)
);

La “página de configuración” también tiene un botón que permite al usuario eliminar cualquier pastilla. Es una función asincrónica que muestra un mensaje de alarma para verificar si están seguros de esta acción.

  • Delimitación de una publicación
  async removePost (id:string) {
const alert =await this.alertController.create ({
header:"Alert",
subHeader:"¿Está seguro de que ¿quieres eliminar este depósito? ",
mensaje:" No podrás recuperarlo. ",
botones:[
" Cancelar ",
{
texto:"Sí",
controlador:() => {
this.postService.removePost (id) .subscribe (
(res) => {
console.log (res);
this.loadPosts ();
},
(err) => console.log (err)
);
},
},
],
});
aguardar alerta.present ();
}

Página de registros

La página de registros obtiene la información de las píldoras dispensadas y la muestra como un registro en la ruta del historial. Funciona de manera similar a "config-page" pero solo carga la información ubicada en la API:

  • Obtener registros
  loadPosts () {
this.postService.getLogs (). subscribe (
(res) => {
this.log =res;
consola. log (this.log);
},
(err) => console.log (err)
);
}

ngOnInit () {
this.loadPosts ();
}

ionViewWillEnter () {
this.loadPosts ();
}
  • Visualización de registros
   







{{log.date | fecha:'dd / MM / aaa'}} - {{log.date | fecha:'HH_mm'}} h


{{log.patient_name}}


{{log.pills}}






Servicios web de Amazon

AWS es el proveedor de servicios elegido para implementar SmartPill System, ya que ofrece una amplia gama de servicios dentro del mismo ecosistema, lo que nos permite optar por un enfoque completamente sin servidores. Esto permite que la aplicación se adapte a las necesidades del usuario y solo pague por lo que se utiliza.

Smartpill Arquitectura en la nube

El sistema Smartpill utiliza una arquitectura completamente sin servidor utilizando Amazon Web Services. Esto permite que la aplicación se amplíe y reduzca para adaptarse a las necesidades del usuario. La arquitectura se describe en el diagrama a continuación:

El dispensador Smartpill utiliza una placa Microchip AVR-IoT con capacidades WiFi para comunicarse con el ecosistema de AWS. AVR-IoT está conectado a través de AWS IoT Core mediante el protocolo MQTT. Esto permite la conectividad bidireccional entre el ecosistema de la nube y el hardware en sí. Esta comunicación se utiliza para enviar el mensaje de dispensación al Dispensador, así como los eventos de confirmación del dispensador a la nube.

Se compila la interfaz de la aplicación web desarrollada con el marco Ionic Angular NodeJS y sus archivos estáticos se cargan en el servicio de almacenamiento AWS S3. El backend de la aplicación web es un servicio HTTT API Rest desarrollado con AWS API Gateway que llama a funciones Lambda. Estas funciones de Lambda se comunican con la base de datos de DynamoDB que almacena la configuración de las píldoras y los registros de ingesta.

AWS Event Bridge se utiliza como programador para activar los eventos de dispensación en el momento correcto. Este evento desencadena una función Lambda que buscará en la base de datos las píldoras que se necesitan en cada ingesta y enviará esta información al Dispensador SmartPill mediante IoT Core.

AWS-IoT Núcleo

Lo primero que debe hacer para comenzar a ejecutar la placa AVR-IoT con AWS IoT Core es conectarse a la placa a su cuenta de AWS. Microchip describe este proceso en las Guías para desarrolladores de IoT para AWS

Con esto, tendrá su placa AVR-IoT lista para usar en su cuenta de AWS. Puede ver esto en AWS IoT Core en Administrar Pestaña Cosas.

Luego, asegúrese de que su placa AVR-IoT tenga acceso a Internet configurándola con sus credenciales de WiFi como se describe en la Guía de inicio:

AWS DynamoDB

Luego, querrá configurar la aplicación web, para esto, lo primero que debe hacer es registrar las tablas de DynamoDB que necesita la aplicación web:

  • smartpill-history:almacenará todos los registros de las pastillas tomadas
  • píldoras-píldoras inteligentes:almacenará sus píldoras configuradas

Haga clic en crear tabla:

Déle el nombre exacto y seleccione "id" como clave principal.

AWS Lambda

Asegúrese de tener adjunto AmazonDynamicDBFullAccess. Para que la función Lambda pueda leer / escribir desde la base de datos de DynamoDB. Para ello, vaya a la pestaña Permisos:

Y haga clic en el nombre del rol. Esto lo redireccionará al rol de ejecución para esta función de Lambda. Recomendamos que cada función de Lambda tenga su propio rol de ejecución.

Debe aparecer AmazonDynamoDBFullAccess; de lo contrario, haga clic en Adjuntar políticas y busque "dynamodb":

Dar a la función Lambda acceso completo a DynamoDB solo es seguro para el propósito de este tutorial, no para un entorno de producción.

Ahora vaya a la configuración y agregue el código de función del repositorio de Github (enlace a continuación):

Repita esto para todas las funciones de Lambda en el repositorio.

Luego, configuraremos las integraciones entre Lambda e IoT Core para que se ejecute la función adecuada cuando el mensaje sea enviado por la placa.

Configuraremos el mensaje de confirmación de dispensación enviado por el AVR-IoT para que se genere en la base de datos la correspondiente entrada de registro y notificación.

Vamos a AWS-IoT Core, hacemos clic en Agregar y Reglas para configurar una Regla:

Haga clic en Crear nueva regla y asigne un nombre:smartpill_confirmationpill y una breve descripción

Luego ingrese la siguiente declaración de consulta:

  SELECCIONAR * DE 'píldora de confirmación'  

y configure una acción 'Enviar un mensaje a una función Lambda' para apuntar a la 'píldora inteligente de confirmación' creada anteriormente:

Está listo para pasar a la siguiente parte.

AWS Event Bridge

Event Bridge se encargará de lanzar la función lambda que enviará el mensaje al Dispensador SmartPill para poder dispensar la pastilla en el momento correcto. Configuraremos 3 eventos programados de activación para hacer eso. Una para la mañana, otra para la tarde y otra para la noche.

Vaya al servicio AWS Event Bridge y haga clic en "Crear una regla".

Asígnele un nombre y configure el patrón de evento Schedule como una expresión cron:

NOTA:Tenga en cuenta que estas expresiones cron están en hora UTC.

Seleccione la función Lambda 'smartpill-dispensepill' como objetivo:

Esta función de Lambda se ejecutará en el momento definido.

Defina dos Reglas más para el tiempo deseado en las tomas de mañana, tarde y noche.

AWS API Gateway

Vaya a AWS API Gateway y haga clic en Crear API. Elija HTTP API y haga clic en Build:

Ponle "smartpill-webui" como nombre (o lo que quieras, esto realmente no importa)

Y configure todas las funciones de Lambda como integraciones:

Haga clic en Siguiente y configure todas las rutas como se especifica en la tabla a continuación:

Finally, deploy the API to get a HTTP endpoint.

Alternatively you can import the JSON file 'smartpill-api.json' on the repository down below.

AWS S3

AWS S3 storage service is made for storing files but it can also act as a static web server for example a web page. In order to do so, you first need to create a Bucket.

Go to S3 and Click on "Create a Bucket":

Give a friendly name (this will be your DNS).

Now you will have to activate Static website hosting feature. Go to properties and go straight to the bottom. You will find this:

Click on "Edit" and Enable the Static website hosting feature and select 'index.html' as your index and error document:

Then upload your website static files that Angular has compiled and access your DNS. You are ready to go!

AVR-IoT Board

AVR-IoT board from Microchip is used as a communication interface in order to provide connectivity to the Cloud to the Dispenser. It is connected to the Main Arduino Board by means of a Serial interface.

Firmware for the AVR-IoT WA Development Board based on the original example

The already implemented CLI have been extended including the command "pill" , its corresponding callback pill_command() that parses the message and sends th confirmation JSON by MQTT to the topic "confirmationpill". Also, the message in case of unknown message is customized as well as in the callback in case of incorrect parameter.

The original CLI used the USART2, which is connected to the debugger by the PCB but is not accessible. For this version, the CLI structure and the funtionality printf() are now implemented on the USART1, which is avaliable with the pin conectors RX and TX . This alows us to use this CLI with any external device, taking into account the following configuration:

We have also managed to add a custom MQTT topic subscription with a JSON parser. On the aplication_manager.c could be found the modified version of subscribeToCloud() to subscribe to "dispensepill" custom topic and how it is linked to a custom callback receiveddispenseFromCloud() in which the data from the JSON is extracted.

On IoTPill.h header are defined the main structures used to control the data received and sent.

In order to enable communication between the Main Arduino board and the AVR-IoT we have developed a simple communication bidirectional protocol that has two messages.

  • dispensepill: Will be triggered by AWS Event Bridge at the right time and will send the event to the Dispenser to dispense a pill
  • confirmationpill :Will be send by the AVR-IoT board when the pill has been correctly dispensed in order to announce it to the AWS, which will log into the database.

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

Event Bridge will trigger the smartpill-dispensepill Lambda function to send by MQTT to IoT Board a JSON formated string that has this fields:

{
"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
}
}
}

and the IoT board will send by USART to the Arduino:

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

'confirmationpill' messageArduino → IoT Board → AWS

The arduino will send to the command "pill " and, if the delivery was incorrect or correct, it will add a ' 1 ' if it was okay:

pill 1 

This message will be processed by the custom CLI of the IoT Board taking into account the intake previusly send ( specifying the corresponding "time") and it will send the following JSON to AWS:

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

AWS will send the log with Lambda functions triggered to the Web service

¿Alguna pregunta? Leave a comment below and we will do our best to help you!

Código

Smartpill Web Application
Frontend code for the webapp user interfacehttps://github.com/makers-upv/smartpill-webui
Smartpill Backend Lambda functions
https://github.com/makers-upv/smartpill-lambda
Smartpill AVR-IoT Code
https://github.com/makers-upv/smartpill-avriot
Smartpill Arduino Code
https://github.com/makers-upv/smartpill-arduinofw

Piezas y carcasas personalizadas

Thingiverse Repository
Thingiverse Repository for SmartPill DispenserCAD file on thingiverse.com Pill Dispenser Mechanism that will take care of dispensing the correct quantity of pills. It is controlled by a servo.SmartPill Dispenser enclousureThe full assembly of the project. It's in STEP format so it can be modified by everyone. smartpill_full_assembly_ybV7DD7ehX.step

Esquemas

SmartPill Electronics HW connections

Proceso de manufactura

  1. Pastilla para dormir
  2. Píldora anticonceptiva
  3. Smart Bartender
  4. Semáforo inteligente
  5. Papelera inteligente
  6. Smart Plant IoT
  7. UnifiedWater v1
  8. Persianas inteligentes
  9. Caja realmente inteligente
  10. Fabricación inteligente de Autodesk
  11. ¿Qué es la fabricación inteligente?