Portada de la estación meteorológica Waveshare ESP32-S3 Touch LCD 7B
| | |

Mi estación meteorológica ESP32-S3 en una Waveshare de 7″: la primera versión autónoma

Los que llevamos años en la radioafición sabemos que el clima nunca es un dato menor. La presión atmosférica acompaña los cambios de propagación y la humedad castiga los conectores del patio de antenas. Además, la temperatura del shack marca la diferencia entre una tarde de DX cómoda y una sesión sudando frente al transceptor. Por eso armé este proyecto: una estación meteorológica ESP32-S3 de escritorio sobre la placa Waveshare ESP32-S3-Touch-LCD-7 Type B. Tiene pantalla táctil de 7 pulgadas, sensor interior BME280 opcional y un historial que se guarda en memoria y en tarjeta SD.

Te cuento qué hace, cómo está armada por dentro y en qué terminó. De hecho, esta fue mi primera versión autónoma de la pantalla del clima: el ESP32 hacía todo solo, desde pedir los datos hasta dibujar cada pantalla. Hoy esa misma pantalla de 7″ corre otro firmware, y al final te explico por qué.

Lo básico
PlacaWaveshare ESP32-S3-Touch-LCD-7 Type B
PantallaIPS de 7″, 1024×600, táctil capacitiva GT911
Memoria16 MB de flash y 8 MB de PSRAM
DatosWeatherAPI.com para el exterior; BME280 opcional para el interior
InterfazLVGL 8.3, con tres diseños distintos a lo largo del proyecto
EstadoSin cambios desde abril de 2026; hoy uso el kiosco

Qué es esta estación meteorológica y para qué sirve

Esta estación meteorológica ESP32-S3 combina dos fuentes de información. Por un lado, descarga los datos exteriores de WeatherAPI.com. Por otro lado, mide los datos interiores con un sensor BME280 propio. De WeatherAPI toma la temperatura y la sensación térmica, la humedad, la presión, el viento, el índice UV, la visibilidad y la nubosidad. También toma la salida y puesta del sol y de la luna, la fase lunar y la calidad del aire (índice EPA de Estados Unidos, PM2.5 y PM10). Por último, trae el pronóstico por hora y a 3 días.

Todo se presenta con la librería gráfica LVGL y se maneja con el dedo: nada de botones físicos.

Lo que hace la estación meteorológica ESP32-S3

  • Pantalla principal con la hora, la presión, la temperatura, la humedad, el estado del cielo y la salida y puesta del sol. Además, muestra el pronóstico a 3 días y una barra inferior con UV, calidad del aire, visibilidad y nubosidad.
  • Tres pestañas a las que se llega desde la pantalla principal: Detalle, Tendencias (pronóstico de las próximas 12 horas y de los próximos días) y Ajustes.
  • Tendencias a 3 horas de presión, temperatura y humedad, con su flecha de subida o bajada. Para quien opera HF, ver cómo cae la presión vale oro.
  • Historial de hasta 7 días con mínimos, máximos, promedios y lluvia total.
  • Vigilante de datos: en la barra superior te dice si los datos están al día o si ya son viejos (más de 30 minutos sin actualizarse). También avisa si el servicio no responde (después de 3 fallos seguidos) o si no hay WiFi. Así, nunca confundes un dato de hace una hora con uno fresco.
  • Hora por NTP con varios servidores de respaldo y resincronización periódica.
  • Pantalla siempre encendida y brillo con una curva que se siente pareja al subirlo o bajarlo.

La configuración, en la propia pantalla

Nada de computadora ni de recompilar para cambiar de red: la primera vez que enciendes la estación meteorológica ESP32-S3 arranca un asistente en pantalla. Primero eliges el idioma (español o inglés). Luego escanea las redes WiFi cercanas, tocas la tuya y escribes la contraseña con un teclado táctil. Incluso puedes guardar hasta 3 redes, para que se conecte a la que encuentre. Después capturas tu clave de WeatherAPI y tu ubicación. Finalmente, todo queda guardado en la memoria no volátil del ESP32.

