#include <DHT.h>;
//I2C LCD:
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display,Pls check your lcd.
//Constants
#define trigPin 10
#define echoPin 9
#define DHTPIN 7 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
//Variables
//int chk;
int h; //Stores humidity value
int t; //Stores temperature value
void setup()
{
Serial.begin(9600);
Serial.println("Temperature & Humidity Sensor and Distance Test");
delay(1000);
dht.begin();
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.begin(16, 2);
}
void loop()
{
//Read data and store it to variables h (humidity) and t (temperature)
// Reading temperature or humidity takes about 250 milliseconds!
h = dht.readHumidity();
t = dht.readTemperature();
//Print temp and humidity values to serial monitor
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %, Temp: ");
Serial.print(t);
Serial.println(" ° Celsius");
// set the cursor to (0,0):
// print from 0 to 9:
lcd.setCursor(0, 0);
lcd.println(" Now Temperature ");
lcd.setCursor(0, 1);
lcd.print("T:");
lcd.print(t);
lcd.print("C");
lcd.setCursor(11, 1);
lcd.print("H:");
lcd.print(h);
lcd.print("%");
delay(1000);
delay(1000); //Delay 1 sec.
lcd.clear();
{
Serial.print("Distance: ");
lcd.setCursor(0, 0);
lcd.println(" Distance ");
lcd.setCursor(1, 1);
float duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2)*0.034207;
if (distance >= 300 || distance <= 2){
lcd.print("Done!");
delay(1000);
lcd.clear();
lcd.print("Out of ranger!");
}
else {
//lcd.setBacklight(distance);
lcd.print("Distance ");
lcd.setCursor(0, 1);
lcd.print("D:");
lcd.print(distance);
lcd.print(" cm");
delay(1000);
}
delay(100);
lcd.clear();
}
}