fbpx

THEME : Autonomous robot which take care of elders at emergency situation and the robot is able to provide elders with proactive personalized suggestions at the right time to stay sharp, active and engaged.

 

THE PROBLEM: Generally an elders faces different health issues and needs proper care . There are not enough care takers by their relatives to meet the growing needs of their necessity and saving elders from lives of loneliness

 

THE TEAMS APPROACH TO THE PROBLEM:-

 

Creating an assistant robot Which takes care about the elder people which measures pulse rate, temperature in the emergency situation it sends the information to nearby hospitals and family members through GSM module. This will also provide necessary requirements to the elder people and pregnant people.

 

SURVEY

As we are gone through a survey for the what’s the ratio of death of elder people .As in this survey we are known that due to lack of care toward older people they are effected the various psychology disorder in order to over come from this situation We are coming forward with the solution.

What inspired you to select the problem?

 

Nowadays as people are not getting time in their busy schedule to take care of the old parents so the old people are only doing all their works including going out to get the groceries and for other purposes while they are alone while going to store or somewhere else .So we wants to introduce an interactive bot .That can helps at emergency situation.

 

 

 

Innovative part of the problem?

 

The most innovative part of our robot is it can go near the patient so the patient can take the needs required by them. Another innovative part is that whenever the old people’s pulse or temperature is abnormal then immediately it will give intimation to the nearby hospitals, so the person can be saved from the risk.  

 

 

Working process

[Part 1 – of geriatric]

So keeping in the mind to take care of the elder people at the time of normal and emergency situation. At first the user needs to give the command to activate the robot ,then the first ultrasonic sensor in bot  can detect any hurdles in the path with in range of 40cm, If there is no hurdles in range then it proceed to IR sensors. Two IR sensors are arranged in our bot. They can control the motor here black strip acts as a reference as no object .if IR sensors records 1,0 that means 1 st ir sensor will be on black strip and second it sensor will be on the floor .. then wheels will move in right direction, if IR sensors record 0,1 then wheels will rotate in left direction . Our robot works in 3 degrees of freedom(forward,left,right)by this process the bot can reach to the person then the ultrasonic sensors are rotated in 180 degrees by servo because ultrasonic sensor detects the hurdle(body of the bot) then it stop proceeding of IR sensors then the person will take his required items from bot.

[Part 2 – of geriatric]

 At the emergency situation :

We arrange a belt like structure to the hand which has a capable of handle pulse meter, arduino board, and temperature sensor and gsm module. When the user arranges the belt in his hand and on the module it can take the values of temperature and pulse if at all the readings in abnormal stage the gsm sends the information to the near hospitals and the user can save their life. 

CAD DESGIN OF GERIATRIC

Block diagram of geriatric part -1

Practical desgin of geriatric

Block diagram of part 2 geriatric

Proteus simulation of GERIATRIC part -2 it indiactes the location and temparature ,pulse ,readings and sends to the gsm .The gsm sends to the near by hospitals and neighbhours

part 1 source code (can operated by blynk app)

#define BLYNK_PRINT Serial

#include<ESP8266WiFi.h>

#include<BlynkSimpleEsp8266.h>

#include<Servo.h>

Servo myservo;

Servo myservo1;

char auth[] = "TD9K3wturvjBC8UcfVp_SJH22U6ItpCQ";

char ssid[] = "mountdynamics";

char pass[] = "12345678";

int trig =D8;

int echo= 10;

int pos=0;

long distance;

long duration;

long duration1;

long distance1;

const int left_irsensor = D7;

const int right_irsensor = D6;//Says that the right IR sensor is connected to pin 8. const is for saying that it will always be connected to pin 8. int is for integer. 8 is an integer, so we use int. After int, a variable or a constant is declared. In this case, it is a constant. A variable can change values while a constant cannot.

const int motor_rightFront = D1;//the wire of the right motor which controls its forward motion is connected to pin 3

const int motor_rightBack = D0;//the wire of the motor which controls its backward motion is connected to pin 3

const int motor_leftFront = D2;//The varables can be named however you want. I decided to go along with simple names.

const int motor_leftBack = D3;




