#include "DHT.h"
#define ultrasonicTriggerPin 5
#define ultrasonicEchoPin 6
#define temperatureSensorPin 7
int tankFullLedPin = 4;
int tankNotFullLedPin = 3;
int normalTempLedPin = 8;
int overheatLedPin = 9;
int temp = 0;
float duration_us = 0;
float distance_cm = 0;
DHT dht22(temperatureSensorPin, DHT22);
void setup() {
Serial.begin(9600);
dht22.begin();
pinMode(ultrasonicTriggerPin, OUTPUT);
pinMode(ultrasonicEchoPin, INPUT);
pinMode(temperatureSensorPin, INPUT);
pinMode(tankFullLedPin, OUTPUT);
pinMode(tankNotFullLedPin, OUTPUT);
pinMode(normalTempLedPin, OUTPUT);
pinMode(overheatLedPin, OUTPUT);
}
void loop() {
// Read ultrasonic sensor
// Read temperature sensor
// Perform sensor data processing
digitalWrite(ultrasonicTriggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(ultrasonicTriggerPin, LOW);
duration_us = pulseIn(ultrasonicEchoPin, HIGH);
distance_cm = 0.017 * duration_us;
temp = dht22.readTemperature();
Serial.print("Themperature:");
Serial.println(temp);
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
// Example logic for controlling LEDs
if (distance_cm <= 50) {
digitalWrite(tankFullLedPin, HIGH);
digitalWrite(tankNotFullLedPin, LOW);
} else {
digitalWrite(tankFullLedPin, LOW);
digitalWrite(tankNotFullLedPin, HIGH);
}
if (temp >= 60) {
digitalWrite(normalTempLedPin, LOW);
digitalWrite(overheatLedPin, HIGH);
} else {
digitalWrite(normalTempLedPin, HIGH);
digitalWrite(overheatLedPin, LOW);
}
delay(500);
}