/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#include <WiFi.h>
#include "DHTesp.h"
//#include "Thingspeak.h"
#define GPIO2 2
const int DHT_PIN = 15;
DHTesp dhtSensor;
const char *ssid = "Red_Aldaz";
const char *password = "RedAldaz1234";
WiFiClient client;
// Seteo de datos para ThingSpeak.com
const int channelID = 1758758;//Identificación del canal (se obtiene de ThingSpeak.com)
String writeAPIKey = "0M1BZ4L44ZST6NAN"; //Clave de escritura API para su canal (se obtiene de ThingSpeak.com)
const char* server = "api.thingspeak.com";
const int intervalo = 15000; // Publicar datos cada 15 segundos( el mínimo es 15 segundos en la versión de prueba)
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
delay(10);
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);//Seteo red wifi y contraseña
pinMode(2, OUTPUT);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
if (client.connect(server, 80)) {//conexión a travez del puerto 80
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
// Construir el cuerpo de solicitud de API
String body = "field1=";
body += String(data.temperature);
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + writeAPIKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(body.length());
client.print("\n\n");
client.print(body);
client.print("\n\n");
Serial.println("%. Send to Thingspeak.");
}
client.stop();
delay(1000);
}