// Ejemplo
#include <DHTesp.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_ILI9341.h>
#include <SPI.h>
// Definición de pines para la pantalla ILI9341
#define TFT_CS 5
#define TFT_DC 4
#define TFT_RST 22
// Configuración del objeto de la pantalla ILI9341
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
const int DHT_PIN = 27;
const int LED_PIN = 13; //Rojo
const int LED_PIN_1 = 12; //Verde
const int LED_PIN_2 = 14; //Azul
DHTesp dhtSensor;
OneWire ourWire(17); //Se establece el pin 4 del ESP32 para la lectura del sensor
DallasTemperature DS18B20(&ourWire); //Se declara una variable u objeto para el sensor
void setup() {
Serial.begin(9600);
DS18B20.begin(); //Se inicia el sensor
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
// Inicialización de la pantalla ILI9341
tft.begin();
tft.setRotation(3); // Ajusta la rotación según tu orientación deseada
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
DS18B20.requestTemperatures(); //Se envía el comando para leer la temperatura
float tem= DS18B20.getTempCByIndex(0); //Se obtiene la temperatura en ºC
// Limpia la pantalla
tft.fillScreen(ILI9341_BLACK);
// Muestra la temperatura y humedad en la pantalla
tft.setCursor(10, 10);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("Temperatura: ");
tft.print(data.temperature, 2);
tft.print(" C");
tft.setCursor(10, 40);
tft.print("Humedad: ");
tft.print(data.humidity, 1);
tft.print(" %");
//Si la temperatura es mayor que 35 o menor que 12.
//Y si la humedad es mayor que 70 o menor que 40.
if ((data.temperature > 35 || data.temperature < 12 ) and
(data.humidity > 70 || data.humidity < 40)) {
digitalWrite(LED_PIN, HIGH);
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, HIGH);
}
//temperatura mayor que 35 o menor que 12 y la humedad entre 70 y 40
else if (data.temperature > 35 || data.temperature < 12){
digitalWrite(LED_PIN, HIGH);
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, LOW);
}
else if (data.humidity > 70 || data.humidity < 40){
digitalWrite(LED_PIN, LOW);
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, HIGH);
}
else{
digitalWrite(LED_PIN, LOW);
digitalWrite(LED_PIN_1, HIGH);
digitalWrite(LED_PIN_2, LOW);
}
Serial.println("Temperatura: " + String(data.temperature, 2) + "°C");
Serial.println("Humedad: " + String(data.humidity, 1) + "%");
Serial.print("Temperatura= ");
Serial.print(tem);
Serial.println(" °C");
delay(10000);
}
Loading
ds18b20
ds18b20
Loading
ds18b20
ds18b20