Función: drawHeartbeat()
Cada 500 ms alterna un pequeño cuadrado rojo/negro en la esquina superior izquierda.
Sirve para:
- Confirmar que el firmware no está congelado
- Ver que el bucle principal sigue ejecutándose
- Detectar bloqueos de MQTT o WiFi
Es simple pero muy útil en pantallas embebidas.
8) 📡 Estado MQTT (OK / ERROR)
Función: updateMQTTStatus()
Cada 5 segundos:
- Comprueba si
client.connected() - Borra el área del estado
- Escribe MQTT: OK en verde
- O MQTT: ERROR en rojo
Esto permite saber de un vistazo si la pantalla está recibiendo datos o no.
9) 📥 Recepción de datos MQTT (callback)
Función: callback()
Del topic nestdisk/cpu/stats se extraen, entre otros, estos valores del JSON:
"load""cpu_temp""freq"
Y los convierte a float o int.

10) 🔄 Reconexion automática MQTT
Función: reconnectMQTT()
Cada 5 segundos intenta reconectar si:
- No hay conexión
- El broker está disponible
- El WiFi está operativo
Si reconecta, vuelve a suscribirse al topic.
11) 🖼️ Actualización de valores en pantalla
Función: updateValues()
Redibuja solo cuando:
- El valor cambia
- O supera un umbral (ej. LOAD cambia ≥ 5%)
Esto mantiene la pantalla fluida y evita parpadeos.
12) 🔁 Bucle principal (loop)
El loop está limitado a 30 FPS (33 ms por frame). En cada iteración:
- Reconexion MQTT
- Procesamiento de mensajes
- Heartbeat
- Estado MQTT
- Actualización de valores
Es un ciclo muy eficiente para un ESP32‑S3.
Tras esta descripción general del funcionamiento del firmware, pasamos ahora a uno de los elementos más distintivos de la interfaz: el logo personalizado. Su generación no es trivial y nos ha servido para entender cómo preparar gráficos compatibles con las capacidades de Open Nextion y su motor LVGL.
2272
Se nos había pasado incluir el pequeño vídeo que hemos hecho sobre CPU-MONITOR
Y también como no la «demo oficial» de Nextion … aunque es más bonita la nuestra ¿no?
Aunque el cacharro de SonOff nos dejó buen sabor de boca, seguimos pensando que programarlo podría ser bastante menos esotérico y que unos cuantos ejemplos más nos habrían ahorrado horas de arqueología digital.
Por suerte, nuestros amigos chinos han decidido iluminarnos y ya está disponible la nueva Open Nextion Application Platform, con ejemplos, ayudas y todo lo que antes echábamos de menos. Tocará meterle mano, claro.
Y como además funciona no solo con los dos Nextion “rectangulares” que probamos, sino también con el nuevo Open Nextion 1.28″ Genius Series ESP32‑S3 IPS Knob Screen que está volando hacia casa… mejor esperamos a tenerlo en casa, lo probamos y os contamos, ¿ok?