//Librerías
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ArduinoJson.h>
#include <ArduinoHttpClient.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include "DHTesp.h"
//Valores Fijos
//Sensor
int pin_sensor = 16;
const int DHT_PIN = 15;
OneWire oneWire(pin_sensor);
DallasTemperature sensor(&oneWire);
DHTesp dhtSensor;
//Base de datos
const char* SSID = "Wokwi-GUEST";
const char* clave = "";
const char* database = "https://653c0881d5d6790f5ec7c70b.mockapi.io/Temperatura/Usuario1/temperaturas";
#define usuario "an234"
#define port 1
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
sensor.begin();
WiFi.begin(SSID, clave, 1);
while (WiFi.status()!= WL_CONNECTED){
delay(10000);
Serial.println("Conexión fallida. Reintentando...");
}
Serial.println("Conexión exitosa a red WiFi");
}
//Toma de lectura
void loop() {
sensor.requestTemperatures();
float lectura = sensor.getTempCByIndex(0);
Serial.print("Temperatura corporal");
Serial.print(lectura);
Serial.println("°C");
delay(3000);
//Conexión a base de datos
String cadena = String(lectura);
WiFiClient WiFi;
HttpClient httpClient = HttpClient(WiFi,usuario, port);
Serial.println("Enviando datos a la base de datos");
String contentType = "application/json";
////////////////////////////////////
HTTPClient http;
http.begin(database);
http.addHeader("Content-Type", "application/json");
// Crear un objeto JSON
StaticJsonDocument<200> jsonDocument;
jsonDocument["temp"] = lectura;
// Convertir el objeto JSON a una cadena
String jsonData;
serializeJson(jsonDocument, jsonData);
int httpResponseCode = http.POST(jsonData);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println(httpResponseCode);
Serial.println(response);
}
else{
Serial.print("Error al enviar datos en POST: ");
Serial.println(httpResponseCode);
}
http.end();
delay(1000);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.print("Temperature (DHT22): ");
Serial.print(data.temperature);
Serial.println("°C");
Serial.print("Humidity (DHT22): ");
Serial.print(data.humidity);
Serial.println("%");
delay(3000);
}