De la versión oscura a los widgets

La interfaz de la estación meteorológica ESP32-S3 cambió bastante en el camino. Al principio tenía un diseño oscuro tipo glassmorphism, con paneles semitransparentes. Después hice una versión 2 con tema claro y tarjetas estilo widget. Por último llegó una versión 3, también clara, con la distribución que más me gustó y la barra de estado con el vigilante de datos. Las tres conviven en el código y se elige cuál compilar.

Cómo funciona por dentro la estación meteorológica

El firmware de la estación meteorológica ESP32-S3 está hecho con Arduino, el core 3 de Espressif y LVGL 8.3. Empezó con el core 2.0.17 y la librería GFX for Arduino 1.3.7, pero la versión final usa los controladores de Waveshare para la pantalla y el táctil, que necesitan el core 3. Respetar las versiones fue clave: con LVGL 9 este código no funciona.

La pantalla de 1024×600 trabaja con doble buffer y refresco completo para evitar el tearing. Es decir, ese corte horizontal que aparece cuando la imagen cambia a media actualización. De hecho, fue la única configuración estable en mis pruebas. Sobre todo, el uso de la PSRAM es clave: los buffers gráficos y el historial viven en esos 8 MB.

El historial es un buffer circular en PSRAM con capacidad para 1008 puntos: 7 días a razón de una muestra cada 10 minutos. Cada punto guarda la hora, la temperatura, la presión, la humedad y la lluvia. Además, cada muestra se escribe en la tarjeta SD en un archivo CSV por día. Por eso el historial sobrevive a los reinicios: al arrancar, el firmware recarga los últimos 7 días. En cuanto a los tiempos, se manejan sin delay(): el clima se actualiza cada 10 minutos, el sensor cada 30 segundos y la hora cada hora.

Lo que hay que saber

  • El proyecto está quieto. El último cambio es de abril de 2026. Al final quedó como una etapa de aprendizaje, no como un producto terminado.
  • Depende de un servicio externo. Los datos exteriores de esta estación meteorológica ESP32-S3 vienen de WeatherAPI, no de mi estación, y necesitas tu propia clave.
  • Mucho trabajo en el ESP32. Pedir datos, procesarlos y dibujar una interfaz completa a 1024×600 exige cuidar cada byte de memoria y cada cambio de pantalla.

En qué terminó: el kiosco

Ese último punto fue el que me hizo cambiar de enfoque. Cuando armé mi servidor propio para la estación Ecowitt, ya tenía todos los datos de mi estación (no los de un servicio externo) en un solo lugar. Así que la pantalla de 7″ pasó a correr otro firmware, el kiosco. Ahora el servidor arma cada pantalla como imagen y el ESP32-S3 solo la descarga y la muestra. Por lo tanto, agregar una pantalla nueva ya no requiere tocar el firmware. Su código sí es abierto: ecowitt-display-kiosk-xe1e.

El kiosco actual en la misma pantalla de 7": una réplica de la consola Ecowitt con los datos de mi estación
El kiosco actual en la misma pantalla de 7″: una réplica de la consola Ecowitt con los datos de mi estación

Conclusión

En resumen, esta estación meteorológica ESP32-S3 autónoma me enseñó LVGL, el manejo de la PSRAM, la tarjeta SD y cómo hacer una configuración amigable sin computadora. Mucho de eso lo aproveché después en el kiosco, que es el que hoy muestra los datos de clima.xe1e.net junto al transceptor. Si tienes una de estas Waveshare de 7″, cualquiera de los dos caminos es un excelente proyecto de fin de semana.

73 y DX de XE1E
Enrique

Recibe los artículos nuevos por correo

Te aviso cada vez que publique un artículo en el XE1E Radio Blog. Puedes darte de baja cuando quieras.

Loading

Entradas similares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *