¿Buscas alguna otra cosa?

Tunnel – Parámetros de configuración E/S digitales y relés: “GPIO_”

La mayoría de los módems MTX disponen de una o varias entradas y salidas digitales e incluso relés. Los parámetros GPIO_ permiten configurar el comportamiento de estas entradas y salidas. Por ejemplo, puede configurar una entrada digital para que, cuando ésta cambie de estado, se envíe SMS de alarma, o envíe un mensaje MQTT, o realice una llamada de voz, o ejecute un comando AT automáticamente (o un batch de comandos AT) o simplemente configurarla como una entrada contadora de pulsos. El caso de las salidas digitales y relés es análogo. Es posible configurar el comportamiento para activar una salida o relé manualmente mediante un comando AT (enviado por serie, SMS, modbus, Telnet, MQTT, …) o bien programar un horario para su activación, o temporizar la salida, o activar la salida si una entrada digital se activa, o activarla si una entrada analógica está fuera de rangos, o a través de una llamada de voz, o en función de un reloj astronómico, o incluso en función del valor de un registro modbus de un dispositivo modbus RTU que el módem tenga conectado a su puerto serie.

GPIO_mode0, GPIO_mode1, GPIO_mode2, … , GPIO_mode9

Descripción: las GPIOs de los módems MTX (las entradas y salidas digitales) pueden ser de varios tipos en función del modelo del módem utlizado.  Por un lado una GPIO puede ser únicamente de tipo “input”, o bien puede ser únicamente de tipo “output”, o bien puede configurarse como “input” o como “output” (es decir, puede configurarse como entrada ó salida). Mediante este parámetro se define cada GPIO como “input” o como “output”. Consulte las tablas de características del Anexo A del presente manual para conocer las posibilidades de cada GPIO en función del modelo de módem MTX.

Valores posibles:

  • input, output
  • Valor por defecto: depende del modelo de módem

Notas adicionales:

  • Configure el valor del parámetro como “input” si la GPIOx puede configurarse únicamente como entrada o bien si el modelo MTX permite configurar la GPIOx como entrada o salida y para la aplicación se desea configurar la GPIOx como entrada
  • Configure el valor del parámetro como “output” si la GPIOx puede configurarse únicamente como salida digital o bien si el modelo MTX permite configurar la GPIOx como entrada o salida y para la aplicación se desea configurar la GPIOx como salida

GPIO_config0, GPIO_config1, GPIO_config2, … , GPIO_config8

Descripción: mediante estos parámetros puede configurar el comportamiento de cada una de las GPIOs (entradas / salidas digitales) del módem. Podrán establecerse unos determinados valores en el caso de que el parámetro GPIO_modeX esté configurado como “input” y otros en caso de que GPIO_modeX esté configurado como “output”.

  • Valor por defecto: normal

Los valores mostrados a continuación son válidos cuando el GPIOx está configurado como “input”. Nótese que muchos parámetros en realidad constan de varios parámetros separados por punto y como “;”.

  • normal

Con este valor el GPIO está simplemente configurado como entrada digital sin ningún comportamiento especial asignado.  Este valor es útil, por ejemplo,  cuando se desea simplemente consultar el valor de una entrada digital (por ejemplo con el comando AT^MTXTUNNEL=GETIOS)

Ejemplo:

GPIO_mode3:  input

GPIO_config3: normal

Este ejemplo configura la GPIO3 como entrada normal.

  • sms;<value>;<timeout>;<mensajeOn>;<mensajeOff>

sms: texto que indica que la GPIO se asocia a una alarma SMS
<value>: 0,1,2

Un 0 indica que el SMS de alarma se enviará cuando la entrada digital no esté activada. Un 1 indica que el SMS de alarma se enviará cuando la entrada digital esté activada. Un 2 indica que el SMS de alarma se enviará cuando la entrada digital cambie de estado (de activada a desactivada o viceversa).

<timeout>: 0 … 3600

En caso de producirse una condición de alarma SMS, este valor indica el tiempo máximo entre envíos. Esto evita que, si una entrada digital cambia de estado continuamente por accidente, se realicen continuos envíos de SMS.

<mensajeOn>: máximo 160 caracteres (sin ; )

En caso de producirse una condición de alarma SMS por entrada digital activada, este es el texto del mensaje que se enviará.

<mensajeOff>: máximo 160 caracteres (sin ; )

En caso de producirse una condición de alarma SMS por entrada digital desactivada, este es el texto del mensaje que se enviará.

Ejemplo:

GPIO_mode3:  input

GPIO_config3: sms;2;15;Alarm ON;Alarm OFF

Nota: Este ejemplo configura la GPIO3 como entrada de alarma SMS y enviará un  mensaje SMS cada vez que cambia de estado la GPIO3. No enviará más de un SMS cada 15 segundos, y usará los textos “Alarm ON” y “Alarm OFF” en función del valor de la entrada digital.

Los números de teléfonos utilizados como destinatarios de los mensaje SMS son los configurados en los parámetros ALARM_smsNumberX  (pudiendo especificar hasta 10).

  • counter

Con este valor el GPIO se configura como contador de pulsos. El valor del conteo de los pulsos es posible obtenerlo con el comando AT^MTXTUNNEL=GETCOUNTER,<IDCounter> o bien enviarlo mediante los parámetros LOGGER_ a un servidor WEB o MQTT  (consultar ejemplo 7.11 para mejor entendimiento).

Ejemplo:

GPIO_mode7:  input

GPIO_config7: counter

Este ejemplo configura la GPIO7 como entrada de contador de pulsos.

  • at;<atOn>;<atOff>

Con este valor el GPIO se configura como entrada disparadora de un comando AT (o batch de comandos AT).

<atOn>: comando AT que se ejecutará cuando la entrada digital se active
<atOff>: comando AT que se ejecutará cuando la entrada digital se desactive

Ejemplo:

GPIO_mode2:  input

GPIO_config2: at;AT^MTXTUNNEL=EXECUTE,fileon.txt;AT

Nota: Este ejemplo configura la GPIO2 como entrada disparadora de comandos AT. Cuando la entrada se activa, se ejecuta el comando “AT^MTXTUNNEL=EXECUTE,fileon.txt” (que a su vez ejecuta los comandos AT contenidos en ese fichero, consulte la descripción de este comando AT para más información).  En caso de desactivarse la entrada digital, simplemente se ejecuta el comando “AT”. Consulte el ejemplo 8.13 para una mayor comprensión.

  • mqtt;<value>;<timeout>

Con este valor el GPIO se configura para enviar un mensaje MQTT cuando cambie de estado de dicha GPIO.

mqtt: texto que indica que la GPIO se asocia al envio de mensajes MQTT
<value>: 0,1,2

Un 0 indica que el mensaje MQTT se enviará cuando la entrada digital no esté activada. Un 1 indica que el mensaje MQTT se enviará cuando la entrada digital esté activada. Un 2 indica que el mensaje MQTT se enviará cuando la entrada digital cambie de estado (de activada a desactivada o viceversa).

<timeout>: 0 … 3600    (segundos)

En caso de producirse una condición de envío MQTT, este valor indica el tiempo máximo entre envíos. Esto evita que, si una entrada digital cambia de estado continuamente por accidente, se realicen continuos envíos de mensajes MQTT.

Ejemplo:

GPIO_mode3:  input

GPIO_config3: mqtt;2;0

ste ejemplo configura la GPIO3 como entrada asociada al envío de mensajes MQTT. Se enviará un mensaje cada vez que la entrada GPIO3 cambie de estado sin timeout entre mensajes. Consulte el ejemplo 8.10 para más información y para consultar el formato de envío del mensaje MQTT.

Los mensajes MQTT se enviarán al topic MQTT indicado en el parámetro MQTT_defaultIOTopic con el Qos especificado en MQTT_defaultIOQos.

  • call;<value>;<timeout>

Con este valor el GPIO se configura para realizar una llamada de voz (sin audio) cuando cambie de estado de dicha GPIO.
call: texto que indica que la GPIO se asocia a la realización de una llamada de voz.

<value>: 0,1,2

Un 0 indica que la llamada se realizará cuando la entrada digital no esté activada. Un 1 indica que la llamada se realizará cuando la entrada digital esté activada. Un 2 indica que la llamada se realizará cuando la entrada digital cambie de estado (de activada a desactivada o viceversa).

<timeout>: 0 … 3600  (segundos)

En caso de producirse una condición de llamada de voz, este valor indica el tiempo máximo entre llamadas. Esto evita que, si una entrada digital cambia de estado continuamente por accidente, se realicen continuas llamadas de voz.

Ejemplo:

GPIO_mode3:  input

GPIO_config3: call;1;300

Este ejemplo configura la GPIO3 como entrada asociada a la realización de una llamada de voz. Se realizará cada vez que la entrada GPIO3 se active (1) y no se podrá realizar llamadas con mayor frecuencia a 5 minutos (300 segundos). Consulte el ejemplo 8.8 para más información.

  • wakeup;<value>

El modo “wakeup” indica que la GPIO, configurada como entrada, activará la sesión 2g73g/4g durante el tiempo configurado (en el parámetro GPRS_timeout).

call: texto que indica que la GPIO, configurada como entrada, se asocia al inicio de una sesión 2g/3g/4g

<value>: 0,1,2

Un 0 indica que la sesión 2g/3g/4g se realizará cuando la entrada digital no esté activada.

Un 1 indica que la sesión 2g/3g/4g se realizará cuando la entrada digital esté activada.

Un 2 indica que la sesión 2g/3g/4g se realizará cuando la entrada digital cambie de estado (de activada a desactivada o viceversa).

Ejemplo:

GPRS_timeout: 10

GPIO_mode0: input

GPIO_config0: wakeup;1

Este ejemplo configura la GPIO0 como entrada asociada a la activación de la sesión 2g/3g/4g.  Cuando se active GPIO0 la sesión 2g/3g/4g se activará 10 minutos.

Los valores mostrados a continuación son válidos cuando el GPIOx está configurado como “output”. Nótese que muchos parámetros en realidad constan de varios parámetros separados por punto y como
“;”.

  • normal

Con este valor el GPIO está simplemente configurado como salida digital sin ningún comportamiento especial asignado.  Este valor es útil, por ejemplo,  cuando se desea simplemente activar una salida digital o relé (por ejemplo con el comando AT^MTXTUNNEL=SETIO,X,Y)

Ejemplo:

GPIO_mode8:  output

GPIO_config8: normal

Este ejemplo configura la GPIO8 como salida normal.  Consulte el ejemplo 8.14 para mayor comprensión.

  • on

Con este valor la GPIO, configurada como salida, siempre está activada.
on: texto que indica que la GPIO es una salida siempre activada

Ejemplo:

GPIO_mode8: output

GPIO_config8: on

Este ejemplo configura la GPIO8 como salida siempre activada.

  • off

Con este valor la GPIO, configurada como salida, siempre está desactivada.
off: texto que indica que la GPIO es una salida siempre desactivada

Ejemplo:

GPIO_mode8: output

GPIO_config8: off

Este ejemplo configura la GPIO8 como salida siempre desactivada.

  • time;<HHon>;<NNon>;<HHoff>;<NNoff>

El modo time permite especificar un horario de activación / desactivación de una salida digital/relé. (Recuerde que también puede utilizar el tichero “schedule.txt” para introducir horarios más sofisticados).
time: texto que indica que la GPIO es una salida programada

<HHon>: Hora para la activación de la salida (0, … , 23) UTC
<NNon>: Minutos para la activación de la salida (0 … 59) UTC
<HHoff>: Hora para la desactivación de la salida (0, … , 23) UTC
<NNoff>: Minutos para la desactivación de la salida (0 … 59) UTC

Ejemplo:

GPIO_mode4: output

GPIO_config4: time;22;00;8;30

Este ejemplo configura la GPIO4 como salida programada para activarse a las 22:00 UTC y desactivarse a las 8:30 UTC

  • timer

El modo timer indica que la salida es temporizada. Es decir, configurando la salida como timer, es posible utilizar el comando AT^MTXTUNNEL=SETOUTPUTTIMER,idOutput,Xseconds para que la GPIO idOutput se active durante Xseconds. Consulte el ejemplo 8.3 para una mejor comprensión

timer: texto que indica que la GPIO es una salida temporizada

Ejemplo:

GPIO_mode4: output

GPIO_config4: timer

Este ejemplo configura la GPIO4 como salida temporizada. Configurada de esta manera un comando como AT^MTXTUNNEL=SETOUTPUTTIMER,4,30 activaría la salida GPIO4 durante 30 segundos.

  • digital;<idGPIO>;<inverted>

