// YWROBOT
// Compatible with the Arduino IDE 1.0
// Library version:1.1
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define DHTPIN 4
float cm;
float inches;
#define DHTTYPE DHT22
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns
// the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}
void setup()
{
dht.begin();
sensor_t sensor;
dht.temperature().getSensor(&sensor);
dht.humidity().getSensor(&sensor);
delayMS = sensor.min_delay / 1000;
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("--> Distance <--");
lcd.setCursor(3,1);
lcd.print("-->temp <--");
delay(3000);
lcd.clear();
}
void loop()
{
cm = 0.0344/2 * readUltrasonicDistance(3, 2);
inches = (cm / 2.54);
lcd.setCursor(0,0);
lcd.print("Inches");
lcd.setCursor(4,0);
lcd.setCursor(12,0);
lcd.print("cm");
lcd.setCursor(1,1);
lcd.print(inches, 1);
lcd.setCursor(11,1);
lcd.print(cm, 1);
lcd.setCursor(14,1);
delay(2000);
lcd.clear();
delay(delayMS);
sensors_event_t event;
dht.temperature().getEvent(&event);
dht.humidity().getEvent(&event);
//if (isnan(event.temperature)) {
lcd.setCursor(0,0);
lcd.print("temp");
lcd.print(event.temperature);
lcd.setCursor(4,0);
lcd.setCursor(0,1);
lcd.print("humidity");
lcd.print(event.relative_humidity);
lcd.setCursor(4,0);
delay(1000);
lcd.clear();
}