¿Buscas alguna otra cosa?

Tunnel – Lectura de contadores IEC, DLMS/Cosem, Modbus… con los protocolos implementados en una plataforma MQTT.

Detalles del escenario:

  • Se pretende realizar una lectura de un parque grande de contadores de diferentes tipos (contadores IEC, contadores con protocolo DLMS/Cosem, Analizadores de redes de protocolo Modbus, etc Todos los dispositivos cuentan con un puerto serie RS232 o RS485
  • Con el fin de abaratar el sistema, se utilizarán dispositivos económicos con conectividad 2g/3g/4g, como el módem MTX-4G-JAVA-T, cuyo modelo cuenta con bus RS232 y RS485, por lo que es apto para todos los casos. Las tarjetas SIM utilizadas podrán ser de cualquier operador, por lo que no está garantizado que las IPs que proporcionen las tarjetas SIM sean con IP pública y mucho menos con IP fija. Por lo tanto la conectividad debe establecerse siempre DESDE el contador HACIA la plataforma
  • La comunicación entre plataforma y dispositivos será MQTTS, lo que garantiza la conectividad requerida en el apartado anterior y añade una capa de seguridad SSL en las comunicaciones entre plataforma y contador
  • Los módems actuarán como “pasarelas transparentes Serie – MQTT”, por lo tanto la interpretación de los protocolos (es decir la inteligencia de protocolo IEC, DLMS/Cosem, Modbus, …) estará en la plataforma. Esto permite que en caso de añadir nuevas prestaciones no sea necesario actualizar remotamete el Firmware de todo el parque de módems, con el riesgo y complejidad que conlleva, sino actualizar únicamente el software en un único lugar, el de la plataforma MQTT
  • Así mismo, además de poder leer desde la plataforma los distintos contadores, debe implementarse un “Device Manager”, para poder visualizar de manera constante el estado de los módems (estado, cobertura, …) así como poder cambiar la configuración de los mismos en cualquier momento
  • Los módems también tienen que tener habilitada la comunicación por SMS, permitiendo que, desde varios números de teléfonos autorizados, se pueda comprobar el estado, cambiar configuraciones (por ejemplo un APN incorrecto que no permita la comunicación con la plataforma MQTT), ejecutar resets remotos o cualquier otra operación
  • El módem debe tener el firmware (MTX-Tunnel) firmado y bloqueado. Es decir, no podrá manipularse ni cambiarse ni con acceso físico al dispositivo. Además, la configuración del módem estará encriptada y para mayor seguridad, la memoria bloqueada. Únicamente podrá desbloquearse, de ser necesario, desde la plataforma MQTT o desde un número de teléfono autorizado
  • El módem debe de contar con Watchdogs que le permitan autorecuperarse de situaciones de conectividad problemáticas. Aunque no se utilizará por no ser necesario, el módem debe estar preparado para poder activar desde la plataforma MQTT o vía SMS, un autoreset diario cada 24h

Solución: MTX-Tunnel firmware + MTX-Java-IoT/MTX-Java-T/MTX-Java-T2

Archivo de configuración config.txt (master):

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: 199801445
MTX_ping: 35
MTX_pingIP: 8.8.8.8
MTX_invertedCom: off
MTX_msToSend: 100
MTX_ATLimited: off
SMS_allPhones: off
SMS_sendIP: off
SMS_ATEnabled: on
SMS_ATResponse: on
SMS_validPhone1: +34666123456
SMS_validPhone2: +34666123457
FIREWALL_enabled: off
MQTT_enabled: on
MQTT_server: ssl://test.mosquitto.org:8883
MQTT_id: [IMEI]
MQTT_attopic1: [IMEI]/AT
MQTT_atrtopic: [IMEI]/ATR
MQTT_keepalive: 300
MQTT_commrxtopic: rxmaster
MQTT_commrxtopic: txmaster
DNS_enabled: on
DNS_mode: mqtt
DNS_mqttTopic: [IMEI]/dns
DNS_extended: off
DNS_period: 300
Serial port baud rate
8 bit data
No flow control
No flow control
1 stop bit
No parity
GPRS APN from your network operator
GPRS Login
GPRS Password
MTX-Tunnel is always GPRS connected
If SIM card has no PIN security, use 0000 value
MQTT serial gateways will be used
MTX-Terminal modem model used
One ping every 35 min. without communications
Ping address
Gateway port RS485
No fragmented networks
We don\’t want AT command limitations
Send SMS with commands from any phone
Modem won’t respond to a missed call/SMS
Commands can be sent to the MTX by SMS
MTX responds with an SMS to a command SMS
Authorized phone number 1
Authorized phone number 2
No firewall
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
MQTT sending mode
Topic where status data are sent
Extended data (E/S, ADCs…) are not sent
One sending every 300 secs (5 mins.)

Detalles:

  • El fichero config.txt mostrado corresponde a los módems conectados a dispositivos RS232. Si usted necesita utilizar el puerto RS485, tan solo necesita cambiar el parámetro MTX_invertedCom a “on”
  • De igual forma debe ajustar los valores de los parámetros COMM_ ajustándolos a la configuración del puerto serie del dispositivo conectado
  • Si utiliza comunicaciones SSL y necesita incorporar los certificados de su bróker, al final de este documento encontrará un Anexo con el procedimiento
  • Recuerde que con este ejemplo la plataforma MQTT acceder directamente al puerto serie del dispositivo y debe ser ésta la que interprete el protocolo, pues el módem trata la información de forma transparente. Además, desde la plataforma estará monitorizando el estado de los módems (pues los módems envían su estado cada X minutos) y además puede utilizar los topics MQTT_ATTopic1 para enviar comandos AT al módem desde la plataforma en cualquier momento (para realizar cambios de configuración, resets, etc). Recuerde también que puede establecer hasta 3 topics de comandos AT para cada dispositivo. Si pone el mismo tópic en todos los módems podrá, ejecutando un solo comando en su plataforma MQTT, ejecutar una acción (comando AT) en todos los módems
  • Con la configuración presentada, todos los módems se subscriben al topic [IMEI]/rx.  Esto hace que todas las tramas de datos enviados por la plataforma a ese topic sean recibidos por el modem correspondiente y retransmitido, tal cual, por su puerto serie RS232 o RS485.  De la misma forma, todas las tramas de datos recibidas por el puerto serie RS232 ó RS485 de los módems, son retransmitidos automáticamente vía MQTT al topic [IMEI]/tx.  Recuerde que no es necesario substituir [IMEI] por el IMEI correspondiente, el módem lo hace automáticamente
  • 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