#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd1(0x27,16,2);
LiquidCrystal_I2C lcd2(0x27,16,2);
LiquidCrystal_I2C lcd3(0x27,16,2);
LiquidCrystal_I2C lcd4(0x27,16,2);
#include <HCSR04.h>
byte triggerPin = 12;
byte echoPin = 11;
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN,DHTTYPE);
int mov;
String mov_est;
int time = 1000;
int timeSetUp = 1500;
void setup() {
pinMode (7, INPUT);
dht.begin();
HCSR04.begin(triggerPin, echoPin);
welcome(lcd1);
welcome(lcd2);
welcome(lcd3);
welcome(lcd4);
}
void loop() {
// SENSORES
float t = dht.readTemperature(); // DHT temperatura
float h = dht.readHumidity(); // DHT humedad
mov = digitalRead(7); // PIR
if (mov == HIGH) {
mov_est = "Si";
} else {
mov_est = "No";
}
double* distances = HCSR04.measureDistanceCm(); // HCSR04
// LCD_I2C
mostrarInfoLCD(lcd1,"Temperatura",t,"C"); // DHT temperatura
mostrarInfoLCD(lcd2,"Humedad",h,"%"); // DHT humedad
mostrarInfoLCD(lcd3,"Movimiento",mov_est,"detectado"); // PIR
mostrarInfoLCD(lcd4,"Distancia",distances[0],"cm"); // HCSR04
}
void mostrarInfoLCD (LiquidCrystal_I2C lcd, String description, double value, String unit) {
mostrarInfoLCD(lcd,description,String(value, 2),unit);
}
void mostrarInfoLCD (LiquidCrystal_I2C lcd,String description, String value, String unit) {
lcd.setCursor(0,0);
lcd.print(description);
lcd.print(":");
lcd.setCursor(0,1);
lcd.print(value);
lcd.print(" ");
lcd.print(unit);
delay(time);
lcd.clear();
}
void welcome(LiquidCrystal_I2C lcd){
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.println("Bienvenidos ");
lcd.setCursor(5, 1);
lcd.print("a la USAT");
delay(timeSetUp);
lcd.clear();
}