#include "DHT.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,3,4,5,6,7);
#define DHTPIN 2
#define DHTTYPE DHT22
#define red 11
#define green 10
#define blue 9
// DHT 22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
lcd.begin(16,2);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
dht.begin();
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Check if any reads failed and exit early (to try again).
if (isnan(temperature) || isnan(humidity)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
if (temperature <11){
RGB_color(255,0,0); //red
lcd.print("temp is < 11");
delay(1000);
lcd.clear();
}
else if(temperature < 15){
RGB_color(255,100,0); //orange
lcd.print("temp is < 15");
delay(1000);
lcd.clear();
}
else if(temperature < 20){
RGB_color(255,255,0); //yellow
lcd.print("temp is < 20");
delay(1000);
lcd.clear();
}
else if (temperature < 25){
RGB_color(0,255,0); //green
lcd.print("temp is < 25");
delay(1000);
lcd.clear();
}
else if(temperature<35){
RGB_color(0,255,255); //cyan
lcd.print("temp is < 35");
delay(1000);
lcd.clear();
}
else if(temperature<40){
RGB_color(0,0,255); //blue
lcd.print("temp is < 40");
delay(1000);
lcd.clear();
}
else{
RGB_color(255,0,255); //purple
lcd.print("temp is > 40");
delay(1000);
lcd.clear();
}
if( humidity < 10){
lcd.print("dry");
delay(1000);
lcd.clear();
}
else if(humidity < 20){
lcd.print("not as dry");
delay(1000);
lcd.clear();
}
else if(humidity <30){
lcd.print("okay");
delay(1000);
lcd.clear();
}
else if (humidity < 40){
lcd.print("damp");
delay(1000);
lcd.clear();
}
else if (humidity < 50){
lcd.print("moist");
delay(1000);
lcd.clear();
}
else if(humidity < 60){
lcd.print("almost to LA");
delay(1000);
lcd.clear();
}
else if(humidity < 70){
lcd.print("florida weather");
delay(1000);
lcd.clear();
}
else if(humidity < 80){
lcd.print("wet");
delay(1000);
lcd.clear();
}
else if(humidity < 90){
lcd.print("louisiana weather");
delay(1000);
lcd.clear();
}
else{
lcd.print("raining");
delay(1000);
lcd.clear();
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temperature);
Serial.println(F("°C "));
// Wait a few seconds between measurements.
delay(3000);
}
void RGB_color(int red_light_value, int green_light_value, int blue_light_value){
analogWrite(red,255-red_light_value);
analogWrite(green,255-green_light_value);
analogWrite(blue, 255- blue_light_value);
}