Se ha visto anteriormente cómo trabajar con una configuración total por MQTT para un trabajo con cualquier GPIO en forma de periferia distribuida. En este caso se muestra el proceso para realizar una configuración mas sencilla, solo de los GPIOS deseados.
Se propone, por tanto, una forma de trabajo entre Node – Red y un microcontrolador con Wifi, como el Esp32, de forma similar a como se trabaja con Node – Red y Siemens mediante Snap7 (S7). El microcontrolador conectará por Wifi mediante el protocolo MQTT. Se va a mostrar el proceso mediante un ejemplo o caso de estudio.
En estos enlaces de dejamos cómo instalar Node Red en diferentes dispositivos. No dudes en consultarnos.
Temas predefinidos #
Los dos bloques que se utilizan (además de los genéricos de conexión al Wifi y al servidor), son:
El tema MQTT en el que se intercambiará cada dato, está formado por el prefijo que establezca el usuario, seguido de una combinación de letras que indican la función del GPIO y finalmente, el número de GPIO.
- Prefijo del tema:
- Función del GPIO
Las funciones posibles, que coinciden con las letras que se incluyen en los temas, son las siguientes:
– DI: entrada digital
– DO: Salida digital
– PWM: Salida PWM
– AI: Entrada digital
- Número de GPIO
Por ejemplo, el siguiente bloque definiría el pin 14 como entrada digital y se publicaría su estado, solo si cambia, en el tema microLSB/f/DI14
O el siguiente, que definiría el GPIO21 como salida digital, suscribiéndose al tema didactronica/DO21
Caso de estudio #
- Material: Se conectarán dos pulsadores a los GPIOS 2 y 12, y un led al GPIO15.
- Proceso:
- Se va a crear un dashboard en el que se monitorizará el estado del GPIO2 como entrada digital.
- Se va a controlar el estado del GPIO15 como salida digital mediante un interruptor en el panel, o mediante la activación del GPIO12, que trabajará como entrada digital.
- Además, en el mismo panel se debe poder visualizar, tanto el estado del GPIO12, como el del GPIO15.
Configuración del microcontrolador #
Como ejemplo se va a realizar la siguiente configuración:
- GPIO 2 como entrada digital
- GPIO 12 como entrada digital
- GPIO 15 como salida digital
El programa completo, incluyendo conexión a la red Wifi, conexión al servidor local y configuración de entradas y salidas, es el siguiente:
Cada uno de los bloques utilizados se ha obtenido de las siguientes ubicaciones:
Se puede trabajar también con salidas PWM, dentro del mismo bloque utilizado anteriormente. Además, se puede trabajar con entradas analógicas, mediante el bloque inmediatamente inferior. Ahí se puede seleccionar tanto el tiempo de envío como la tasa mínima de cambio.
Los temas en los que se publica cada estado se detallan en este enlace.
Flujo en Node – Red #
Para poder trabajar con salidas digitales hay que enviar un 1 o un 0, no se interpreta correctamente true y false. Es por esto que cambiamos la configuración del switch del dashboard de la siguiente forma: