#include <Arduino.h>
#include <ArduinoJson.h>
#include <HTTPClient.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include "time.h"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define DATABASE_URL "https://upcpre202401si572ws71iotstatus-default-rtdb.firebaseio.com/.json"
HTTPClient client;
#define MQ2_ANALOG 36
#define MQ2_DIGITAL 18
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Hello, ESP32!");
pinMode(MQ2_ANALOG, INPUT);
pinMode(MQ2_DIGITAL, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Connecting to ");
lcd.setCursor(0, 1);
lcd.print("WiFi ");
// WiFi Setup
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.println("Online");
delay(500);
lcd.clear();
lcd.setCursor(0,0);
lcd.println("Connecting to");
lcd.setCursor(0, 1);
lcd.println("Firebase...");
client.begin(DATABASE_URL);
int httpResponseCode = client.GET();
if (httpResponseCode > 0) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.println("Connected");
}
delay(1000);
configTime(-9000, -9000, "1.south-america.pool.ntp.org");
lcd.clear();
}
void loop() {
Serial.print("Analog: ");
int MQ2_ANALOG_X = analogRead(MQ2_ANALOG);
int MQ2_ScaledValue = map(MQ2_ANALOG_X,0,4095,0,100);
Serial.println(MQ2_ScaledValue);
Serial.print("Digital :");
Serial.println(digitalRead(MQ2_DIGITAL));
delay(1000);
lcd.setCursor(1,0);
lcd.print("Detector de gases");
lcd.setCursor(1,1);
lcd.print("%Gas: ");
lcd.print(MQ2_ScaledValue);
lcd.println(" PPM ");
delay(5);
}