#include <WiFi.h>
#include <DHT.h>
const int numLeds = 3;
const int ledPins[numLeds] = {2, 4, 5};
const int DHT_PIN = 15;
const int numSensors = 4;
const int sensors[numSensors] = {32, 33, 34, 35};
int values[numSensors];
int choice = 0;
int total = 0;
int percent = 0;
#define DHT_TYPE DHT22
#define DHT_PIN 15
DHT dht(DHT_PIN, DHT_TYPE);
const int potentiometerPin = 25;
void setup() {
Serial.begin(9600);
dht.begin();
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int j = 0; j < numSensors; j++) {
values[j] = analogRead(sensors[j]);
}
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (!isnan(temperature) && !isnan(humidity)) {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
} else {
Serial.println("Failed to read data from DHT sensor");
}
total = values[0] + values[1] + values[2] + values[3];
percent = map(total, 0, 16383, 0, 100);
Serial.printf("The value is: %d %% \n", percent);
int windAnemometerValue = analogRead(potentiometerPin);
int windSpeed = map(windAnemometerValue, 0, 4095, 0, 100);
Serial.print("Wind Speed: ");
Serial.print(windSpeed);
Serial.println(" %");
if (percent > 70 || windSpeed > 70) {
Serial.println("Heavy");
choice = 1;
} else if (percent < 30 || windSpeed < 30) {
Serial.println("Drizzle");
choice = 2;
} else {
Serial.println("Medium");
choice = 3;
}
switch (choice) {
case 1:
for (int k = 0; k < 3; k++) {
digitalWrite(ledPins[k], HIGH);
delay(500);
digitalWrite(ledPins[k], LOW);
delay(500);
}
break;
case 2:
for (int k = 0; k < 2; k++) {
digitalWrite(ledPins[k], HIGH);
delay(500);
digitalWrite(ledPins[k], LOW);
delay(500);
}
break;
case 3:
digitalWrite(ledPins[2], HIGH);
delay(500);
digitalWrite(ledPins[2], LOW);
delay(500);
break;
}
delay(1000);
}