¿Buscas alguna otra cosa?
Detalles del escenario:
- Se pretende monitorizar un sensor 4-20mA con un módem 2G/3G/4G
- El módem va a estar alimentado por baterías, por lo que debe permanecer en modo ultrabajo consumo (~10 uAmperios) despertándose sólo para hacer la medida y enviarla vía 2G/3G/4G (dependiendo del modelo de módem) a un bróker MQTT
- Cada 24h el módem MTX debe despertarse, después debe activar su relé interno para
alimentar el sensor 4-20mA a medir, esperar unos segundos a que se estabilice la señal y
después proceder a la lectura. Tras realizar la lectura se intentará enviar los datos a un bróker MQTT. En caso de no poder enviar los datos, deben almacenarse en memoria flash (no volátil) para su envío en la siguiente ocasión - Tras el proceso de envío de información (satisfactorio o no), el módem debe desconectar el
relé interno (para quitar la alimentación al sensor 4-20mA y ahorrar consumo) y volver a entrar en modo ultrabajo consumo por un periodo de otras 24h
Solución: MTX-Tunnel firmware + MTX-Java-IoT
Archivo de configuración config.txt:
Configuración | Observaciones |
GPRS_apn: movistar.es GPRS_login: MOVISTAR GPRS_password: MOVISTAR GPRS_timeout: 0 MTX_pin: 0000 MTX_model: 199801458 MTX_TPProtocol: ntp MTX_TPServer: ntp.roa.es MTX_TPServer2: es.pool.ntp.org MTX_mode: none ULP_enabled: on ULP_sleepMode: minutes ULP_minutesOff: 1440 ULP_secondsOn: 120 ULP_relayMode: 1 MQTT_enabled: on MQTT_server: tcp://test.mosquitto.org:1883 MQTT_id: [IMEI] MQTT_attopic1: [IMEI]/AT1 MQTT_qos: 1 MQTT_keepalive: 300 MQTT_persistent: off LOGGER_enabled: on LOGGER_mode: mqtt LOGGER_numRegistersFlash: 90 LOGGER_numRegistersRam: 0 LOGGER_mqttTopic: [IMEI]/logger LOGGER_ioPeriod: 300 LOGGER_ioPeriodDelay: 10 |
GPRS APN from your network operator GPRS Login GPRS Password Connected while awake SIM without a PIN MTX terminal modem model used Time synchronization protocol Time server (MTX must synch time) Time server backup No gateways used Modem ULP service activated It will wake up by date/time It will wake up every 1440 minutes (24 hours) It will be awaken 2 minutes Relay will activate when modem awake MQTT service in the modem activated Broker IP/DNS, including port Identifier MTX-Tunnel subscribes to this topic for commands Service quality Keep alive MQTT connection (300 seconds) We don’t need persistence Logger activated Sending mode MQTT Upto 90 flash readings (3 months) No readings stored in RAM Sending topic to MQTT broker of the data There’s time for just 1 reading (the first one) 10 seconds to stabilize reading 4-20mA |
- Detalles:
La trama enviada al servidor tiene el siguiente formato JSON:
{“TYPE”:”IOS”,”IMEI”:357042060366409, “P”:””, “TS”:”28/04/19 18:32:53”,”IO1”:0,”IO2
”:0,”IO3”:0,”IO4”:0, “IO5”:0,”IO6”:0,”IO7”:0,”IO8”:0,”IO9”:0,”IO10”:0,”AD1”:1420,”AD2”:0,
“CO1”:”0”,”CO2”:”0”,”CO2”:”3”}
Donde:
TYPE: tipo de trama IOS
IMEI: identificativo interno del MTX
P: campo de usuario especificado en el parámetro LOGGER_password
TS: timestamp de cuando se recogieron los datos
IO1: es el valor de la entrada/salida digital 1 del módem (si la tiene disponible)
IO2: es el valor de la entrada/salida digital 2 del módem (si la tiene disponible)
IO3: es el valor de la entrada/salida digital 3 del módem (si la tiene disponible)
IO4: es el valor de la entrada/salida digital 4 del módem (si la tiene disponible)
IO5: es el valor de la entrada/salida digital 5 del módem (si la tiene disponible)
IO6: es el valor de la entrada/salida digital 6 del módem (si la tiene disponible)
IO7: es el valor de la entrada/salida digital 7 del módem (si la tiene disponible)
IO8: es el valor de la entrada/salida digital 8 del módem (si la tiene disponible)
IO9: es el valor de la entrada/salida digital 9 del módem (si la tiene disponible)
IO10: es el valor de la entrada/salida digital 10 del módem (si la tiene disponible)
AD1: es el valor de la entrada analógica 1 del módem (lectura sensor 4-20mA)
AD2: es el valor de la entrada analógica 2 del módem (si la tiene disponible)
CO1: es el valor de la entrada contadora de pulsos 1 (si la tiene disponible)
CO2: es el valor de la entrada contadora de pulsos 2 (si la tiene disponible)
CO3: es el valor de la entrada contadora de pulsos 3 (si la tiene disponible) - Recuerde que para configurar las entrada analógicas como 4-20mA (en lugar de 0-50V como viene de fábrica el módem), debe configurar los microswitches 7 y 8 a ON, como indican las tablas del “Anexo A” del presente manual
- Tenga presente que los ULP_minutesOff que el MTX-Tunnel permanecerá dormido empiezan a contar justo en el momento que el módem entra en modo ultrabajo consumo
- Desde la plataforma MQTT puede finalizar la sesión ULP en cualquier momento (sin esperar a finalizar los 2 minutos). Para ello puede enviar al módem (al topic [IMEI]/AT1) el comando AT^MTXTUNNEL=SETULPSECONDS,0
- Tenga presente que el módem envía un JSON donde se incluye la hora. Por esa razón se
incluye la configuración de 2 servidores de tiempo NTP - Resumen del funcionamiento del ejemplo es el siguiente:
• El módem inicia los procesos internos de conexión a internet y activa el relé para alimentar el sensor
• Una vez conectado a Internet se sincroniza la hora
• Pasados los segundos configurados en Logger_ioPeriodDelay), para estabilizar el sensor
tras su activacón con el relé, el módem toma una muestra de sus E/S, tomando la lectura
del sensor 4-20mA
• El módem almacena la lectura en memoria Flash e intenta enviarla al servidor MQTT,
junto con otras lecturas que pudiera tener almacenadas de días anteriores que por algún
problema no pudieron ser enviadas
• Cada lectura enviada correctamente es eliminada de la memoria flash
• Pasados “ULP_secondsOn” segundos, o bien habiéndose forzado el fin desde el servidor
MQTT, el módem entra en modo bajo consumo 1440 minutos (1 día), no sin antes
desactivar el relé y quitando, por tanto, la alimentación al sensor 4-20m