void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

Blynk.begin(auth, ssid, pass);

myservo.attach(D5); //for control of u.s

myservo1.attach(D4);//for control of door

pinMode(motor_rightBack, OUTPUT);// forwoard rotation of right motor

pinMode(motor_rightFront, OUTPUT);//backwoard rotation of right motor

pinMode(motor_leftBack, OUTPUT);//backwoard rotation of back motor

pinMode(motor_leftFront, OUTPUT);//forwoard rotation of back motor

pinMode(left_irsensor, INPUT);//left_irsensor

pinMode(right_irsensor, INPUT);//right_irsensor

pinMode(trig,OUTPUT);

pinMode(trig1,OUTPUT);

pinMode(echo1,INPUT);

pinMode(echo,INPUT);

}




void loop() {




 Blynk.run();

 sonic();

// put your main code here, to run repeatedly:

int right_sensor = digitalRead(right_irsensor);//declaring a variable called right_sensor to take the reading from the right IR sensor. We are using digitalRead() since it is only a white and black surface. It will read LOW for black and HIGH for white./

int left_sensor = digitalRead(left_irsensor);

int reading = distance;

if(reading>29)

{//If the reading is more than 29 cm, then the robot can run.

  if(right_sensor == LOW && left_sensor == HIGH) //the right sensor detects white and the left sensor detects black.

  { 

   left();//turn left.

   } 

      if(right_sensor == HIGH && left_sensor == LOW)

      {

      right();

      }

      if(right_sensor == HIGH && left_sensor == HIGH)

      {

       yay();

        }

       if(right_sensor == LOW && left_sensor == LOW)

       {

        forward();

         }

}




else

{

yay();//if it is not more than 29 cm, then it will stop. yay() is defined as a function below.

 

}

}




}




void right(){//void is used to define functions. This function will make the robot turn right.

digitalWrite(motor_rightFront, LOW);//make the right motor stop moving forward

digitalWrite(motor_rightBack,LOW );//make the right motor stop moving backward

digitalWrite(motor_leftFront, LOW);//make the left motor stop moving forward

digitalWrite(motor_leftBack, HIGH);//make the left motor stop moving backward

}




void left(){

digitalWrite(motor_rightFront, LOW);

digitalWrite(motor_rightBack, HIGH);

digitalWrite(motor_leftFront, LOW);

digitalWrite(motor_leftBack, LOW);




}




void forward(){

digitalWrite(motor_rightFront, LOW);

digitalWrite(motor_rightBack, HIGH);

digitalWrite(motor_leftFront, LOW);

digitalWrite(motor_leftBack, HIGH);




}




void yay(){ //This is to make it stop. stop is a function on its own, so I could not name this function stop.

digitalWrite(motor_rightFront, LOW);

digitalWrite(motor_rightBack, LOW);

digitalWrite(motor_leftFront, LOW);

digitalWrite(motor_leftBack, LOW);

}




void backward(){

digitalWrite(motor_rightFront, HIGH);

digitalWrite(motor_rightBack, LOW);

digitalWrite(motor_leftFront, HIGH);

digitalWrite(motor_leftBack, LOW);

}

void sonic() 

