#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 1 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
// Initialize the LCD connected to pins 27, 26, 25, 24, 23, 22
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
const int ledPin1 = 13;
const int ledPin2 = 12;
unsigned long previousMillis = 0;
const long interval = 1000; // interval at which to blink (milliseconds)
void setup()
{
lcd.begin(16, 2); // initialize the lcd
dht.begin();
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Reading temperature or humidity takes about 250 milliseconds!
float h = dht.readHumidity();
float t = dht.readTemperature(true);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(h);
lcd.print(" %");
}
// blink LED1 every 0.5 seconds
if (currentMillis % 500 == 0) {
digitalWrite(ledPin1, !digitalRead(ledPin1));
}
// blink LED2 every 1 second
if (currentMillis % 1000 == 0) {
digitalWrite(ledPin2, !digitalRead(ledPin2));
}
}