Medicine Reminder Using Arduino
Sometimes patients forget to take their medicine in time. To avoid this, we have made a medicine reminder system using Arduino.
Project description
Code
Medicine Reminder Source Code
c_cpp
1#include <Wire.h> 2#include<EEPROM.h> 3#include <RTClib.h> 4#include <LiquidCrystal.h> 5 6LiquidCrystal lcd(7, 6, 5, 4, 3, 2); 7RTC_DS1307 RTC; 8int temp,inc,hours1,minut,add=11; 9int next=10; 10int INC=9; 11int set_mad=8; 12 13#define buzzer 13 14 15int HOUR,MINUT,SECOND; 16 17void setup() 18{ 19 Wire.begin(); 20 RTC.begin(); 21 lcd.begin(16,2); 22 pinMode(INC, INPUT); 23 pinMode(next, INPUT); 24 pinMode(set_mad, INPUT); 25 pinMode(buzzer, OUTPUT); 26 27 lcd.setCursor(0,0); 28 lcd.print("Medicin reminder"); 29 lcd.setCursor(0,1); 30 lcd.print(" Using Arduino "); 31 delay(2000); 32 lcd.setCursor(0,0); 33 lcd.print("By Saddam khan "); 34 lcd.setCursor(0,1); 35 lcd.print("Engineers Garage"); 36 delay(2000); 37 38 if(!RTC.isrunning()) 39 { 40 RTC.adjust(DateTime(__DATE__,__TIME__)); 41 } 42} 43 44void loop() 45{ 46 int temp=0,val=1,temp4; 47 DateTime now = RTC.now(); 48 if(digitalRead(set_mad) == 0) //set medicine time 49 { 50 lcd.setCursor(0,0); 51 lcd.print(" Set Medicine "); 52 lcd.setCursor(0,1); 53 lcd.print(" Reminder time "); 54 delay(2000); 55 lcd.clear(); 56 lcd.setCursor(0,0); 57 lcd.print("Enter Time 1"); 58 defualt(); 59 time(1); 60 delay(1000); 61 lcd.clear(); 62 lcd.setCursor(0,0); 63 lcd.print("Enter Time 2"); 64 defualt(); 65 delay(1000); 66 time(2); 67 lcd.clear(); 68 lcd.setCursor(0,0); 69 lcd.print("Enter Time 3"); 70 defualt(); 71time(3); 72 lcd.setCursor(0,0); 73 lcd.print("Medicin reminder"); 74 lcd.setCursor(0,1); 75 lcd.print(" time has set "); 76 delay(2000); 77 } 78 lcd.clear(); 79 lcd.setCursor(0,0); 80 lcd.print("Time:"); 81 lcd.setCursor(6,0); 82 lcd.print(HOUR=now.hour(),DEC); 83 lcd.print(":"); 84 lcd.print(MINUT=now.minute(),DEC); 85 lcd.print(":"); 86 lcd.print(SECOND=now.second(),DEC); 87 lcd.setCursor(0,1); 88 lcd.print("Date: "); 89 lcd.print(now.day(),DEC); 90 lcd.print("/"); 91 lcd.print(now.month(),DEC); 92 lcd.print("/"); 93 lcd.print(now.year(),DEC); 94 match(); 95 delay(200); 96} 97 98void defualt() 99{ 100 lcd.setCursor(0,1); 101 lcd.print(HOUR); 102 lcd.print(":"); 103 lcd.print(MINUT); 104 lcd.print(":"); 105 lcd.print(SECOND); 106} 107 108/*Function to set alarm time and feed time into Internal eeprom*/ 109 110void time(int x) 111{ 112 int temp=1,minuts=0,hours=0,seconds=0; 113 while(temp==1) 114 { 115 if(digitalRead(INC)==0) 116 { 117 HOUR++; 118 if(HOUR==24) 119 { 120 HOUR=0; 121 } 122 while(digitalRead(INC)==0); 123 } 124lcd.clear(); 125 lcd.setCursor(0,0); 126 lcd.print("Enter Time "); 127 lcd.print(x); 128 lcd.setCursor(0,1); 129 lcd.print(HOUR); 130 lcd.print(":"); 131 lcd.print(MINUT); 132 lcd.print(":"); 133 lcd.print(SECOND); 134 delay(100); 135 if(digitalRead(next)==0) 136 { 137 hours1=HOUR; 138 EEPROM.write(add++,hours1); 139 temp=2; 140 while(digitalRead(next)==0); 141 } 142 } 143 while(temp==2) 144 { 145if(digitalRead(INC)==0) 146 { 147 MINUT++; 148 if(MINUT==60) 149 {MINUT=0;} 150 while(digitalRead(INC)==0); 151 } 152 lcd.clear(); 153 lcd.setCursor(0,0); 154 lcd.print("Enter Time "); 155 lcd.print(x); 156 lcd.setCursor(0,1); 157 lcd.print(HOUR); 158 lcd.print(":"); 159 lcd.print(MINUT); 160 lcd.print(":"); 161 lcd.print(SECOND); 162 delay(100); 163 if(digitalRead(next)==0) 164 { 165 minut=MINUT; 166 EEPROM.write(add++, minut); 167 temp=0; 168 while(digitalRead(next)==0); 169 } 170 } 171 delay(1000); 172} 173 174 175/* Function to chack medication time */ 176 177void match() 178{ 179 int tem[17]; 180 for(int i=11;i<17;i++) 181 { 182 tem[i]=EEPROM.read(i); 183 } 184 if(HOUR == tem[11] && MINUT == tem[12]) 185 { 186 beep(); 187 beep(); 188 beep(); 189 beep(); 190 lcd.setCursor(0,0); 191 lcd.print(" Take Group One "); 192 lcd.setCursor(0,1); 193 lcd.print(" Medicine "); 194 beep(); 195 beep(); 196 beep(); 197 beep(); 198 } 199 200 if(HOUR == tem[13] && MINUT == tem[14]) 201 { 202 beep(); 203 beep(); 204 beep(); 205 beep(); 206 lcd.setCursor(0,0); 207 lcd.print(" Take Group Two "); 208 lcd.setCursor(0,1); 209 lcd.print(" Medicine "); 210 beep(); 211 beep(); 212 beep(); 213 beep(); 214 } 215 216 217 if(HOUR == tem[15] && MINUT == tem[16] ) 218 { 219 beep(); 220 beep(); 221 beep(); 222 beep(); 223 lcd.setCursor(0,0); 224 lcd.print("Take Group Three "); 225 lcd.setCursor(0,1); 226 lcd.print(" Medicine "); 227 beep(); 228 beep(); 229 beep(); 230 beep(); 231 } 232} 233 234/* function to buzzer indication */ 235 236void beep() 237{ 238 digitalWrite(buzzer,HIGH); 239 delay(500); 240 digitalWrite(buzzer, LOW); 241 delay(500); 242}
Downloadable files
Medicine Reminder
Medicine Reminder

Medicine Reminder
Medicine Reminder

Comments
Only logged in users can leave comments