This my whole code.Please check and give me feed back.
#include "Protocentral_MAX30100.h" //for PPG MAX30100 sensor library.
#include <Wire.h> //for I2C Comm library.
#include "RTClib.h" //for RTC library
#include <SPI.h> //for SPI comm. library.
#include <SD.h> //for SD Card library.
#include <Q2HX711.h> //for pressure sensor library HX710.
RTC_DS1307 RTC; //RTC_DS1307 class object declaration
const int chipSelect = 53; //chip select pin for arduino mega 2560
#define REPORTING_PERIOD_MS 100 //delay of 100ms
uint32_t tsLastReport = 0;
int sensorValue=0; // store the gsr sensor value
int ecgs =0; // store the ecg sensor value
//-----------------declaration for MAX30100 PPG Sensor----------------
MAX30100 sensor;
uint8_t data_len=8;
uint8_t DataPacketHeader[15];
volatile long IRR,REDD;
//-----------------declaration for pressur HX710 Sensor----------------
const byte hx711_data_pin = 3;
const byte hx711_clock_pin = 2;
int avg_val = 0; // variable for stroing raw data.
float pressure, pres_PSI; //before pressure declared as double
Q2HX711 hx711(hx711_data_pin, hx711_clock_pin);
int state =0; //Create empty string called incomingData
const int air_pump = 5; //Pin 7 for connecting Mini Air Pump via ULN2803A driver
const int solenoid = 4; //Pin 6 for connecting solenoid Air valve via ULN2803A driver
void setup() {
Serial.begin(9600);
RTC.begin();
if (! RTC.isrunning())
Serial.println("RTC is running!");
RTC.adjust(DateTime(DATE, TIME));
while (!Serial)
{
;
}
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect))
{
Serial.println("Card failed, or not present");
while (1);
}
Serial.println("Card initialized.");
Wire.begin();
sensor.begin(pw1600, i50, sr100 );
sensor.printRegisters();
pinMode(8, INPUT); // Setup for leads off detection LO +
pinMode(9, INPUT); // Setup for leads off detection LO -
pinMode(air_pump, OUTPUT);
pinMode(solenoid, OUTPUT);
digitalWrite(air_pump, HIGH); //Inflates pressure cuff
digitalWrite(solenoid, LOW);
}
void loop() {
if (Serial.available())
{
state = Serial.parseInt();
if(state == 1)
{
// Serial.println("Activated");
digitalWrite(air_pump, LOW); //Deflates pressure cuff
digitalWrite(solenoid, HIGH);
}
if (state == 2) {
// Serial.println("deactivated");
digitalWrite(air_pump, HIGH); //Inflates pressure cuff
digitalWrite(solenoid, LOW);
}
}
String dataString = "";
String dataStringA = "";
String dataStringB = "";
String dataStringC = "";
String dataStringD = "";
dataString = String(REDD,DEC);
dataStringA = String(IRR,DEC);
dataStringB = String(sensorValue);
dataStringC = String(pres_PSI);
dataStringD = String(ecgs);
DateTime now = RTC.now();
sensor.readSensor();
IRR=sensor.IR;
REDD=sensor.RED;
DataPacketHeader[0] = 0x0A;
DataPacketHeader[1] = 0xFA;
DataPacketHeader[2] = (uint8_t) (data_len);
DataPacketHeader[3] = (uint8_t) (data_len>>8);
DataPacketHeader[4] = 0x02;
DataPacketHeader[5] = REDD;
DataPacketHeader[6] = REDD>>8;
DataPacketHeader[7] = REDD>>16;
DataPacketHeader[8] = REDD>>24;
DataPacketHeader[9] = IRR;
DataPacketHeader[10] = IRR>>8;
DataPacketHeader[11] = IRR>>16;
DataPacketHeader[12] = IRR>>24;
DataPacketHeader[13] = 0x00;
DataPacketHeader[14] = 0x0b;
//
// for(int i=0; i<15; i++) // transmit the data
// {
// Serial.write(DataPacketHeader[i]);
// }
//-------------GSR Sensor Signal Reading-------------------------------
sensorValue=analogRead(A0);
//-------------Pressure Sensor Signal Reading--------------------------
avg_val =(hx711.read()/100);// add multiple ADC readings
//-------------ECG Sensor Signal Reading--------------------------
ecg();
//Serial.println(sensor.getPartID());
// Serial.println(REDD,HEX);
// Serial.println(IRR,HEX);
// Serial.print(now.day(), DEC),Serial.print('/');
// Serial.print(now.month(), DEC),Serial.print('/');
// Serial.print(now.year(), DEC),Serial.print(' ');
// Serial.print(now.hour(), DEC),Serial.print(':');
// Serial.print(now.minute(), DEC),Serial.print(':');
// Serial.print(now.second(), DEC),Serial.println();
// Serial.println(REDD,DEC);
// Serial.println(IRR,DEC);
// Serial.print("GSR = "),Serial.println(sensorValue);
// Serial.print("Pressure = "),Serial.println(pres_PSI);
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
File dataFile = SD.open("tuesday.txt", FILE_WRITE);
if (dataFile)
{
dataFile.print(now.day(), DEC);
dataFile.print('/');
dataFile.print(now.month(), DEC);
dataFile.print('/');
dataFile.print(now.year(), DEC);
dataFile.print(' ');
dataFile.print(now.hour(), DEC);
dataFile.print(':');
dataFile.print(now.minute(), DEC);
dataFile.print(':');
dataFile.print(now.second(), DEC);
dataFile.print(',');
dataFile.print(dataString );
dataFile.print(',');
dataFile.print(dataStringA);
dataFile.print(',');
dataFile.print(dataStringB);
dataFile.print(',');
dataFile.print(dataStringC);
dataFile.print(',');
dataFile.println(dataStringD);
Serial.println(dataStringD);
dataFile.close();
// Serial.println(dataString);
}
else
{
Serial.println("error opening datalog.txt");
}
tsLastReport = millis();
}
}
void ecg() {
if((digitalRead(8) == 1) || (digitalRead(9) == 1)){ //check if leads are removed
//Serial.println("leads off!");
}
else
{
ecgs = analogRead(A1);
//Serial.println(ecgs);
}
}