/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: "Smart Thermostat"
- Source Code NOT compiled for: Arduino Uno
- Source Code created on: 2024-11-03 08:12:39
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* Auto matic light ofg */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include //https://github.com/matmunk/DS18B20
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
/***** DEFINITION OF DIGITAL INPUT PINS *****/
const uint8_t Pratham_DS18B20_DQ_PIN_D2 = 2; // Data pin for DS18B20
const uint8_t LIGHT_PIN = 13; // Define the pin for the automatic light (LED)
/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
// Create an instance of the DS18B20 class
DS18B20 ds(Pratham_DS18B20_DQ_PIN_D2);
// Define alarm temperature thresholds
#define LOW_ALARM 20
#define HIGH_ALARM 25
// Define the address of the DS18B20 sensor
uint8_t address[] = {40, 250, 31, 218, 4, 0, 0, 52};
void setup(void)
{
// Initialize serial communication at 9600 baud rate
Serial.begin(9600);
// Set the data pin mode for the DS18B20 sensor
pinMode(Pratham_DS18B20_DQ_PIN_D2, INPUT);
// Set the light pin mode as output
pinMode(LIGHT_PIN, OUTPUT);
digitalWrite(LIGHT_PIN, LOW); // Ensure the light is off initially
// Select the DS18B20 device using its address
if (ds.select(address)) {
// Set alarm thresholds for the temperature sensor
ds.setAlarms(LOW_ALARM, HIGH_ALARM);
} else {
// Print an error message if the device is not found
Serial.println("Device not found!");
}
}
void loop(void)
{
// Check if the DS18B20 device is selected
if (ds.select(address)) {
// Check if the temperature alarm has been triggered
if (ds.hasAlarm()) {
// Print a warning message with the current temperature
Serial.print("Warning! Temperature is ");
Serial.print(ds.getTempC());
Serial.println(" C");
// Turn on the light (LED) if the temperature exceeds the high alarm threshold
if (ds.getTempC() > HIGH_ALARM) {
digitalWrite(LIGHT_PIN, HIGH); // Turn on the light
}
} else {
// Turn off the light if the temperature is within the safe range
digitalWrite(LIGHT_PIN, LOW); // Turn off the light
}
} else {
// Print an error message if the device is not found
Serial.println("Device not found!");
}
// Wait for 10 seconds before the next loop iteration
delay(10000);
}
/* END CODE */