// Define pins for each sensor and LED
const int trigPin = 9;
const int echoPin = 10;
const int temperaturePin = A1;
const int ultrasonicLEDPin = 3;
const int temperatureLEDPin = 6;
//const int soilMoistureLEDPin = 5;
void setup() {
// Initialize Serial Monitor
Serial.begin(9600);
// Set pin modes
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(temperaturePin, INPUT);
pinMode(ultrasonicLEDPin, OUTPUT);
pinMode(temperatureLEDPin, OUTPUT);
}
void loop() {
// Read and print Ultrasonic sensor data and control LED
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
Serial.print("Ultrasonic Sensor: Distance = ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 10) {
digitalWrite(ultrasonicLEDPin, HIGH);
} else {
digitalWrite(ultrasonicLEDPin, LOW);
}
const float BETA = 3950;
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature Sensor: Value = ");
Serial.print(celsius);
Serial.println(" C");
if (celsius > 30) {
digitalWrite(temperatureLEDPin, HIGH);
} else {
digitalWrite(temperatureLEDPin, LOW);
}
// Add a delay between readings
delay(1000);
}