Marcio Cunha

Cómo montar un SAI casero inteligente con ESP32 e inversor

Aprende a diseñar un sistema de alimentación ininterrumpida para tu homelab utilizando batería estacionaria, inversor de onda senoidal y telemetría ESP32.

Marcio Cunha•3 min
También disponible en:PortuguêsEnglish
Resumen
  • Las baterías estacionarias ofrecen descargas profundas seguras para entornos de homelab.
  • Los inversores de onda senoidal pura previenen daños en fuentes de servidores sensibles.
  • El microcontrolador ESP32 permite monitorear voltaje y temperatura en tiempo real vía Wi-Fi.
  • Las automatizaciones seguras evitan daños en hardware durante cortes prolongados de energía.
  • Monitorear los cuellos de botella ayuda a mantener la estabilidad global del servidor.

Por qué construir un SAI casero para tu entorno de homelab

Mantener un servidor doméstico o homelab funcionando sin interrupciones exige redundancia eléctrica. Sin embargo, los sistemas de alimentación ininterrumpida tradicionales suelen tener baterías pequeñas y poco espacio para ampliaciones. Al diseñar una solución propia utilizando baterías estacionarias de ciclo profundo, obtienes autonomía real para mantener enrutadores, sistemas de almacenamiento y mini PCs encendidos durante horas. En la práctica, esto significa que un corte repentino de energía no corromperá tus archivos ni apagará tus contenedores críticos. Para garantizar que todo funcione con seguridad, vale la pena revisar la infraestructura detallada en cómo montar un servidor Proxmox casero para pruebas de red ejecutando servicios esenciales.

Elegir los componentes correctos para el proyecto eléctrico

El corazón del sistema se compone de una batería estacionaria de 12 voltios, un inversor de voltaje y un circuito de carga inteligente. Las baterías estacionarias se diferencian de las de coche porque soportan descargas profundas repetidas sin perder capacidad rápidamente. El inversor transforma la corriente continua de la batería en corriente alterna limpia, preferiblemente de onda senoidal pura para no dañar los componentes de los servidores. Además, dimensionar correctamente el calibre de los cables es vital para evitar sobrecalentamientos durante picos de consumo. Junto con la estabilidad eléctrica, monitorear el rendimiento de los discos es fundamental, tal como discutimos en ¿disco lento en Linux? Cómo hallar cuellos de botella de IOPS para evitar fallas graves.

Integrando la telemetría con ESP32 y sensores

Para transformar un montaje mecánico en un SAI inteligente, utilizamos un microcontrolador ESP32 equipado con conectividad Wi-Fi y Bluetooth. Conectamos divisores de tensión resistivos en los pines analógicos del ESP32 para monitorear el nivel de carga de la batería sin dañar el circuito. Sensores de temperatura DS18B20 adheridos al cuerpo de la batería brindan alertas tempranas en caso de sobrecalentamiento. Estos datos se transmiten mediante el protocolo MQTT hacia tu panel centralizador, permitiendo visualizar el estado de la red eléctrica al instante. Si la energía falla y la batería alcanza un umbral crítico, los scripts automatizados pueden apagar máquinas virtuales y contenedores con total seguridad.

Esquema de montaje y código de lectura en ESP32

El montaje físico requiere sumo cuidado con el aislamiento eléctrico debido a las corrientes elevadas involucradas en el sistema de 12 voltios. A continuación, presentamos un fragmento funcional en C++ utilizando el entorno de Arduino para realizar la lectura segura del voltaje mediante un divisor resistivo calibrado.

const int analogPin = 34; // Pin ADC del ESP32 para lectura del divisor de tension
const float resistenciaR1 = 30000.0; // Resistor mayor conectado al positivo
const float resistenciaR2 = 7500.0; // Resistor conectado a tierra

void setup() {
  Serial.begin(115200);
}

void loop() {
  int rawValue = analogRead(analogPin);
  float voltage = (rawValue / 4095.0) * 3.3; // Convierte lectura ADC a voltios
  float batteryVoltage = voltage * ((resistenciaR1 + resistenciaR2) / resistenciaR2);
  
  Serial.print("Voltaje de bateria: ");
  Serial.print(batteryVoltage);
  Serial.println(" V");
  
  delay(5000);
}

Este código lee continuamente el voltaje analógico, aplica la fórmula matemática del divisor resistivo y muestra el resultado en el puerto serie, listo para su transmisión inalámbrica. Con estas métricas integradas, tu homelab gana autonomía e inteligencia operativa completa.

Consideraciones finales sobre redundancia y seguridad

Construir un SAI inteligente con ESP32 y batería estacionaria convierte la resiliencia de tu homelab en un proyecto totalmente personalizable y transparente. Te apartas de las cajas negras comerciales para obtener control absoluto sobre los tiempos de autonomía y métricas operativas. Aunque exige precaución en la manipulación de electricidad y programación de microcontroladores, la recompensa en confiabilidad compensa cada paso del ensamblaje. Mantén las conexiones firmes, valida los sensores periódicamente y asegura tus datos incluso cuando la red eléctrica falle.