Ir al contenido

← Todas las funcionalidades

Seguidores solares de dos ejesRaspberry PLC 21WiFiGPIOInfraestructura

Un hotspot WiFi con pulsador para la puesta en marcha en campo en un PLC

Las plantas solares rara vez ofrecen WiFi, pero cada seguidor necesita configuración ocasional in situ. Este ejemplo convierte un botón físico en la entrada I0.5 de un Raspberry PLC 21 en un punto de acceso WiFi temporal: al pulsarlo, el PLC levanta un hotspot gestionado con nmcli durante 15 minutos para que un técnico acceda al dashboard local desde un móvil. Extraído de un despliegue real de seguidor solar de dos ejes, combina una interrupción GPIO, perfiles de NetworkManager y un temporizador de apagado automático.

Por interrupción, no por sondeo

GPIO.add_event_detect registra un callback de flanco descendente en la entrada del botón, así que el bucle principal solo duerme. El callback relee el pin tras un pequeño retardo de antirrebote para descartar ruido eléctrico — importante en una estructura llena de cables de motor. Este patrón cuesta cero CPU mientras espera, algo que importa cuando el mismo PLC ejecuta además el proceso de seguimiento, el bus CAN y el dashboard.

nmcli hace el trabajo pesado

En lugar de ficheros de configuración de hostapd y dnsmasq, el script maneja NetworkManager: un perfil de conexión en modo AP con WPA2 e IPv4 compartida, creado en el primer uso y reutilizado después. Levantar o bajar el hotspot es un único comando nmcli con timeout, y el SSID y la contraseña quedan como placeholders (AP_SSID, AP_PASSWORD) para que cada instalación fije sus propias credenciales en el despliegue.

El temporizador de seguridad de 15 minutos

Un punto de acceso abierto en un emplazamiento remoto es un riesgo, así que un threading.Timer apaga el hotspot a los 15 minutos. Pulsar de nuevo el botón con el AP activo cancela y reinicia el temporizador, alargando la sesión de forma natural. El técnico nunca tiene que acordarse de apagar nada, y la huella de radio de la planta vuelve a cero por sí sola.

Un fragmento de la implementación

Tal cual del ejemplo desplegado en el Raspberry PLC 21 — cópialo libremente:

def nmcli(*args, timeout=15):
    """Runs nmcli and returns the CompletedProcess (no exception on failure)."""
    return subprocess.run(["nmcli", *args], capture_output=True,
                          text=True, timeout=timeout)

El ejemplo completo es un programa entero — cabecera de conexionado, setup y bucle principal — listo para adaptar a tu aplicación.

Preguntas frecuentes

¿Por qué usar NetworkManager en lugar de hostapd directamente?

nmcli viene con la mayoría de imágenes Linux modernas, gestiona automáticamente la parte de DHCP con ipv4.method shared y mantiene el AP como un perfil con nombre que puedes auditar. Elimina dos demonios y sus ficheros de configuración del despliegue.

¿Puede el botón ser una entrada digital estándar del PLC?

Sí. En el Raspberry PLC la entrada I0.5 se mapea a un pin GPIO de la Raspberry Pi interior, así que las interrupciones de RPi.GPIO funcionan con cableado industrial a 24 V a través del acondicionamiento de entradas del PLC.

¿Qué ve el técnico tras conectarse al hotspot?

El PLC sirve su dashboard local de Node-RED, así que una vez asociado al AP el técnico navega a la dirección del PLC y accede a las pestañas de control, calibración e inversor protegidas por autenticación.

Funcionalidades relacionadas