GlowCap is a discontinued IoT product that helps people remember to take their medication.

Created: November 30th, 2022

0
GlowCap and Hub
Vitalityglowcaps.thumb
0

Intent

GlowCap is a discontinued IoT product that helps people remember to take their medication. We will be recreating what we feel are the most important parts of the GlowCap experience to explore ways to improve the product and discover the reasons it was discontinued. The essential function of the system will be to light up and send a notification via text or app alert when medication needs to be taken. 

We decided since the original product failed, we should try to determine potential improvements for our version.  Although it could have failed purely due to business reasons, we tried to focus on design improvements.  For instance, we felt the product was very clunky and looked mechanical.  It was not asthetically pleasing.  Additionally, it had many features that seemed excessive.  Having a call center to reach out to patients, for example, was fairly disruptive and costly.  This feature may have made sense when smartphones were not popular, but today, it may be more convenient to get an app notification.

After identifying these issues, we thought of another product we studied: the ambient orb.  This orb could provide subtle signals that indicated events, but is still fit into the user's environment.  Our goal was to combine the two products to create a superior version of the GlowCap.

There will be two items created in the project. One will be a medication bottle fit with a sensor system to determine if and when the bottle is open. The other physical component will be a hub component that is placed in a visible location within the home. The hub will be an aesthetically pleasing, ambient light that turns on when the medication needs to be taken.  

0

Process

We started by creating simple circuits on breadboards with a button to test code.  That way, we could determine if the code was working before implementing more complicated switches.  Then, we got to work on creating the mechanisms that could trigger when the medicine bottle was opened.  This was the most difficult part of the project.  We started by using foil around the top of the bottle and wires on top of the cap, but the bottle could not totally close with the foil on it.  Then, we tried copper tape around the inside of the bottle and drilling a hole in the cap to put the wires through.  The copper tape worked well, but the wires were difficult to get to stay in place.  We decided to try a clicker switch instead at the suggestion of our classmates and professor.  We fed the wires down the previously drilled hole for a cleaner look and covered the top with modeling clay for a cleaner look.  Then, we held the switch in place on the underside of the cap with   

0

Historical Case

The team chose to reinvent the GlowCap because it was an exciting product that showed promise. However, we think that its many features (ringtones, monthly progress reports, as well as reports to friends, family, and primary physician) may have been a bit excessive. In our reinvention, we focused on a silent and "ambient" way to remind users to take their medication. 

Original Product Demo: https://www.youtube.com/watch?v=9qf7PxbL9ag

We also took inspiration from the Ambient Orb: https://www.youtube.com/watch?v=rgUucuo2xJ4


0
Workflow Diagram
0

Approach

Our approach focused on connecting two Argons through an API.  We hope to include all inputs on the "Bottle Argon" attached to medicine bottle lid.  This bottle would also have an output of a neopixel ring.  The other Argon, called "Hub Argon," would copy this output onto its own set of neopixels.  We planned to run both Argons on a battery to allow them to be wireless.  Instead of creating a way to disperse the light of the hub, we chose to order a small paper lamp shade to place over the neopixels.  For coding, we wanted to create code that could count intervals of 8,12, and 24 hours from triggering the input on the Bottle Argon. If the input had not been triggered within this timeframe, we wanted the lights to signal to change.  This was done to imitate the common intervals between taking medication.  We assumed we could use code from both the lab III and V to do this.  We were unsure how to trigger the input and decided to determine this mechanism first.

1
Initial Prototype Sketch

The initial prototype of this project is provided below. At first we wanted to utilize conductive paint to complete a circuit when the cap was closed.

0

Hub Argon Code

0
Bill of Materials

Item Type

Quantity

Notes

Mouse clicker switch

1

To inform the open and close of the cap

Neopixel

2

For cap & hub

Plastic pill cap and bottle

1

Container

Lamp shade

1

For hub

Particle Argon

2

For cap & hub

Protoboard

1

For hub

Wires

10


0

Bottle Argon Code

0
// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

// This #include statement was automatically added by the Particle IDE.
#include "neopixel.h"

// IMPORTANT: Set pixel COUNT, PIN and TYPE
#define PIXEL_PIN D2
#define PIXEL_COUNT 8
#define PIXEL_TYPE WS2812

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
// Our button wired to D0
int switchPin = D3;
int brightness = 0;
int increment = 255;
int takePeriod = 3 * 1000;


void setup(){

pinMode(switchPin , INPUT_PULLUP); // sets pin as input

strip.begin();
}

// store the brightness in a new variable

