¿Buscas alguna otra cosa?
Detalles del escenario:
- Se precisa controlar 1 relé para activar el motor de bombeo de un pozo
- Se dispone de un sensor analógico de nivel de 0-10V. Cuando el nivel se encuentre bajo, es decir, cuando el sensor devuelva un valor por debajo de los 2V, el relé que actúa sobre el motor debe activarse para bombear agua. Cuando el sensor devuelva un valor por encima de los 8V, el relé debe desactivarse para dejar de bombear agua.
- El estado del relé (activado/desactivado) debe enviarse vía 4G/3G/2G a un bróker MQTT cada vez que se produzca un cambio. También debe poderse activar/desactivar el relé del módem que controla el motor del pozo en cualquier momento desde el bróker MQTT, es decir, remotamente. Una caída de la conectividad con el bróker MQTT no debe interferir en el comportamiento de la entrada del sensor analógico para con el relé
Solución: MTX-Tunnel firmware + MTX-IOT-S [4-N]
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: 199802407 MTX_mode: none MTX_ping: 30 MTX_pingIP: 8.8.8.8 MTX_numGSMErrors: 180 MTX_TPProtocol: ntp MTX_TPServer: ntp.roa.es MTX_TPServer2: es.pool.ntp.org MTX_TPFormat: unix 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_persistent: off MQTT_qos: 1 MQTT_keepalive: 60 MQTT_defaultOTopic: /IOCHANGE MQTT_defaultIOQos: 1 ADC_mode0: voltage ADC_config0: at;2000;8000;0;AT ^MTXTUNNEL=SETIO,8,1;AT ^MTXTUNNEL=SETIO,8,0;AT GPIO_mode8: output GPIO_config8: normal |
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 Reset if no registry on GSM network in 1800 secs. Time synch protocol Time server Time server backup Unix time format MQTT service MQTT broker, format protocol://url:port Device ID in broker Username Password MTX topic to recieve AT commands Topic where MTX sends responses to AT commands Persistence QoS established Keepalive MQTT topic to inform of output changes in real time MQoS to inform of output changes in real time ADC0 configured as voltage analog input – GPIO8 configured as a mandatory output (relay) GPIO8 configured as a normal output |
Detalles
- Los módem de la familia MTX-IOT-S disponen de hasta 8 salidas digitales ( de la GPIO0 a la GPIO7) y de 1 relé integrado (GPIO8). En este ejemplo se ha configurado la GPIO8, que está asociada al relé del módem MTX-IOT-S, para activar/desactivar el relé del motor
- La entrada analógica ADC0 del módem MTX-IOT-S se debe configurar para leer voltaje (no olvide configurar apropiadamente los microswitches para configurar el ADC0 en modo voltaje, encontrará más información en los Anexos de este manual)
- Al configurar el parámetro MQTT_defaultIOTopic el módem informará en ese topic MQTT en tiempo real de cualquier cambio en los GPIOs de entrada/salida. Por ello, cada vez que se se active/desactive el relé asociado a GPI8, el módem enviará un JSON a dicho topic MQTT informando del nuevo estado
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-09T12:33:18Z”
“ID”:”8”,
“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) - La configuración de la entrada ADC0 como at;2000;8000;0;AT^MTXTUNNEL=SETIO,8,1; AT^MTXTUNNEL=SETIO,8,0;AT lo que hace es:
– at: configura la entrada analógica como at, lo que hará ejecutar comandos AT específicos cuando el valor analógico esté por encima o debajo de un determinado umbral.
2000: Valor mínimo (en mV) para ejecutar los comandos AT de baja tensión
8000: Valor máximo (en mV) para ejecutar los comandos AT de alta tensión
0: Histéresis (en mV). En este ejemplo no se necesita
AT^MTXTUNNEL=SETIO,8,1: El comando AT que se ejecuta cuando el valor de la entrada analógica está por debajo de 2000 mV (es decir, el comando AT que activa la salida GPIO8 (el relé) para activar el motor).
AT^MTXTUNNEL=SETIO,8,0: El comando AT que se ejecuta cuando el valor de la entrada analógica está por encima de 8000 mV (es decir, el comando AT que desactiva la salida GPIO8 (el relé) para parar el motor).
AT: El comando AT que se ejecuta cuando el valor de sensor está en zona normal (es decir, entre 2000mV y 8000mV). En este ejemplo no es usado. - Para cambiar remotamente el estado del GPIO8 (el relé) basta con enviar desde la plataforma MQTT el comando AT^MTXTUNNEL=SETIO,8,1 (para activar el relé) y AT^MTXTUNNEL=SETIO,8,0 (para desactivar el relé). Los comandos AT deben enviarse al TOPIC MQTT configurado en el parámetro MQTT_attopic1 y el módem enviará las respuestas a los comandos AT al TOPIC MQTT MQTT_atrtopic
A continuación se muestra un ejemplo del envío del comando: