¿Buscas alguna otra cosa?
Detalles del escenario:
- Se necesita monitorizar 8 sensores de contacto seco. En estado de las entradas debe enviarse rápidamente a una plataforma MQTT (ejemplo Cervello) al producirse un cambio en una de éstas
- Para las cuatro primeras entradas debe configurase el módem para enviar vía MQTT cualquier cambio de estado que se produzca en ellas (entrada activada (a masa) / entrada desacticada (abierto)). En las cuatro últimas entradas digitales, únicamente debe enviarse vía MQTT cuando se produzca una activación en una entrada (entrada a masa)
- Para evitar el envío de un número elevado de mensajes (en caso de cambios rápidos en determinadas entradas) debe establecerse un timeout de 10 segundos en las entradas GPIO4 y GPIO5. Esto implica que, por más cambios que se produzcan en GPIO4 y GPIO5, no podrá enviarse más de 1 mensaje MQTT en una ventana de 10 segundos
Solución: MTX-Tunnel firmware + MTX-IOT-S [4-N]
Ejemplo de configuración (fichero config.txt) para el escenario indicado:
Configuración | Observaciones |
GPRS_apn: movistar.es GPRS_login: MOVISTAR GPRS_password: MOVISTAR GPRS_timeout: 0 MTX_pin: 0000 MTX_model: 199802407 MTX_mode: none MTX_ping: 30 MTX_pingIP: 8.8.8.8 MTX_TPProtocol: ntp MTX_TPServer: ntp.roa.es MTX_TPServer2: es.pool.ntp.org MTX_TPFormat: unix SMS_allPhones: on SMS_sendIP: on SMS_ATEnabled: on SMS_ATResponse: on MQTT_enabled: on MQTT_server: tcp://broker.mqttdashboard.com:1883 MQTT_id: [IMEI] MQTT_login: MQTT_password: MQTT_attopic1: [IMEI]/AT MQTT_atrtopic: [IMEI]/ATR MQTT_qos: 1 MQTT_keepalive: 60 MQTT_defaultIOQos: 0 MQTT_defaultIOTopic: IOCHANGE GPIO_mode0: input GPIO_config0: mqtt;2;0 GPIO_mode1: input GPIO_config1: mqtt;2;0 GPIO_mode2: input GPIO_config2: mqtt;2;0 GPIO_mode3: input GPIO_config3: mqtt;2;0 GPIO_mode4: input GPIO_config4: mqtt;2;0 GPIO_mode5: input GPIO_config5: mqtt;2;0 |
GPRS APN provided by GSM operator GPRS Login GPRS Password Modem is permanently connected to GPRS PIN if it has one Device model Gateways used Every 30 minutes PING check Google IP (f.e.) to ping Time synchronization protocol Time server Time server backup Unix time format IP by SMS authorized IP by SMS authorized AT by SMS allowed SMS AT responses activated MQTT service MQTT broker. Protocol format://url:port Device ID in broker Username Password Topic of the MTX to receive AT commands Topic where MTX sends its answers to AT commands QoS established Keepalive Qos for defaultIOTopic MQTT topic to send quick telemetries GPIO0 configured as input GPIO0 MQTT configuration GPIO1 configured as input GPIO1 MQTT configuration GPIO2 configured as input GPIO2 MQTT configuration GPIO3 configured as input GPIO3 MQTT configuration GPIO4 configured as input GPIO4 MQTT configuration GPIO5 configured as input GPIO5 MQTT configuration |
Detalles:
-
La configuración de las entradas como “mqtt;2;0” indica lo siguiente. Recuerde que todos los parámetros van separados entre ellos por punto y coma ;
“mqtt” > La entrada se configura para enviar los estados de las Entradas digitales por MQTT
“2” > El 2 indica que se configura la entrada digital para enviar un mensaje MQTT tanto por activación de la entrada (cuando ésta se cierra llevándola a masa) como por desactivación de la entrada (cuando se abre). En caso de querer enviar un mensaje MQTT únicamente al cerrar la entrada (llevandola a masa) habría que indicar un valor “1”.
“0” > Indica el timeout de la entrada digital. Eso quiere decir que se enviará el cambio de la entrada digital siempre que se produzca. Si por ejemplo estuviera configurado un valor “10”, como ocurre con GPIO4 y GPIO5, aunque se produzcan múltiples activaciones en la entrada digital, nunca se va a enviar más de 1 mensaje MQTT en esos 10 segundos -
El formato de envío de estos mensajes sigue la estructura JSON, que se muestra en el siguiente ejemplo:
{
“IMEI”:”354033091487838”,
“TYPE”:”GPIO”,
“TS”:” 2020-02-08T18:35:15Z”
“ID”:”0”,
“VALUE”:1,
“DIR”:”INPUT”
}Donde:
– IMEI: indica el IMEI del módem MTX
– TYPE: indica el tipo de trama. “GPIO” es para tramas de E/S digitales
– TS: Timestamp (formato unix especificado en MTX_TPFormat)
– ID: indica el índice de la GPIO (0=GPIO0, 1=GPIO1 … ,7=GPIO7)
– VALUE: indica el valor de la entrada (0,1)
– DIR: indica el tipo de pin (INPUT / OUTPUT) -
Los datos de las entradas/salidas digitales configuradas como “mqtt” se envían hacia el topic configurado en el parámetro “MQTT_defaultIOTopic”