Inicio/Monitorización Solar/Wokwi y ESP32: Crea un monitor de producción solar DIY con protocolo Modbus
Monitorización Solar

Wokwi y ESP32: Crea un monitor de producción solar DIY con protocolo Modbus

Escrito por: Alex R. (Domotizador)
Fecha: 6 Jun 2026
Lectura de 8 min
Wokwi y ESP32: Crea un monitor de producción solar DIY con protocolo Modbus

El auge de la energía solar fotovoltaica ha democratizado la generación eléctrica, pero monitorizar la producción en tiempo real sigue siendo un reto para muchos instaladores y aficionados. Con un ESP32 y el protocolo Modbus, es posible construir un sistema de monitorización asequible, personalizable y sin depender de plataformas cerradas. En esta guía completa, te enseñaremos a diseñar y simular tu propio monitor solar utilizando Wokwi, el popular simulador de IoT, y luego te daremos las claves para llevarlo al hardware real. Desde los fundamentos de Modbus hasta la visualización de datos en un dashboard local, cubriremos cada paso con detalle técnico.

Fundamentos de Modbus y ESP32 para monitorización solar

El protocolo Modbus, desarrollado en 1979 por Modicon, se ha convertido en el estándar de facto para la comunicación en entornos industriales y de automatización. En el contexto de la energía solar, la mayoría de los inversores y medidores de energía incluyen una interfaz Modbus RTU (RS-485) o Modbus TCP (Ethernet/Wi-Fi) que permite leer registros con datos como tensión, corriente, potencia y energía acumulada. El ESP32, con su doble núcleo, conectividad Wi-Fi y Bluetooth, y su bajo coste, es la plataforma ideal para actuar como puente entre el inversor y una red local o Internet.

Para implementar un monitor solar, necesitamos entender dos conceptos clave: los registros Modbus y el direccionamiento. Cada parámetro del inversor (por ejemplo, potencia actual) se almacena en uno o más registros de 16 bits. El ESP32, actuando como maestro Modbus, envía una solicitud de lectura al inversor (esclavo) y recibe los valores. Estos datos se procesan y se envían a un servidor MQTT, una base de datos local o directamente a una pantalla. La ventaja de usar Modbus es su universalidad: cualquier inversor que soporte el protocolo puede ser integrado sin importar la marca.

Hardware necesario para el monitor solar DIY

Para construir el monitor físico necesitarás los siguientes componentes:

  • ESP32 (cualquier placa): El cerebro del sistema. Recomendamos un modelo con al menos 4 MB de flash y soporte para Wi-Fi.
  • Módulo RS-485 (MAX485 o similar): Convierte las señales UART del ESP32 a RS-485, necesario para la comunicación Modbus RTU.
  • Fuente de alimentación 5V: Para alimentar el ESP32 y el módulo RS-485.
  • Cables y conectores RJ45 (opcional): Para conectar el bus RS-485 al inversor.

Simulación del monitor solar con Wokwi

Wokwi es una plataforma de simulación online que permite emular microcontroladores como el ESP32 junto con periféricos virtuales. Aunque no puede simular directamente un inversor real, podemos crear un dispositivo Modbus esclavo virtual que responda a las peticiones del ESP32. Esto es ideal para desarrollar y probar el código sin necesidad de hardware físico. A continuación, te mostramos cómo configurar la simulación paso a paso.

Configuración del proyecto en Wokwi

Primero, crea un nuevo proyecto en Wokwi seleccionando la placa ESP32. Luego, añade un dispositivo Modbus esclavo virtual. Wokwi no tiene un componente Modbus nativo, pero podemos simularlo usando un segundo ESP32 o un script Python externo. Para simplificar, usaremos un ESP32 adicional como esclavo. En el archivo diagram.json, define dos ESP32 conectados por un bus serial (UART). El maestro leerá registros del esclavo cada 5 segundos.

El código del esclavo debe implementar un servidor Modbus RTU simple. Usaremos la librería ModbusRTU para Arduino. Define registros de retención (holding registers) que simulen los parámetros de un inversor: tensión (0x0000), corriente (0x0001), potencia (0x0002) y energía (0x0003-0x0004). Puedes hacer que los valores varíen aleatoriamente para simular la producción solar real.

RegistroDirecciónTipoDescripción
0x000040001UINT16Tensión (V)
0x000140002UINT16Corriente (A)
0x000240003UINT16Potencia (W)
0x0003-0x000440004-40005UINT32Energía acumulada (Wh)

Código del maestro ESP32 en Wokwi

El código del maestro debe inicializar la comunicación Modbus, conectarse al Wi-Fi (simulado) y enviar los datos a un servidor MQTT. En Wokwi, puedes usar un broker MQTT público como test.mosquitto.org. A continuación, un fragmento del código principal:

#include <ModbusRTU.h>
#include <WiFi.h>
#include <PubSubClient.h>

ModbusRTU mb;
WiFiClient espClient;
PubSubClient client(espClient);

const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqtt_server = "test.mosquitto.org";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  client.setServer(mqtt_server, 1883);
  mb.begin(&Serial2); // RS-485 en UART2
  mb.setTimeout(1000);
}

void loop() {
  if (!client.connected()) reconnect();
  client.loop();
  
  uint16_t voltage = mb.readHreg(1, 0); // esclavo ID 1, registro 0
  uint16_t current = mb.readHreg(1, 1);
  uint16_t power = mb.readHreg(1, 2);
  
  char payload[50];
  snprintf(payload, 50, "{\"V\":%d,\"A\":%d,\"W\":%d}", voltage, current, power);
  client.publish("solar/monitor", payload);
  
  delay(5000);
}
Consejo / RecomendaciónUtiliza la librería ModbusRTU de Arduino, que es fácil de usar y compatible con ESP32. Asegúrate de configurar correctamente los pines de UART2 (GPIO16 para TX, GPIO17 para RX) y el pin de control DE/RE del MAX485.

