#include <LiquidCrystal.h>
#include <DHT.h>
#include <RGBLed.h>
#define DHTPIN 2
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//pin configuration
RGBLed led(3, 4, 5, RGBLed::COMMON_CATHODE); //setup RGB led pin and type
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
//Setup
void setup() {
lcd.begin(16, 2);
Serial.begin(115200);
lcd.setCursor(0, 0); // set the cursor to column 0, line1
lcd.print("DHT sensor");
lcd.clear();
dht.begin();
Serial.println(F("Start reading sensor"));
lcd.print("Start reading sensor");
delay(1000);
lcd.clear();
}
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!"));
lcd.setCursor(0, 0); // set the cursor to column 0, line1
lcd.print("Failed to read from DHT sensor!");
delay(1000);
lcd.clear();
return;
}
if ((temperature < 33.0) && (temperature >= 28.0)) {
// Writing the LED colour pins HIGH or LOW to set colours
led.setColor(RGBLed::RED);
delay(100);
}
if ((temperature < 28.0) && (temperature >= 23.0)) {
led.setColor(RGBLed::GREEN);
delay(100);
}
if ((temperature < 18.0) && (temperature >= 13.0)) {
led.setColor(RGBLed::BLUE);
delay(100);
}
if (temperature <= 13.0) {
led.setColor(RGBLed::MAGENTA);
delay(100);
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temperature);
Serial.println(F("°C "));
lcd.setCursor(0, 0);
lcd.print("Humidity:");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp:");
lcd.print(temperature);
lcd.print("DegC");
// Wait a few seconds between measurements.
delay(2000);
}