/* DHT Temperature and Humidity Sensor */
#include "DHT.h"
#define DHTPIN 23
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
float localHum = 0;
float localTemp = 0;
/* LED */
#define LED_PIN 2
// Analog Input (Changed from 36 to 34)
#define ANALOG_PIN_0 34
int analog_value = 0;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
dht.begin();
Serial.println("System initialized.");
}
void loop() {
analog_value = analogRead(ANALOG_PIN_0);
getDHT();
// Print data to Serial Monitor
Serial.print("Temperature: ");
Serial.print(localTemp);
Serial.print(" °C | Humidity: ");
Serial.print(localHum);
Serial.print(" % | Analog: ");
Serial.print(analog_value);
Serial.print(" | LED: ");
Serial.println(digitalRead(LED_PIN) ? "ON" : "OFF");
// Optional: Control LED with analog threshold
if (analog_value > 2000) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
delay(2000); // Delay for readability
}
/***************************************************
* Get indoor Temp/Hum data
****************************************************/
void getDHT() {
float tempIni = localTemp;
float humIni = localHum;
localTemp = dht.readTemperature();
localHum = dht.readHumidity();
if (isnan(localHum) || isnan(localTemp)) {
localTemp = tempIni;
localHum = humIni;
Serial.println("Failed to read from DHT sensor!");
}
}