void loop(){
    int switchState = digitalRead( switchPin );
	if( switchState == HIGH ){
        delay(takePeriod);
        uint32_t c = strip.Color(255,0,0); // red
        for( int i = 0; i < strip.numPixels(); i++ ){
            strip.setPixelColor(i, c); // set a color 
            }
        strip.show();
	}else{
	    uint32_t c = strip.Color(255,255,255); // white
        for( int i = 0; i < strip.numPixels(); i++ ){
            strip.setPixelColor(i, c); // set a color 
            }
        strip.show();
	}
}
Click to Expand
0
// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

// This #include statement was automatically added by the Particle IDE.
#include "neopixel.h"

// IMPORTANT: Set pixel COUNT, PIN and TYPE
#define PIXEL_PIN D2
#define PIXEL_COUNT 8
#define PIXEL_TYPE WS2812

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);

int switchPin = D3;

int takePeriod = 3 * 1000;
int alertPeriod = 3 * 1000;


// store the connect state
bool connect = false;


void setup(){;

pinMode( switchPin , INPUT_PULLUP); // sets pin as input

strip.begin();

Particle.subscribe( "doPairedPublish", handleConnection );
}

// store the brightness in a new variable
void hubShow(){
    Particle.publish( "doPairedPublish" );
}

void loop(){
    int switchState = digitalRead( switchPin );
    // the hub function is activated
    // the bottle is closed
    if( switchState == HIGH ){
        // after a certain period, change color to yellow to remind the user to take the pill
        delay(takePeriod);
        hubShow();
        red();
    }else{
      white();
	}
}

void yellow(){
    	    
            uint32_t c = strip.Color(255,255,0); // yellow
            for( int i = 0; i < strip.numPixels(); i++ ){
                strip.setPixelColor(i, c);  
                }
            strip.show();
            // // If the user does not take the pill after the 1st reminder for a certain period, the led will turn into red to realert
            // delay(alertPeriod);
            // changeColor();
        // the bottle is open
}

void white(){
    // color returns to normal white
            uint32_t c = strip.Color(255,255,255); // white
            for( int i = 0; i < strip.numPixels(); i++ ){
                strip.setPixelColor(i, c); // set a color 
                }
            strip.show();
}    

void red(){    //function to change the color
    // delay(takePeriod);
    uint32_t c = strip.Color(255,0,0); // red
    for( int i = 0; i < strip.numPixels(); i++ ){
        strip.setPixelColor(i, c); 
        }
    strip.show();

}

void handleConnection( const char *event, const char *data){
    // delay(takePeriod);
   red();
}
Click to Expand
0

Resulting Prototype

0

Videos


0
Final Project - GlowCap Bottle Demo
Weiqing Wang - https://youtube.com/shorts/-a-ClmbA_sc?feature=share
0
Final Project - GlowCap Hub Demo
Weiqing Wang - https://youtu.be/Myy6Elj5QPs
0

Reflection and Critique

0

Conceptual Design

On the day of the demonstration, our team received insightful feedback from the guests that could be used as potential enhancements for this project. The enhancements include: 

  • Adding sensors to determine the weight of pills to improve medication adherence. 

The original product and our prototype consider that the medication has been taken when the cap is opened and closed. With that being the only measurement of adherence, it is very easy to cheat the bottle and make it seem like an individual is taking their daily dose, but they aren't. A weight or pressure sensor can be added to the bottom of the bottle that only counts the pill as taken if the weight of the bottle decreases. 

  • Adding the light component in the houses of friends and family so they can also remind their family members to take their medication. 

If an individual is outside and is not pending on their GlowCap components, they can miss their dosage. Perhaps multiple hubs can be obtained with the original product so friends and families can also be notified that their relative or friend needs to take their medication. This component can be beneficial for individuals prone to forgetfulness. 

  • Since our prototype included a neopixel that only lit solid colors, our team received feedback that we could perhaps light one pixel at a time, representing a different day of the week. 

There is so much one can do with the output of light. Currently, our prototype lights up two solid colors to indicate whether the bottle is opened or closed. To make our concept more interesting, after the bottle is opened and closed, one neopixel can shine to display the individual has taken their medication that day of the week. Some individuals get motivated by ticking things off their list, and this enhancement could provide that element. 

Additionally, we received feedback on exploring different use cases since the product did not do well on an individual level. We were perhaps considering how this product would help in a hospital or care environment. This product has the potential to be beneficial for nurses to determine which of their patients need to take their medication. 

Our team was very grateful for the feedback because it truly opened our eyes to a whole world of possibilities to make a product with an impact. 



x
Share this Project

Courses

About

GlowCap is a discontinued IoT product that helps people remember to take their medication.