#include <Wire.h>
#include <RTClib.h>
#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,4,5,6,7);
RTC_DS1307 RTC;
const int button1 = 53; // Button SELECT MENU'
const int button2 = 52; // Button +
const int button3 = 51; // Button -
const int stop_button = 50; // button stop alarm
#define buzzer 33
int temp,hours,minute,add=52;
int HOUR,MINUTE,SECOND;
char daysOfTheWeek[7][12] = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"};
char* medicineType[]={"Blood", "Heart", "Diabetes"};
char* medicinedose[]={"1","2","3"};
void setup()
{
Wire.begin();
RTC.begin();
lcd.begin(16,2);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(stop_button, OUTPUT);
pinMode(buzzer, OUTPUT);
lcd.setCursor(0,0);
lcd.print("Hello");
lcd.setCursor(0,1);
lcd.print(" Med Reminder ");
delay(2000);
lcd.setCursor(0,0);
lcd.print("By Ikram Hanafi ");
delay(2000);
if(!RTC.isrunning())
{
RTC.adjust(DateTime(__DATE__,__TIME__));
}
}
void loop()
{
int temp=0,val=1,temp4;
DateTime now = RTC.now();
if(digitalRead(button1) == 0) //set medicine time
{
lcd.setCursor(0,0);
lcd.print(" Set Medicine ");
lcd.setCursor(0,1);
lcd.print(" Reminder time ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Time 1");
scr();
time(1);
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Time 2");
scr();
time(2);
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Time 3");
lcd.setCursor(0,1);
scr();
time(3);
lcd.setCursor(0,0);
lcd.print("Medicine reminder");
lcd.setCursor(0,1);
lcd.print(" time has set ");
delay(2000);
}
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time:");
lcd.setCursor(6,0);
lcd.print(HOUR=now.hour(),DEC);
lcd.print(":");
lcd.print(MINUTE=now.minute(),DEC);
lcd.print(":");
lcd.print(SECOND=now.second(),DEC);
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(now.day(),DEC);
lcd.print("/");
lcd.print(now.month(),DEC);
lcd.print("/");
lcd.print(now.year(),DEC);
delay(200);
}
}
void scr()
{
lcd.setCursor(0,1);
lcd.print(HOUR);
lcd.print(":");
lcd.print(MINUTE);
lcd.print(":");
lcd.print(SECOND);
}
void time(int x)
{
int temp=1,minuts=0,hours=0,seconds=0;
while(temp==1)
{
if(digitalRead(button2)==0)
{
HOUR++;
if(HOUR==24)
{
HOUR=0;
}
while(digitalRead(button2)==0);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Time ");
lcd.print(x);
lcd.setCursor(0,1);
lcd.print(HOUR);
lcd.print(":");
lcd.print(MINUTE);
lcd.print(":");
lcd.print(SECOND);
delay(100);
if(digitalRead(button3)==0)
{
hours=HOUR;
EEPROM.write(add++,hours);
temp=2;
while(digitalRead(button3)==0);
}
}
while(temp==2)
{
if(digitalRead(button2)==0)
{
MINUTE++;
if(MINUTE==60)
{
MINUTE=0;
}
while(digitalRead(button2)==0);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Time ");
lcd.print(x);
lcd.setCursor(0,1);
lcd.print(HOUR);
lcd.print(":");
lcd.print(MINUTE);
lcd.print(":");
lcd.print(SECOND);
delay(100);
if(digitalRead(button3)==0)
{
minute=MINUTE;
EEPROM.write(add++, minute);
temp=0;
while(digitalRead(button3)==0);
}
}
delay(1000);
}