#include <Arduino.h>
#include <ArduinoJson.h>
#include <DHT.h>
#include <HTTPClient.h>
#include <LiquidCrystal_I2C.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
HTTPClient client;
const int green = 2;
#define DHTPIN 15
#define DHTTYPE DHT22
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
void setup() {
Serial.begin(500);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
//Wait for connection
while (WiFi.status() != WL_CONNECTED){
delay(500);
}
client.begin("https://wokwiproyecto-default-rtdb.firebaseio.com/SensorTemp/.json");
client.addHeader("Content-Type", "application/json");
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Connecting to ");
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(green, OUTPUT);
}
void loop() {
String json;
StaticJsonDocument<200> doc;
long sure, mesafe;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
mesafe = (sure / 2) / 29.1;
if( mesafe > 200 || mesafe < 0){
LCD.clear();
LCD.setCursor(0, 0);
LCD.println("Distancia segura");
digitalWrite(green, HIGH);
delay(8000); // Wait for 1000 millisecond(s)
digitalWrite(green, LOW);
delay(1000); // Wait for 1000 millisecond(s)
doc["Sensor"] = "DHT22";
doc["Temperatura"] = mesafe;
doc["Status"] = "Distancia segura";
doc["LED"] = "Encendido";
serializeJson(doc, json);
client.PATCH(json);
}else{
LCD.clear();
LCD.setCursor(0, 0);
LCD.print(mesafe);
LCD.println(" cm");
digitalWrite(green, HIGH);
delay(8000); // Wait for 1000 millisecond(s)
digitalWrite(green, LOW);
delay(1000); // Wait for 1000 millisecond(s)
doc["Sensor"] = "DHT22";
doc["Temperatura"] = mesafe;
doc["Status"] = "Distancia no segura";
doc["LED"] = "Encendido";
serializeJson(doc, json);
client.PATCH(json);
}
String payload = client.getString();
Serial.println(payload);
delay(500);
}