¿Buscas alguna otra cosa?

Tunnel – Uso del MTX-Tunnel para acceder al puerto serie RS232/RS485 de un dispositivo vía MQTT (para la gestión de datos serie RAW). Pasarela transparente “RS232/485–MQTT”

Detalles del escenario:

  • Hay una máquina de vending con un puerto RS232 que conectar a una plataforma MQTT, donde se implementará el protocolo de comunicaciones. Es decir, al estar implementado el protocolo de lectura de la máquina de vending en la plataforma MQTT, el módem debe comportarse como una “pasarela transparente RS232-MQTT”, proporcionando a la plataforma MQTT acceso al bus de datos de la máquina en formato RAW
  • El módem se gestiona desde la plataforma, cambiando su configuración en remoto vía MQTT. También debe de informar de forma periódica de su estado (cobertura, tecnología usada…)
  • El módem debe de informar inmediatamente a la plataforma MQTT cuando detecte un cambio en una de sus entrada, que estará conectada al sensor de puerta abierta de la máquina

Solución: MTX-Tunnel firmware + MTX-Java-IoT/MTX-Java-T/MTX-Java-T2 Archivo de configuración config.txt para socket TCP:

Configuración Observaciones

COMM_baudrate: 9600
COMM_bitsperchar: 8
COMM_autorts: off
COMM_autocts: off
COMM_stopbits: 1
COMM_parity: none
GPRS_apn: movistar.es
GPRS_login: MOVISTAR
GPRS_password: MOVISTAR
GPRS_timeout: 0
MTX_pin: 0000
MTX_mode: mqtt
MTX_model: MTX-4G-JAVA-IOT-STD-N
MTX_ping: 35
MTX_pingIP: 8.8.8.8
MTX_invertedCom: off
MTX_msToSend: 100
MTX_ATLimited: off
MTX_TPProtocol: ntp
MTX_TPServer: ntp.roa.es
MTX_TPServer2: es.pool.ntp.org
SMS_allPhones: off
SMS_sendIP: off
SMS_ATEnabled: on
SMS_ATResponse: on
MQTT_enabled: on
MQTT_server: tcp://test.mosquitto.org:1883
MQTT_id: [IMEI]
MQTT_attopic1: [IMEI]/AT
MQTT_atrtopic: [IMEI]/ATR
MQTT_keepalive: 300
MQTT_commrxtopic: [IMEI]/rx
MQTT_commtxtopic: [IMEI]/tx
DNS_enabled: on
DNS_mode: mqtt
DNS_mqttTopic: [IMEI]/dns
DNS_extended: off
DNS_period: 300
LOGGER_enabled: on
LOGGER_registerSize: 300
LOGGER_numRegistersFlash: 1500
LOGGER_mode: mqtt
LOGGER_mqttTopic: [IMEI]/logger LOGGER_ioEvent: on

Serial port baud rate
8 bit data
No flow control
No flow control
1 stop bit
No parity
APN GPRS provided by the GSM operator
GPRS Login
GPRS Password
Permanent 3G session
The SIM card PIN (if there is any)
MQTT serial gateways will be used
MTX modem model being used
One ping every 35 min. without communications
Ping address
Gateway port RS485
No fragmented networks
No limitations to AT commands
Time synch protocol
Time server
Backup time server
Send SMS with commands from any phone
Modem won’t respond IP to a missed call/SMS
Commands can be sent to the MTX by SMS
MTX responds with an SMS to a command SMS
MQTT service enabled
Broker IP/DNS specified, including identifying port
Identifier
MQTT topic to send AT commands
Topic to send replies to commands to
Connection keep alive (300 seconds)
Data received will be retransmitted via serial
Data received v/serial, retransmitted to this topic
Status data sending activated
Sending mode MQTT
Topic where status data will be sent
Extended data not sent (E/S, ADCs…)
Every 300 secs. (5 mins.) there’s a sending
Logger activated
Size of the record
Number of records in flash storage
Sending mode MQTT
Sending topic to MQTT broker of the data
Changes in digital inputs automatically sent

Detalles:

  • En el presente ejemplo se crea una pasarela transparente “RS232- MQTT” que permite el intercambio de datos RAW entre el bróker MQTT (u otra aplicación conectada al bróker MQTT) y la máquina conectada al puerto RS232 del módem. Todos los datos que el módem reciba por su puerto serie RS232 serán reenviados vía MQTT al topic del bróker especificado en el parámetro “MQTT_commtxtopic”. Y viceversa, el módem MTX se subscribe al topic especificado en el parámetro “MQTT_commrxtopic”, por lo que cualquier flujo de datos enviado a dicho topic (desde la propia plataforma MQTT o aplicación conectada a la misma) será reenviado al módem MTX, el cual reenviará automáticamente por su puerto serie RS232
  • Si en lugar de precisar una pasarela RS232- MQTT necesita una pasarela RS485-MQTT (y el módem MTX dispone de puerto RS485) tan sólo deberá establecer el parámetro “MTX_invertedCom: on” en el fichero de configuración
  • Tenga presente que las latencias de las comunicaciones pueden ser algo mayores que con una comunicación directa (ya que hay un intermediario, el bróker mqtt, y la velocidad de las comunicaciones dependerán de la potencia de éste). Ajuste los tiempos de timeout en caso de ser necesario en su protocolo
  • Además, el módem enviará su estado de forma periódica (cada 300 seg) al bróker MQTT (en un objeto JSON) al topic configurado en el parámetro “DNS_mqtttopic”. De forma análoga, cada vez que se produzca un cambio en una de sus entrada digitales, el módem enviará un JSON con los cambios al topic configurado en el parámetro “LOGGER_mqtttopic”