//035
#include <LiquidCrystal_I2C.h>
#include "DHTesp.h"
int lcdColumns = 16;
int lcdRows = 2;
int trigpin = 5;
int echoPin = 18;
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701
long duration;
float distanceCm;
float distanceInch;
const int PushButton = 19;
const int DHT_PIN = 15;
int ledr = 13;
int ledg = 12;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
DHTesp dhtSensor;
void setup(){
pinMode (ledr, OUTPUT);
pinMode (ledg, OUTPUT);
pinMode (trigpin, OUTPUT);
pinMode (echoPin, INPUT);
pinMode(DHT_PIN, OUTPUT);
pinMode(PushButton, INPUT);
lcd.init();
lcd.backlight ();
dhtSensor.setup (DHT_PIN, DHTesp :: DHT22);
}
void loop () {
int Push_button_state = digitalRead(PushButton);
if ( Push_button_state == HIGH)
{
digitalWrite(DHT_PIN, HIGH);
digitalWrite (trigpin, LOW);
delayMicroseconds (2);
digitalWrite (trigpin, HIGH);
delayMicroseconds (10);
digitalWrite (trigpin, LOW);
duration = pulseIn (echoPin, HIGH);
distanceCm = duration * SOUND_SPEED / 2;
distanceInch = distanceCm * CM_TO_INCH;
TempAndHumidity data = dhtSensor.getTempAndHumidity ();
int cel = data.temperature;
lcd.setCursor (0, 0);
lcd.print ("Temp:" + String (data.temperature, 2) + "° C");
delay (2000);
lcd.clear ();
lcd.setCursor (0,1);
lcd.print ("Humidity:" + String (data.humidity, 1) + "%");
delay (2000);
lcd.clear ();
delay (1000);
lcd.setCursor (0,0);
lcd.print (" Dist (cm): ");
lcd.println (distanceCm); lcd.setCursor (0,1);
lcd.print (" Dist (inch): ");
lcd.println (distanceInch);
delay (2000);
lcd.clear ();
}
else
{
digitalWrite(DHT_PIN, LOW);
}
}