Advertisement
Kharulnisya

medicine reminder

Apr 26th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. #include "Wire.h"
  2. #include "EEPROM.h"
  3. #include "RTClib.h"
  4. #include "LiquidCrystal.h"
  5.  
  6. LiquidCrystal lcd(47, 33, 2, 3, 4, 5);
  7. RTC_DS1307 RTC;
  8. int temp,inc,hours1,minut,add=11;
  9. int next=10;
  10. int INC=9;
  11. int set_mad=8;
  12.  
  13. #define buzzer 51
  14.  
  15. int HOUR,MINUT,SECOND;
  16.  
  17. void 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.  
  44. void 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();
  71. time(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.  
  98. void 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.  
  110. void 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. }
  124. lcd.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. {
  145. if(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.  
  177. void 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.  
  236. void beep()
  237. {
  238. digitalWrite(buzzer,HIGH);
  239. delay(500);
  240. digitalWrite(buzzer, LOW);
  241. delay(500);
  242. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement