#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTTYPE DHT22
#define DHTPIN 12
#define BUTTON_PIN 4
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(BUTTON_PIN, INPUT_PULLUP);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Initializing...");
LCD.setCursor(0,1);
LCD.print("Program...");
dht.begin();
}
void loop() {
// scanI2C();
// float h = dht.readHumidity();
// float t = dht.readTemperature();
if (digitalRead(BUTTON_PIN) == LOW) {
Serial.println("Button pressed");
getSensorReadings();
}
delay(100);
// Serial.println("Humedad: ");
// Serial.println(h);
// Serial.println("Temperatura: ");
// Serial.println(t);
// delay(2000);
}
void getSensorReadings() {
float h = dht.readHumidity();
float t = dht.readTemperature();
LCD.init();
LCD.setCursor(0, 0);
LCD.print("T:");
LCD.setCursor(3, 0);
LCD.print(t);
LCD.setCursor(0, 1);
LCD.print("H:");
LCD.setCursor(3, 1);
LCD.print(h);
}
void scanI2C() {
byte error, address;
int devices;
Serial.println("Scanning...");
devices = 0;
for (address = 1; address < 127; address++) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address ox");
if (address < 16) {
Serial.print("0");
}
Serial.println(address, HEX);
devices++;
} else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.println(address, HEX);
}
}
if (devices == 0) {
Serial.println("No I2C devices found\n");
} else {
Serial.println("Done");
}
delay(5000);
}