MA
Mario Alcantud Bleda
🎨 Cambiar Tema
Mario Alcantud Bleda • 2º ME (Mantenimiento Electrónico)

ESP32 + DHT22 + OLED en el servidor

El ESP32 mide la temperatura y la humedad, las envía por Internet al servidor de Unicarlos y una página web las muestra en gráficas. Aquí tienes cómo funciona, paso a paso.

01 · Resumen

El recorrido de los datos

Cuatro piezas conectadas en cadena: el ESP32 manda los datos, el servidor los guarda y la página web los dibuja.

📟
ESP32Lee el DHT22 y lo muestra en la OLED
→
⚙️
php.phpRecibe el envío y añade la fecha y la hora
→
🗂️
json.jsonGuarda el historial de lecturas
→
📊
vista_previa.htmlLee el archivo y dibuja las gráficas
02 · Paso a paso

Cómo funciona cada etapa

Lo que ocurre desde que el sensor mide hasta que ves el dato en la pantalla.

  1. El ESP32 se conecta a la red WiFi

    Con WiFiManager no hace falta escribir la contraseña en el código: si no conoce la red, crea su propio punto de acceso y tú eliges la WiFi desde el móvil. Después se acuerda de ella.

  2. Mide con el DHT22 y lo enseña en la OLED

    El sensor da la temperatura y la humedad. La pantalla OLED las muestra al momento, sin necesidad de Internet.

  3. Indicas la ruta del servidor en php.h

    La constante serverUrl dice a qué dirección se envían los datos. Es la ruta completa hasta php.php (se explica en el apartado siguiente). La línea comentada con // era la dirección de pruebas en la red local.

  4. Cada 10 segundos envía los datos en formato JSON

    El ESP32 crea un mensaje JSON y lo manda al servidor con una petición HTTP. Es lo que ves en el monitor serie como «Enviando»:

    {"accion":"guardarTemHum","temp":25.9,"hum":46.5}
  5. php.php recibe el mensaje y lo guarda

    El servidor ejecuta el archivo PHP, que lee temp y hum, les añade la fecha y la hora y los guarda al final de json.json.

  6. El servidor responde al ESP32

    El monitor serie muestra la respuesta. Si aparece "exito":true y el mensaje «Datos guardados correctamente», el envío ha funcionado:

    {"exito":true,"mensaje":"Datos guardados correctamente","datos":{"temperatura":25.9,"humedad":46.5,"fecha_hora":"2026-10-22 08:44:55"}}
  7. vista_previa.html lee json.json y dibuja las gráficas

    La página pide el archivo cada 15 segundos y actualiza los valores actuales, las dos gráficas del tiempo, el termómetro y la dona de humedad. Por eso, cada envío nuevo del ESP32 aparece solo, sin recargar.

03 · La ruta

La dirección del servidor, por partes

Esta es la ruta que has puesto en serverUrl. Cada trozo indica un sitio distinto del servidor.

https://alumnos2026.unicarlos.es/mario_alcantud_bleda/MER/esp32_wifimanager_oled_dht22_php/php.php
Mismas carpetas, otra página: la vista previa está en la misma carpeta que php.php. Solo cambia el último trozo de la ruta a /vista_previa.html, y por eso json.json se encuentra sin indicar más ruta.
04 · Archivos

Los archivos de la carpeta

Los tres que has creado y esta página de presentación. Deben estar todos en la misma carpeta del servidor.

⚙️

php.php

Recibe los datos que manda el ESP32, les añade la fecha y la hora y los guarda. Responde con un mensaje de éxito.

🗂️

json.json

Es la «base de datos» sencilla: una lista con todas las lecturas (temperatura, humedad y fecha).

📊

vista_previa.html

La página con las gráficas. Lee json.json y se actualiza cada 15 segundos.

🏠

index.html

Esta página: explica el proyecto y enlaza a la vista previa.

05 · Consejos

Si algo no funciona

Los fallos más habituales al subir datos a un servidor.

🔐

Permisos

PHP debe poder escribir en json.json. Si el servidor responde con error al guardar, revisa los permisos del archivo.

🕒

Hora del servidor

En tu monitor serie son las 10:44 y el servidor guarda las 08:44: va con la hora universal, dos horas por detrás de España.

📈

El archivo crece

Cada envío añade una lectura y json.json no deja de crecer. De vez en cuando conviene vaciarlo o guardar solo las últimas.

🌐

Misma carpeta

La vista previa busca json.json junto a ella. Si los mueves a carpetas distintas, no encontrará los datos.