#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
#include <ESP32Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;
Servo myservo;
int FIRST_RUN_EEPROM_ADDRESS = 0;
// push button pins
#define button_4 15 //to open the door
#define button_1 16 //for increaments
#define button_2 17 //for decrements
#define button_3 18 //for set
#define servoPin 13
//#define stepPin 5
// #define directionPin 4
#define IN1 26
#define IN2 25
#define IN3 33
#define IN4 32
#define buzzerPin 23
int stepSpeed = 5;
int ledcChannel = 0;
bool button_1_sts = 1;
bool lastbutton_1_sts = 1;
bool button_2_sts = 1;
bool lastbutton_2_sts = 1;
bool button_3_sts = 1;
bool lastbutton_3_sts = 1;
bool button_4_sts = 1;
bool lastbutton_4_sts = 1;
unsigned int year = 2024;
unsigned int month = 9;
unsigned int date = 18;
unsigned int hour = 17;
unsigned int minute = 17;
unsigned int seconds = 20;
int angle = 0;
unsigned int steps_per_revolution = 200;
const int debounceDelay = 50;
int currentDay = 1;
int currentHour = 1;
int currentMinute = 1;
// var to set alarms
unsigned int med_1_day;
unsigned int med_1_hour;
unsigned int med_1_minute;
unsigned int med_2_day;
unsigned int med_2_hour;
unsigned int med_2_minute;
unsigned int med_3_day;
unsigned int med_3_hour;
unsigned int med_3_minute;
unsigned int med_4_day;
unsigned int med_4_hour;
unsigned int med_4_minute;
unsigned int med_5_day;
unsigned int med_5_hour;
unsigned int med_5_minute;
unsigned int med_6_day;
unsigned int med_6_hour;
unsigned int med_6_minute;
unsigned int med_7_day;
unsigned int med_7_hour;
unsigned int med_7_minute;
unsigned int med_8_day;
unsigned int med_8_hour;
unsigned int med_8_minute;
unsigned int door_open_time = 0;
unsigned int c_day;
unsigned int c_hour;
unsigned int c_minute;
bool alrm_1_sts = false;
bool alrm_2_sts = false;
bool alrm_3_sts = false;
bool alrm_4_sts = false;
bool alrm_5_sts = false;
bool alrm_6_sts = false;
bool alrm_7_sts = false;
bool alrm_8_sts = false;
//select_med_var
unsigned int med_no = 1;
void setup() {
Serial.begin(115200);
Wire.begin();
lcd.init();
lcd.backlight();
if(!rtc.begin()){
Serial.println("Couldn't find the RTC");
while(1);
}
else if( !rtc.isrunning()){
Serial.println("RTC is not running");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
else
Serial.println("RTC initialized");
lcd.setCursor(5,0);
lcd.print("WELCOME");
delay(2000);
pinMode(button_1, INPUT_PULLUP);
pinMode(button_2, INPUT_PULLUP);
pinMode(button_3, INPUT_PULLUP);
while (FIRST_RUN_EEPROM_ADDRESS == 0) {
initializing_date_time();
FIRST_RUN_EEPROM_ADDRESS = 1;
}
// for the servo motor
myservo.attach (servoPin);
pinMode(button_4,INPUT_PULLUP);
// for the stepper motor
// pinMode(stepPin, OUTPUT);
// pinMode(directionPin, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(buzzerPin, OUTPUT);
button_3_sts = 1;
lastbutton_3_sts = 1;
}
void loop() {
activate_alarms();
date_time();
button_3_sts = digitalRead(button_3);
if (button_3_sts == HIGH && lastbutton_3_sts == LOW){
if(digitalRead(button_3) == HIGH){
select_medicine();
put_medicine();
set_alarms();
}
}
lastbutton_3_sts = button_3_sts;
}
void initializing_date_time(){
// for year
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Set Year");
lcd.setCursor(9,0);
lcd.print(year);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH)
{
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
lcd.clear();
year++;
lcd.setCursor(0,0);
lcd.print("Set Year");
lcd.setCursor(9,0);
lcd.print(year);
}
}
else if( lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
year--;
lcd.setCursor(0,0);
lcd.print("Set Year");
lcd.setCursor(9,0);
lcd.print(year);
}
}
else if( lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
//for month
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Set Month");
lcd.setCursor(10,0);
lcd.print(month);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH)
{
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
lcd.clear();
month++;
lcd.setCursor(0,0);
lcd.print("Set Month");
lcd.setCursor(10,0);
lcd.print(month);
}
}
else if( lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
month--;
lcd.setCursor(0,0);
lcd.print("Set Month");
lcd.setCursor(10,0);
lcd.print(month);
}
}
else if( lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
//for date
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Set Date");
lcd.setCursor(9,0);
lcd.print(date);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH)
{
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
lcd.clear();
date++;
lcd.setCursor(0,0);
lcd.print("Set Date");
lcd.setCursor(9,0);
lcd.print(date);
}
}
else if( lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
date--;
lcd.setCursor(0,0);
lcd.print("Set Date");
lcd.setCursor(9,0);
lcd.print(date);
}
}
else if( lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
// for hour
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Set Hour");
lcd.setCursor(9,0);
lcd.print(hour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH)
{
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
lcd.clear();
hour++;
lcd.setCursor(0,0);
lcd.print("Set Hour");
lcd.setCursor(9,0);
lcd.print(hour);
}
}
else if( lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
hour--;
lcd.setCursor(0,0);
lcd.print("Set Hour");
lcd.setCursor(9,0);
lcd.print(hour);
}
}
else if( lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
// for minute
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Set Minute");
lcd.setCursor(11,0);
lcd.print(minute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH)
{
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
lcd.clear();
minute++;
lcd.setCursor(0,0);
lcd.print("Set Minute");
lcd.setCursor(11,0);
lcd.print(minute);
}
}
else if( lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
minute--;
lcd.setCursor(0,0);
lcd.print("Set Minute");
lcd.setCursor(11,0);
lcd.print(minute);
}
}
else if( lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
// for seconds
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Set Seconds");
lcd.setCursor(12,0);
lcd.print(seconds);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH)
{
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
lcd.clear();
seconds++;
lcd.setCursor(0,0);
lcd.print("Set Seconds");
lcd.setCursor(12,0);
lcd.print(seconds);
}
}
else if( lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
seconds--;
lcd.setCursor(0,0);
lcd.print("Set Seconds");
lcd.setCursor(12,0);
lcd.print(seconds);
}
}
else if( lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
}
void date_time(){
DateTime now = rtc.now();
lcd.setCursor(0, 0);
lcd.print(now.year());
lcd.print('/');
if (now.month() < 10) lcd.print("0");
lcd.print(now.month());
lcd.print('/');
if (now.day() < 10) lcd.print("0");
lcd.print(now.day());
lcd.setCursor(0, 1);
if (now.hour() < 10) lcd.print("0");
lcd.print(now.hour());
lcd.print(':');
if (now.minute() < 10) lcd.print("0");
lcd.print(now.minute());
lcd.print(':');
if (now.second() < 10) lcd.print("0");
lcd.print(now.second());
}
void select_medicine(){
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
DateTime now = rtc.now();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SET MEDICINE");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Select Medicine");
lcd.setCursor(4,1);
lcd.print(med_no);
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if (button_1_sts == HIGH && lastbutton_1_sts == LOW){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
med_no++;
if(med_no > 8){
med_no = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Select Medicine");
lcd.setCursor(4,1);
lcd.print(med_no);
}
}
else if (button_2_sts == HIGH && lastbutton_2_sts == LOW){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
med_no--;
if(med_no < 1){
med_no = 8;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Select Medicine");
lcd.setCursor(4,1);
lcd.print(med_no);
}
}
else if (button_3_sts == HIGH && lastbutton_3_sts == LOW){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
}
void put_medicine(){
lastbutton_4_sts = 1;
button_4_sts = 1;
switch (med_no){
case 1 :
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 2 :
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
//unsigned int angle_stepper = 45;
cw_rotate(45);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(45);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 3 :
while(true){
button_4_sts = digitalRead(button_4);
if( lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
cw_rotate(90);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(90);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 4 :
while(true){
button_4_sts = digitalRead(button_4);
if( lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
cw_rotate(135);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(135);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 5 :
while(true){
button_4_sts = digitalRead(button_4);
if( lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
cw_rotate(180);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(180);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 6 :
while(true){
button_4_sts = digitalRead(button_4);
if( lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
cw_rotate(225);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(225);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 7 :
while(true){
button_4_sts = digitalRead(button_4);
if( lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
cw_rotate(270);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(270);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
case 8 :
while(true){
button_4_sts = digitalRead(button_4);
if( lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if (digitalRead(button_4) == HIGH){
cw_rotate(315);
door_open();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
ccw_rotate(315);
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
void door_open(){
for(angle = 0 ; angle <= 45 ; angle++){
myservo.write(angle);
delay(20);
}
}
void door_close(){
for(angle = 45 ; angle >=0 ; angle--){
myservo.write(angle);
delay(20);
}
}
void cw_rotate(int angle_stepper) {
// Calculate the number of steps
int stepsToMove = ( angle_stepper/45) * 64;
// HIGH for cw
//digitalWrite(directionPin, HIGH);
for (int stepcount = 1; stepcount <= stepsToMove; stepcount++) {
stepForward();
}
}
void ccw_rotate(int angle_stepper){
// Calculate the number of steps
int stepsToMove = ( angle_stepper/45) *64;
// LOW for ccw
//digitalWrite(directionPin, LOW);
for (int stepcount = 1; stepcount <= stepsToMove; stepcount++) {
// digitalWrite(stepPin, HIGH);
// delayMicroseconds(1000);
// digitalWrite(stepPin, LOW);
// delayMicroseconds(1000);
stepBackward();
}
}
void set_alarms(){
// DateTime now = rtc.now();
// currentDay = now.day();
// currentHour = now.hour();
// currentMinute = now.minute();
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
switch (med_no){
case 1 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 1");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_1_day = currentDay;
med_1_hour = currentHour;
med_1_minute = currentMinute;
alrm_1_sts = true;
break;
case 2 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 2");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentHour = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_2_day = currentDay;
med_2_hour = currentHour;
med_2_minute = currentMinute;
alrm_2_sts = true;
break;
case 3 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 3");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_3_day = currentDay;
med_3_hour = currentHour;
med_3_minute = currentMinute;
alrm_3_sts = true;
break;
case 4 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 4");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_4_day = currentDay;
med_4_hour = currentHour;
med_4_minute = currentMinute;
alrm_4_sts = true;
break;
case 5 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 5");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_5_day = currentDay;
med_5_hour = currentHour;
med_5_minute = currentMinute;
alrm_5_sts = true;
break;
case 6 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 6");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_6_day = currentDay;
med_6_hour = currentHour;
med_6_minute = currentMinute;
alrm_6_sts = true;
break;
case 7 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 7");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_7_day = currentDay;
med_7_hour = currentHour;
med_7_minute = currentMinute;
alrm_7_sts = true;
break;
case 8 :
while(true){
date_time();
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("SET ALARM");
lcd.setCursor(2,1);
lcd.print("For Medicine 8");
delay(1000);
//to set alarm date
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentDay++;
if(currentDay > 31){
currentDay = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentDay--;
if(currentDay < 1){
currentDay = 31;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Date:");
lcd.setCursor(10,0);
lcd.print(currentDay);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm hour
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentHour++;
if(currentHour > 24){
currentHour = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentHour--;
if(currentHour < 1){
currentHour = 24;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Hour:");
lcd.setCursor(10,0);
lcd.print(currentHour);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_3_sts = digitalRead(button_3);
if(lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_3) == HIGH){
//to set alarm minute
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
button_1_sts = 1;
lastbutton_1_sts = 1;
button_2_sts = 1;
lastbutton_2_sts = 1;
button_3_sts = 1;
lastbutton_3_sts = 1;
while(true){
button_1_sts = digitalRead(button_1);
button_2_sts = digitalRead(button_2);
button_3_sts = digitalRead(button_3);
if(lastbutton_1_sts == LOW && button_1_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_1) == HIGH){
currentMinute++;
if(currentMinute > 60){
currentMinute = 1;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_2_sts == LOW && button_2_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
currentMinute--;
if(currentMinute < 1){
currentMinute = 60;
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
}
}
else if (lastbutton_3_sts == LOW && button_3_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_2) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Set Minute:");
lcd.setCursor(12,0);
lcd.print(currentMinute);
break;
}
}
lastbutton_1_sts = button_1_sts;
lastbutton_2_sts = button_2_sts;
lastbutton_3_sts = button_3_sts;
}
break;
}
}
lastbutton_3_sts = button_3_sts;
}
lcd.clear();
med_8_day = currentDay;
med_8_hour = currentHour;
med_8_minute = currentMinute;
alrm_8_sts = true;
break;
}
}
void activate_alarms(){
DateTime now = rtc.now();
c_day = now.day();
c_hour = now.hour();
c_minute = now.minute();
if(c_day == med_1_day && c_hour == med_1_hour && c_minute == med_1_minute && alrm_1_sts){
Serial.println("alarm for medicine 1 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_1_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_1_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_2_day && c_hour == med_2_hour && c_minute == med_2_minute && alrm_2_sts ){
Serial.println("alarm for medicine 2 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_2_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_2_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_3_day && c_hour == med_3_hour && c_minute == med_3_minute && alrm_3_sts){
Serial.println("alarm for medicine 3 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_3_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_3_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_4_day && c_hour == med_4_hour && c_minute == med_4_minute && alrm_4_sts){
Serial.println("alarm for medicine 4 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_4_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_4_sts =false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_5_day && c_hour == med_5_hour && c_minute == med_5_minute && alrm_5_sts){
Serial.println("alarm for medicine 5 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_5_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_5_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_6_day && c_hour == med_6_hour && c_minute == med_6_minute && alrm_6_sts){
Serial.println("alarm for medicine 6 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_6_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_6_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_7_day && c_hour == med_7_hour && c_minute == med_7_minute && alrm_7_sts){
Serial.println("alarm for medicine 7 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_7_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_7_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
if(c_day == med_8_day && c_hour == med_8_hour && c_minute == med_8_minute && alrm_8_sts){
Serial.println("alarm for medicine 8 activated");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time for med");
activate_buzzer();
cw_rotate(45);
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_open();
door_open_time = millis();
deactivate_buzzer();
lastbutton_4_sts = 1;
button_4_sts = 1;
while(true){
button_4_sts = digitalRead(button_4);
if(lastbutton_4_sts == LOW && button_4_sts == HIGH){
delay(debounceDelay);
if(digitalRead(button_4) == HIGH){
door_close();
alrm_8_sts = false;
break;
}
}
else if (millis()-door_open_time >= 60000){
door_close();
alrm_8_sts = false;
break;
}
lastbutton_4_sts = button_4_sts;
}
break;
}
}
lastbutton_4_sts = button_4_sts;
}
}
}
void activate_buzzer() {
digitalWrite(buzzerPin, HIGH);
}
void deactivate_buzzer() {
digitalWrite(buzzerPin, LOW);
}
void stepForward() {
// Sequence for rotating the stepper forward
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(stepSpeed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(stepSpeed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(stepSpeed);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(stepSpeed);
}
void stepBackward() {
// Sequence for rotating the stepper backward
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(stepSpeed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(stepSpeed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(stepSpeed);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(stepSpeed);
}