Visualización de datos en tiempo real

Una vez que los datos llegan al broker MQTT, podemos visualizarlos en un dashboard local. Existen múltiples opciones: Node-RED, Grafana, o incluso una página web simple con JavaScript. La más sencilla para un proyecto DIY es Node-RED, que se ejecuta en una Raspberry Pi o en el mismo ESP32 si tiene suficiente memoria. Node-RED permite crear flujos visuales para procesar y mostrar los datos en paneles personalizados.

Para una solución más ligera, puedes programar el ESP32 para que sirva una página web con gráficos en tiempo real usando la librería ESPAsyncWebServer y Chart.js. El ESP32 actuará como servidor web y actualizará los datos mediante WebSockets. Esto elimina la necesidad de un ordenador externo y hace que el sistema sea completamente autónomo.

Errores comunes y solución de problemas

Al implementar un monitor Modbus con ESP32, es frecuente encontrarse con problemas de comunicación. Los más comunes son:

  • Error de cableado RS-485: Verifica que los cables A y B estén correctamente conectados y que la terminación de 120 ohmios esté presente en ambos extremos del bus.
  • Dirección de esclavo incorrecta: Cada inversor tiene una dirección Modbus predeterminada (normalmente 1). Consulte el manual del inversor y ajústela en el código.
  • Velocidad de baudios incompatible: Asegúrate de que la velocidad de baudios del ESP32 coincida con la del inversor (9600, 19200, etc.).
Atención / AdvertenciaNo conectes directamente las salidas RS-485 del inversor a los pines GPIO del ESP32 sin un transceptor. El nivel de tensión RS-485 puede dañar el ESP32. Utiliza siempre un módulo MAX485 o similar.

Comparativa de alternativas de monitorización solar

SoluciónCostePersonalizaciónRequiere InternetFacilidad
ESP32 + Modbus DIYBajoTotalOpcionalMedia
Monitor comercial (Ej: SolarEdge)AltoLimitadaAlta
Raspberry Pi + Node-REDMedioAltaOpcionalMedia

La solución DIY con ESP32 ofrece el mejor equilibrio entre coste y personalización. Es ideal para quienes tienen conocimientos básicos de programación y electrónica, y desean un sistema que se adapte exactamente a sus necesidades sin depender de servicios externos.

Preguntas frecuentes sobre monitor solar Modbus con ESP32

¿Qué inversores solares son compatibles con Modbus?
La mayoría de los inversores modernos de marcas como Victron, SMA, Fronius, Growatt, Solis y Deye incluyen un puerto RS-485 con protocolo Modbus. Consulta el manual técnico de tu inversor para confirmar la compatibilidad y la dirección de los registros. Algunos inversores más antiguos o de gama baja pueden no soportar Modbus.
¿Puedo usar WiFi en lugar de RS-485?
Sí, si tu inversor soporta Modbus TCP (Ethernet o WiFi), puedes conectar el ESP32 directamente a la misma red y usar la librería Modbus TCP. Sin embargo, la mayoría de los inversores residenciales usan Modbus RTU sobre RS-485, que requiere un adaptador. La ventaja de RS-485 es su robustez en entornos con ruido eléctrico y largas distancias.
¿Es necesario usar Wokwi para este proyecto?
No es estrictamente necesario, pero Wokwi te permite probar el código y la lógica de comunicación sin riesgo de dañar hardware real. Es especialmente útil si no tienes el inversor a mano o si quieres experimentar con diferentes configuraciones. Además, acelera el desarrollo al evitar la carga constante del firmware en el ESP32.
¿Qué hago si el ESP32 no se conecta al inversor?
Primero, verifica las conexiones físicas: A y B del RS-485 deben estar conectados correctamente (A a A, B a B). Asegúrate de que la velocidad de baudios, paridad y bits de parada coincidan con la configuración del inversor. Usa un monitor serie para depurar: imprime los códigos de error de la librería Modbus. También puedes probar con un adaptador USB-RS-485 en un ordenador para confirmar que el inversor responde.

Conclusiones y plan de acción recomendado

Construir un monitor de producción solar con ESP32 y Modbus es un proyecto accesible que te permitirá tomar el control de tus datos energéticos. Hemos recorrido desde los fundamentos del protocolo hasta la simulación en Wokwi y la visualización en tiempo real. La flexibilidad del ESP32 te permite adaptar el sistema a tus necesidades: desde un simple dashboard local hasta la integración con Home Assistant o plataformas en la nube.

Consejo / RecomendaciónTe recomendamos empezar con la simulación en Wokwi para familiarizarte con el código y la comunicación Modbus. Una vez que funcione, adquiere los componentes y realiza las conexiones físicas. Para la visualización, opta por Node-RED si ya tienes una Raspberry Pi, o por un servidor web en el propio ESP32 si buscas simplicidad. Documenta cada paso y comparte tus resultados con la comunidad.
TRANSPARENCIA INFORMATIVA

Este análisis técnico es independiente. No recibimos pagos de fabricantes para alterar valoraciones. Si realizas una compra a través de enlaces en este sitio, podríamos percibir una comisión de afiliación que ayuda a mantener el servidor activo, sin coste extra para ti.