Error and need URGENT help (E-health, GPS and Ardunio) --Thanks

Hello,

I try to combine GPS shield with Biometric collecting data shield and Arduino uno together just like attached photo. But now it seems not work as a whole. The codes are below. I now want to collect biometric data like pulse and Oxygen in Blood, temperature, and airflow also with GPS data.The libraries come from different resources and components were bought from different seller. And the photo is about error when I click verify.

I should mention that the GPS and E-health work with UNO very well when I individually put them on UNO to test .

This is the error

SoftwareSerial\SoftwareSerial.cpp.o: In function __vector_5': C:\Program Files (x86)\Arduino\libraries\SoftwareSerial/SoftwareSerial.cpp:319: multiple definition of __vector_5'
PinChangeInt\PinChangeInt.cpp.o:C:\Program Files
(x86)\Arduino\libraries\PinChangeInt/PinChangeInt.cpp:163: first defined here

Thanks for you help.

#include <eHealth.h>
#include <eHealthDisplay.h>
#include <PinChangeInt.h>
#include <PinChangeIntConfig.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>

int cont=0;
TinyGPS gps;
SoftwareSerial dline_gps(2, 3);
void getgps(TinyGPS &gps);

void setup(){
  Serial.begin(115200);
  //delay(1000);
  eHealth.initPulsioximeter();
  
  dline_gps.begin(4800);
  
  //Attach the inttruptions for using the pulsioximeter.   
  PCintPort::attachInterrupt(6, readPulsioximeter, RISING);
  
}

void loop(){

    //readPulsioximeter();
    Serial.print("PRbpm : ");
    Serial.println(eHealth.getBPM());
    
    Serial.print("    %SPo2 : ");
    Serial.println( eHealth.getOxygenSaturation());
    
    
    //Serial.print("\n");  
    Serial.println("=============================");
    
    delay(1000);

    getTemperature();
    delay(1000);

    getAirFlow();
    //delay(1000);
    
    while(dline_gps.available())     // While there is data on the RX pin...
    {
      int c = dline_gps.read();    // load the data into a variable...

      if(gps.encode(c))      // if there is a new valid sentence...
      {
        getgps(gps);         // then grab the data.
       }
      
     }
    
 
}



//Include always this code when using the pulsioximeter sensor
//=========================================================================
void readPulsioximeter(){  

  cont ++;
  
  if (cont == 50) { //Get only of one 50 measures to reduce the latency
    eHealth.readPulsioximeter();  
    cont = 0;
      }
    
        
  }

 void getTemperature(){
  float temperature = eHealth.getTemperature();
  Serial.print("Temperature (ºC): ");       
  Serial.print(temperature, 2);  
  Serial.println(""); 
}

 void getAirFlow(){
  for(int i=0; i<5; i++){
    int air = eHealth.getAirFlow();
    eHealth.airFlowWave(air);
    delay(1000);
  }
  Serial.print("\n"); 
}  


void getgps(TinyGPS &gps)
{
  // To get all of the data into varialbes that you can use in your code, 
  // all you need to do is define variables and query the object for the 
  // data. To see the complete list of functions see keywords.txt file in 
  // the TinyGPS and NewSoftSerial libs.
  
  // Define the variables that will be used
  float latitude, longitude;
  // Then call this function
  gps.f_get_position(&latitude, &longitude);
  // You can now print variables latitude and longitude
  Serial.print("Lat/Long: "); 
  Serial.print(latitude,5); 
  Serial.print(", "); 
  Serial.println(longitude,5);
  
  // Same goes for date and time
  int year;
  byte month, day, hour, minute, second, hundredths;
  gps.crack_datetime(&year,&month,&day,&hour,&minute,&second,&hundredths);
  // Print data and time
  Serial.print("Date: "); Serial.print(month, DEC); Serial.print("/"); 
  Serial.print(day, DEC); Serial.print("/"); Serial.print(year);
  Serial.print("  Time: "); Serial.print(hour, DEC); Serial.print(":"); 
  Serial.print(minute, DEC); Serial.print(":"); Serial.print(second, DEC); 
  Serial.print("."); Serial.println(hundredths, DEC);
  //Since month, day, hour, minute, second, and hundr
  
  // Here you can print the altitude and course values directly since 
  
  // there is only one value for the function
  Serial.print("Altitude (meters): "); Serial.println(gps.f_altitude());  
  
  // Same goes for course
  Serial.print("Course (degrees): "); Serial.println(gps.f_course()); 
  
  // And same goes for speed
  Serial.print("Speed(kmph): "); Serial.println(gps.f_speed_kmph());
  
 // Serial.println();
  
  // Here you can print statistics on the sentences.
  unsigned long chars;
  unsigned short sentences, failed_checksum;
  gps.stats(&chars, &sentences, &failed_checksum);
  //Serial.print("Failed Checksums: ");Serial.print(failed_checksum);
  //Serial.println(); Serial.println();

}

In the photo, the top one is E-health, the middle one is GPS, and the bottom one is Ardunio.

Hello

I googled SoftwareSerial and vector_5, since this seemed to be an interesting part of the error message. This took me to the following website, which is the project page for the PinChangeInt library.

https://code.google.com/p/arduino-pinchangeint/issues/detail?id=7

It looks like SoftwareSerial and PinChangeInt will not work together without changes to SoftwareSerial. There is some information on how to do this, but will need to do some analysis to to determine the exact changes needed and then make your own copy of the library.

Hope this helps.

Ray