safwan092

Pill Reminder 3 Pills with 3 buttons lc arduino simple with LEDs

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