#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial sim(2,13); //here 2-tx,13-rx for modem
const int Threshold = 65;
String number = "0679255630";
#define buzzer A3
void setup()
{
Serial.begin(9600);
Serial.println("system initialize");
pinMode(buzzer,OUTPUT);
pinMode(4,OUTPUT);
digitalWrite(buzzer,LOW);
digitalWrite(4,LOW);
lcd.init();
lcd.backlight();
welcomeDisplay();
sim.begin(9600);
delay(1000);
digitalWrite(4,HIGH);
}
void loop()
{
home_display();
for(uint8_t i=0;i<3;i++)
{
if(scanfinger(i) > Threshold)
{
Buzzer(i+1);
alert_Display(i);
SendMessage(i);
}
}
delay(500);
}
void Buzzer(uint8_t num)
{
for(uint8_t j=0;j<num;j++)
{
digitalWrite(buzzer,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
delay(250);
}
}
uint8_t scanfinger(uint8_t num)
{
unsigned int reading = map(analogRead(num),0,1023,0,100);
Serial.print("reading:");
Serial.print(num);
Serial.print(" is:");
Serial.println(reading);
return reading;
}
void SendMessage(uint8_t num)
{
sim.println("AT+CMGF=1\r");
delay(100);
sim.println("AT+CMGS=\"" + number + "\"\r");
delay(500);
if(num==0){sim.println("I NEED FOOD");}
else if(num==1) {sim.println("I NEED TO GO TOILET");}
else if(num==2) {sim.println("I FEEL PAIN");}
delay(500);
sim.println((char)26);
delay(500);
Serial.println("SMS SENT SUCCESSFULLY");
}
void welcomeDisplay()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PARTIENT DEMAND");
lcd.setCursor(0,1);
lcd.print(" MONITORING ");
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("INITIALIZING SYS");
lcd.setCursor(0,1);
lcd.print("PLEASE WAIT ....");
}
void home_display()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PARTIENT DEMAND");
lcd.setCursor(0,1);
lcd.print(" MONITORING ");
}
void alert_Display(uint8_t num)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(">>> !ALERT! <<<<");
lcd.setCursor(0,1);
if(num==0){lcd.print("I NEED FOOD");}
if(num==1){lcd.print("I NEED TOILET");}
if(num==2){lcd.print("I FEEL PAIN");}
}SMART BLIND SHOES CIRCUIT $ SIMULATION