{

 digitalWrite(trig, LOW);

delay(2);

// Sets the trigPin on HIGH state for 10 micro seconds

digitalWrite(trig, HIGH);

delay(10);

digitalWrite(trig, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds

duration = pulseIn(echo, HIGH);

// Calculating the distance

distance= duration*0.034/2;

Serial.print("Distance: ");

Serial.println(distance);

}

BLYNK_WRITE(V1)




{




  myservo.write(param.asInt());




}

BLYNK_WRITE(V2)




{




 myservo1.write(param.asInt());




}

Part 2 ( software simulation)

#define USE_ARDUINO_INTERRUPTS true // Set-up low-level interrupts for most acurate BPM math.

#include <PulseSensorPlayground.h> // Includes the PulseSensorPlayground Library.

#define tempin A2

#include <TinyGPS.h>

#include <SoftwareSerial.h>

SoftwareSerial SIM900(2, 3); // configure software serial port (rx, tx)

TinyGPS gps;         //Creates a new instance of the TinyGPS object

// Variables

const int PulseWire = 0;      // PulseSensor PURPLE WIRE connected to ANALOG PIN 0

const int LED13 = 13;       // The on-board Arduino LED, close to PIN 13.

int Threshold = 550;        // Determine which Signal to "count as a beat" and which to ignore.

                  // Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.

                  // Otherwise leave the default "550" value.

PulseSensorPlayground pulseSensor; // Creates an instance of the PulseSensorPlayground object called "pulseSensor"

int val;




void setup()

{

  Serial.begin(9600);

  SIM900.begin(9600);




  pulseSensor.analogInput(PulseWire);

  pulseSensor.blinkOnPulse(LED13); //auto-magically blink Arduino's LED with heartbeat.

  pulseSensor.setThreshold(Threshold);

 

  // Double-check the "pulseSensor" object was created and "began" seeing a signal.

  if (pulseSensor.begin())

  {

    Serial.println("We created a pulseSensor Object !"); //This prints one time at Arduino power-up, or on Arduino reset.

  }




  pinMode(tempin, INPUT);




  Serial.print("Simple TinyGPS library v. ");

  Serial.println(TinyGPS::library_version());

  Serial.println("Testing GPS");

  Serial.println();




   

}

void loop()

{

 val = analogRead(tempin);

  float mv = (val / 1024.0) * 5000;

  float cell = mv / 10;

  Serial.print("TEMPARATURE = ");

  Serial.print(cell);

  Serial.print("*c");

  Serial.println();

  delay(1000);




   

  int myBPM = pulseSensor.getBeatsPerMinute(); // Calls function on our pulseSensor object that returns BPM as an "int".

                         // "myBPM" hold this BPM value now.




  if (pulseSensor.sawStartOfBeat()) // Constantly test to see if "a beat happened".

  {

    Serial.println("♥ A HeartBeat Happened ! "); // If test is "true", print a message "a heartbeat happened".

    Serial.print("BPM: ");            // Print phrase "BPM: "

    Serial.print(myBPM);            // Print the value inside of myBPM.

  }

   

  delay(20); // considered best practice in a simple sketch

  bool newData = false; //gps

  unsigned long chars;

  unsigned short sentenes, failed;

   int coordinates[2] = {0, 0};




  // For one second we parse GPS data and report some key values

  for (unsigned long start = millis(); millis() - start < 1000;)

  {

    while (Serial.available())

    {

      char c = Serial.read();

      //Serial.print(c);

      if (gps.encode(c))

        newData = true;

    }

  }




  if (newData) //If newData is true

  {

    float flat, flon;

    unsigned long age;

    gps.f_get_position(&flat, &flon, &age);

    coordinates[0] = flat;

    coordinates[1] = flon;

  }










  if (cell < 35 || cell > 40 || myBPM < 60 || myBPM > 125)




  {

    

  SIM900.println("ATD + +919845678903;"); // Enter mobile number here to call

  Serial.println("ATD + +91984678903;");

  delay(100);

  SIM900.println();

  delay(30);     // wait for 30 seconds...

  SIM900.println("ATH"); // disconnect after 30 second

  Serial.println("ATH");

  SIM900.println(" AT+CMGSF=1");

  SIM900.println("AT + CMGS =\" +917569951331\"\r");

  Serial.println("AT + CMGS =\" +917569951331\"\r");

  String datamessage = ("Temperature: " + String(cell) + "*C " + " BPM " + String(myBPM));

  SIM900.println(datamessage);

  Serial.println(datamessage);

  SIM900.println(coordinates[0]);

  Serial.print("longitude=");

  Serial.println( coordinates[0]);

  SIM900.println(coordinates[1]);

  Serial.print("latitude=");

  Serial.println(coordinates[1]);

  SIM900.println((char)26);




  }







   

   

}
1 Comment
  1. Gajala Washington 6 months ago

    Its just fabulous
    Idea of the concept is really good . And also it’s very much helpful in today’s life

Leave a reply

Your email address will not be published. Required fields are marked *

*

or

Log in with your credentials

or    

Forgot your details?

or

Create Account