//Auto Audio Cooler
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int Amp = 16; // Digital pin connected to the DHT sensor
const int AmpRelay = 17; // Digital pin connected to the relay
const int Cable = 13; // Digital pin connected to the DHT sensor
const int CableRelay = 12; // Digital pin connected to the relay
// Define Sensor
#define DHTTYPE DHT22
DHT dhtAmp(Amp, DHTTYPE);
DHT dhtCable(Cable, DHTTYPE);
void setup() {
Serial.begin(115200);
dhtAmp.begin();
dhtCable.begin();
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
// Initialize Relays
pinMode(AmpRelay, OUTPUT);
pinMode(CableRelay, OUTPUT);
}
void loop() {
delay(5000);
//read amp temperature
float ta = dhtAmp.readTemperature();
int fa = ta * 1.8 + 32; // Convert Celsius to Fahrenheit
if (isnan(fa) || isnan(ta))
{
Serial.println("Failed to read from Amp sensor!");
}
//read wire temperature
float tw = dhtCable.readTemperature();
int fw = tw * 1.8 + 32; // Convert Celsius to Fahrenheit
if (isnan(fw) || isnan(tw))
{
Serial.println("Failed to read from Wire sensor!");
}
// Trigger the relay if the wire temperature exceeds 75 degrees Fahrenheit
if (fa >= 75) {
Serial.println("Amp Relay activated!"); // Debugging message
digitalWrite(AmpRelay, HIGH); // Activate the relay
} else {
Serial.println("Amp Relay deactivated!"); // Debugging message
digitalWrite(AmpRelay, LOW); // Deactivate the relay
}
// Trigger the relay if the amp temperature exceeds 100 degrees Fahrenheit
if (fw >= 100) {
Serial.println("Wire Relay activated!"); // Debugging message
digitalWrite(CableRelay, HIGH); // Activate the relay
} else {
Serial.println("Wire Relay deactivated!"); // Debugging message
digitalWrite(CableRelay, LOW); // Deactivate the relay
}
// clear display
display.clearDisplay();
// display amp tempreature
display.setTextSize(2);
display.setCursor(1,1);
display.print("Amp: ");
display.setTextSize(2);
display.setCursor(60,1);
display.print(fa);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("F");
// display wire tempreature
display.setTextSize(2);
display.setCursor(1,35);
display.print("Wire: ");
display.setTextSize(2);
display.setCursor(60,35);
display.print(fw);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("F");
display.display();
}