// Define pins for sensors and outputs
const int heartRatePin = A0; // Heart rate sensor analog input
const int tempPin = A1; // Temperature sensor analog input
const int ledRed = 9; // RGB LED Red pin
const int ledGreen = 10; // RGB LED Green pin
const int ledBlue = 11; // RGB LED Blue pin
const int buzzerPin = 12; // Buzzer pin
// Threshold values for detecting "stress" state
const int heartRateThreshold = 600; // Adjust based on calibration
const float tempThreshold = 33.0; // Example threshold in Celsius
void setup() {
// Set up serial communication
Serial.begin(9600);
// Set LED and buzzer pins as outputs
pinMode(ledRed, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(ledBlue, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// Welcome message
Serial.println("Emotional State Detector Initialized");
}
void loop() {
// Read sensor values
int heartRateValue = analogRead(heartRatePin);
int tempValue = analogRead(tempPin);
// Convert temperature sensor reading (assuming LM35 sensor)
float temperature = (tempValue * 5.0 * 100) / 1024; // LM35 outputs 10mV per °C
// Output readings for debugging
Serial.print("Heart Rate Value: ");
Serial.println(heartRateValue);
Serial.print("Temperature (°C): ");
Serial.println(temperature);
// Determine emotional state based on sensor values
if (heartRateValue > heartRateThreshold && temperature > tempThreshold) {
// Stressed state
showStressedState();
Serial.println("State: Stressed");
} else {
// Calm state
showCalmState();
Serial.println("State: Calm");
}
// Wait for a second before next reading
delay(1000);
}
void showStressedState() {
// Turn on red LED and sound the buzzer for stressed state
digitalWrite(ledRed, HIGH);
digitalWrite(ledGreen, LOW);
digitalWrite(ledBlue, LOW);
tone(buzzerPin, 1000); // 1000 Hz tone for buzzer
}
void showCalmState() {
// Turn on green LED and turn off buzzer for calm state
digitalWrite(ledRed, LOW);
digitalWrite(ledGreen, HIGH);
digitalWrite(ledBlue, LOW);
noTone(buzzerPin); // Stop buzzer
}