El modo digital indica que el estado de una salida estará relacionada con el valor de una entrada digital. Es decir, es posible hacer que la salida digital se active cuando una entrada digital se active o viceversa.
digital: texto que indica que la GPIO es una salida relacionada con una entrada digital.

<idGPIO>: 0 … 9 ID de la entrada digital con la que está relacionada
<inverted> 0,1 0=no invertida, 1=invertida. Invertida implica que la salida se activará cuando la entrada digital está desactivada, y viceversa.

Ejemplo:

GPIO_mode0: input

GPIO_config0: normal

GPIO_mode3: output

GPIO_config3: digital;0;0

Este ejemplo configura la GPIO3 como salida relacionada con la entrada GPIO0.

Cuando GPIO0 se active, la salida GPIO3 se activará y cuando GPIO0 se desactive, la salida GPIO3 también se desactivar.
Esta tarea (salida asociada a entrada digital) también es posible llevarla a cabo con el modo “at” de la entrada digital. Consulte ejemplos 8.13 (salida relacionada con entrada digital) y 8.16 (salida relacionada con entrada analógica) para más información

  • modbus;<id>;<command>;<reg>;<minVal>;<maxVal>;<minAT>;<maxAT>

El modo “modbus” indica que el estado de una salida estará relacionada con el valor de un registro modbus de un dispositivo externo. Es decir, es posible hacer que la salida digital se active cuando un registro modbus esté por encima de un valor y se desactive por debajo de otro determinado valor.
modbus: texto que indica que la GPIO es una salida relacionada con un registro modbus de un dispositivo externo.

<id>: 1 … 254  dirección modbus del esclavo modbus a interrogar
<command>: 3, 4, comando de lectura modbus a utilizar
<reg>: 0 … 65535, número de registro modbus a leer
<minVal>: 0 … 65535, la salida se desactivará cuando el valor del registro sea igual o inferior a este valor.
<maxVal>: 0 … 65535, la salida se activará cuando el valor del registro sea igual o superior a este valor.
<minAT>: comando AT que se ejecutará cuando el valor del registro sea igual o esté por debajo de <minVal>
<maxAT>: comando AT que se ejecutará cuando el valor del registro sea igual o esté por encima de <maxVal>

Ejemplo:

GPIO_mode3: output

GPIO_config3: modbus;10;3;1;250;300;;

Este ejemplo configura la GPIO3 como salida relacionada con el registro 1 del dispositivo modbus RTU con dirección 10 y el cual es leído con el comando modbus 3. La salida GPIO3 se desactivará cuando el registro <=250 y se activará cuando el registro sea >=300.  En este ejemplo no se ejecutan comandos AT.

  • call;<at>

El modo “call” indica la salida está relacionada con una llamada de voz. La salida se activará 5 segundos cuando el módem reciba una llamada de voz

call: texto que indica que la GPIO es una salida relacionada con una llamada de voz entrante y se activará 5 segundos al recibir la llamada.

<at>: comando AT opcional que se ejecutará al recibir la llamada de voz.

Ejemplo:

GPIO_mode8: output

GPIO_config8: call;AT+CSQ

Este ejemplo configura la GPIO8 como salida la cual se activará durante 5 segundos (valor fijo) cuando se reciba una llamada de voz en el módem.

Adicionalmente se ejecutará el comando “AT+CSQ”

  • astronomical;<MinutosOffsetOcaso>;<MinutosOffsetOrto>

El modo “astronomical” indica la salida está relacionada con el reloj astronómico del módem, activándose y desactivándose a partir del mismo.
astronomical: texto que indica que la GPIO es una salida relacionada con una el reloj astronómico del módem.

<minutosOffsetOcaso>: minutos de offset para el ocaso <minutosOffsetOrto>: minutos de offset para el orto

Ejemplo:

MTX_latitude: 41.6333

MTX_longitude: 2.36667

GPIO_mode8: output

GPIO_config8: astronomical;-30;30

Este ejemplo configura la GPIO8 como salida astronómica, configurando un offset de -30 minutos para el ocaso (la salida se activará 30 minutos antes de llegar al ocaso) y 30 minutos para el orto (la salida se desactivará 30 minutos después del orto).

Notése que es necesario configurar los parámetro MTX_latitude y MTX_longitude para que el módem MTX sepa configurar el orto y ocaso del día.