#define BLYNK_TEMPLATE_ID "TMPL2-91R31Kz"
#define BLYNK_TEMPLATE_NAME "proyecto IOT"
#define BLYNK_AUTH_TOKEN "NUxmQ5zz6wbQi9MiIqwFjdjIW7At_FEm"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Tu Auth Token de Blynk
char auth[] = "NUxmQ5zz6wbQi9MiIqwFjdjIW7At_FEm";
// Configuración de la red WiFi
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Pines analógicos donde están conectados los divisores de voltaje con los termistores
const int thermistorPin1 = 34; // Primer termistor
const int thermistorPin2 = 35; // Segundo termistor
// Resistencia fija del divisor de voltaje (en ohmios)
const int fixedResistor = 10000;
// Constantes del termistor (debes ajustarlas según tu termistor específico)
const float beta = 3950.0; // valor beta del termistor
const float nominalResistance = 10000.0; // resistencia nominal del termistor a 25 grados C
const float nominalTemperature = 25.0; // temperatura nominal (en Celsius)
void setup() {
// Inicializa el serial para depuración
Serial.begin(115200);
// Mensaje de inicio en la consola serial
Serial.println("Inicializando...");
// Inicializa la conexión a Blynk
Blynk.begin(auth, ssid, pass);
// Mensaje de conexión a Blynk en la consola serial
Serial.println("Conectado a Blynk");
}
void loop() {
// Ejecuta Blynk
Blynk.run();
// Leer y enviar datos del primer termistor
leerYEnviarTermistor(thermistorPin1, V1, "Primer termistor");
// Leer y enviar datos del segundo termistor
leerYEnviarTermistor(thermistorPin2, V0, "Segundo termistor");
// Espera un segundo antes de la siguiente lectura
delay(1000);
}
void leerYEnviarTermistor(int pin, int virtualPin, const char* nombreTermistor) {
// Lee el valor analógico del termistor
int analogValue = analogRead(pin);
// Imprime el valor analógico leído
Serial.print(nombreTermistor);
Serial.print(" - Valor analógico: ");
Serial.println(analogValue);
// Convierte el valor analógico a resistencia del termistor
float resistance = (float)fixedResistor / ((4095.0 / analogValue) - 1.0);
// Imprime la resistencia calculada
Serial.print(nombreTermistor);
Serial.print(" - Resistencia del termistor: ");
Serial.println(resistance);
// Usa la ecuación de Steinhart-Hart para convertir la resistencia a temperatura
float temperature = 1.0 / (1.0 / (nominalTemperature + 273.15) + (1.0 / beta) * log(resistance / nominalResistance)) - 273.15;
// Imprime la temperatura calculada
Serial.print(nombreTermistor);
Serial.print(" - Temperatura (C): ");
Serial.println(temperature);
// Envía la temperatura a Blynk
Blynk.virtualWrite(virtualPin, temperature);
}