Select Page

Medicine dispenser

This page describes a simple medicine dispensing system which is ideal for the elderly who tend to forget to take their medicines, or at certain times, take excess dosage. The system is easily configureable thanks to the touchscreen interface, and allows customisation for multiple users. As is described below, the system uses a stepper motor to dispense the desired number of medicines at a certain point in time, which can be configured by the user to their requirement. The portability of the device can make it suitable for the patient to carry to his GP and get it configured. The system sounds an alarm when a medicine is due, and additionally sends an SMS to the user if a dose is skipped.

Operation

The operation of the system from the user’s perspective is as shown in the following flowchart:

 

 

Hardware

The hardware of the project can be divided into four parts:

  1. Olimex LCD Board with Touchscreen
  2. Real Time Clock
  3. Stepper Motor
  4. GSM Modem

 

Olimex STM32-LCD Board with Touchscreen

This board comes with a STM32F103ZE ARM M3 microcontroller with a 32-bit RISC core operating at a 72 MHz frequency, high-speed embedded memories (Flash memory: 512 KB and SRAM: 64 KB), and an extensive range of enhanced I/Os and peripherals connected to two APB buses. The main reason for choosing this board was its seamless integration with the LCD cum touchscreen, which is used for all the UI elements of the project. The ample number of GPIO pins on the board make it suitable for connecting to all the peripherals. The pins used in this system are for two USART ports (one for debugging and one for the GSM Modem), 8-bit AD bus and control pins for the RTC, control pins for the stepper motor and external interrupt.

Real Time Clock

The RTC used is the BQ3285 IC from Texas Instruments. The reason for choosing this IC was the ease of programming the alarm feature in the IC so that the system can be sent to sleep during extended periods of usage. It triggers an interrupt everytime the time matches with the programmed alarm time. This interrupt is used to wake up the system and sound a buzzer. Upon pressing a button on the touchscreen, the programmed number of medicines are dispensed.

Stepper Motor

The stepper motor used is a 1kg-m torque bipolar motor 16PU-M301-G1. It is driven by ULN2803 Darlington transistor array IC, which supports the high current required to drive the motor, providing suitable isolation between the high and low voltage levels in the system.

GSM Modem

The SIM500 GSM Modem is used in for sending an SMS if a dosage is missed. This board is very simple to use and connects to the Olimex board over USART. Standard AT commands are used to send out the SMS.

 

Integration

 

 

References

Technical documents

  1. STM32-LCD development board User’s manual, Olimex Ltd, 2014 | https://www.olimex.com/Products/ARM/ST/STM32-LCD/resources/STM32-LCD.pdf

Datasheets

  1. BQ3285 Real Time Clock, Texas Instruments, 2014 | http://www.ti.com/lit/ds/slus028a/slus028a.pdf

 

Team

  • Prachet Verma | 10221
  • Saugata Datta | 10222