// Este simulador es un proyecto liderado por el profesor Ramiro Lopera
// de la Institución Universitaria Pascual Bravo.
// Cualquier inquietud puede contactarlo a [email protected]
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
#include "DHT.h"
#define DHTPIN A1 //Conectamos el Sensor DHT11 al pin A1
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Crear caracteres nuevos https://maxpromer.github.io/LCD-Character-Creator/
// Estos caracteres no funcionan en este simulador pero si en el LCD real
// solo los invocas por el id generado más adelante en el setup
byte Grados[] = { B11100, B10100, B11100, B00011, B00100, B00100, B00100, B00011};
byte Humedad[] = { B00100, B00100, B01110, B01110, B11011, B11111, B11111, B01110};
void setup()
{
// ASIGNAMOS ID a los íconos personalizados, para invocarlos en el LCD se usa
// lcd.write(#) reemplace # con el ID a mostrar.
lcd.createChar(0, Grados);
lcd.createChar(1, Humedad);
// SE INICIA PUERTO SERIAL DE COMUNICACION 9600 bits por segundo :
Serial.begin(9600);
dht.begin(); // Inicia el sensor
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("PRUEBA DE SENSORES");
lcd.setCursor(0,1);
lcd.print("@ramirolopera");
delay (3000);
lcd.setCursor(0,0);
lcd.print("I.U.Pascual Bravo");
lcd.setCursor(0,1);
lcd.print("Electiva 1: IoT");
delay (3000);
lcd.backlight(); //no APAGA la luz de fondo lcd.backlight();
lcd.clear();//Elimina todos los simbolos del LCD
Serial.println("Humedad;Temperatura;");
}
///////////////////////////////////////////////////
// RUTINAS CÍCLICAS DEL ARDUINO
void loop()
{
// LEE LOS DATOS GENERADOS POR LOS SENSORES
int h = dht.readHumidity(); // Lee la humedad h y temperatura t
int t = dht.readTemperature(); int f = dht.readTemperature(true);
// presentamos los datos del sensor de luz
//////////////////ENVÍA DATOS A PUERTO SERIAL /////////////////////////////////
Serial.print(h); Serial.print(";");
Serial.print(t); Serial.println(";");
//////////////////ENVÍA DATOS A LA PANTALLA /////////////////////////////////
// lcd.clear();//Elimina todos los simbolos del LCD
lcd.setCursor(0, 0); //Posiciona la primera letra en linea 1
// DIBUJA SÍMBOLO GOTA DE AGUA Y PRESENTA HUMEDAD ////
lcd.print("Hum: "); lcd.print(h); lcd.print("% "); //Escribe la humedad
// PRESENTA TEMPERATURA ////
lcd.setCursor(0, 1); lcd.print("Temp: "); lcd.print(t);lcd.write(0); //Escribe la temperatura Celcius
/// FIN DEL SENSOR TEMPERATURA
delay (1000);
}