#include <LiquidCrystal_I2C.h>
#include <HCSR04.h>
#include <DHT.h>
LiquidCrystal_I2C lcd(0x27,20,4);
LiquidCrystal_I2C lcd1(0x28,20,4);
#define DHTTYPE DHT22
#define DHTPIN 6
#define ECHO 2
#define TRIG 3
DHT dht(DHTPIN,DHTTYPE);
UltraSonicDistanceSensor sonicSensor(TRIG,ECHO,300);
float temp= 0; // Temperatur
float soundSpeed=0; // Schallgeschwindlichkeit
float Echotime=0;
float distance=0;
float distanceLib=0;
void setup() {
lcd.init();
lcd.backlight();
lcd1.init();
lcd1.backlight();
dht.begin();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop() {
temp= dht.readTemperature();
soundSpeed=calSoundSpeed(temp);
Echotime=getEchoTime();
distance=calcDistanceCM(soundSpeed,Echotime);
distanceLib=sonicSensor.measureDistanceCm();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(temp,1);
lcd.setCursor(0,1);
lcd.print("Speed: ");
lcd.print(soundSpeed,1);
lcd.setCursor(0,2);
lcd.print("Time: ");
lcd.print(Echotime,0);
lcd.setCursor(0,3);
lcd.print("Distance: ");
lcd.print(distance,1);
lcd1.setCursor(0,0);
lcd1.print("Temp: ");
lcd1.print(temp,1);
lcd1.setCursor(0,3);
lcd1.print("Distance: ");
lcd1.print(distanceLib,1);
}
float calSoundSpeed(float t)
{
return(331.5+0.6*t); //Schallgeschwindlichkeit m/s
}
float getEchoTime()
{
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);
return (pulseIn(ECHO,HIGH));
}
float calcDistanceCM(float speed,float echo)
{
speed/=10000; //Umrechnung m/s -> cm /µs
return(echo*speed/2);
}