¿Buscas alguna otra cosa?
Detalles del escenario:
- Se precisa controlar 8 ventiladores de una granja de forma autónoma. Cada ventilador tiene asociada una sonda de temperatura de protocolo Modbus RTU, con conexión RS485
- Cuando el Sensor de Temperatura X esté por encima de 30 grados, el Ventilador asociado X deberá activarse para facilitar la circulación de aire y bajar la temperatura del recinto. Cuando el Sensor de Temperatura X detecte una temperatura de 25 grados, debe desactivar el Ventilador X de nuevo. De esta manera, cada recinto de granja estará siempre comprendido entre 25 y 30 grados
- Además de activar los ventiladores, se debe de informar en tiempo real a una plataforma MQTT cada vez que un ventilador se activa/desactiva, para tener en el dashboard de la aplicación la información actualizada de forma constante. La pérdida de comunicaciones con la plataforma de control MQTT no debe interferir en el control de los ventiladores
Solución: MTX-Tunnel firmware + MTX-IOT-S [4-N]
Archivo de configuración config.txt:
Configuración | Observaciones |
COMM2_baudrate: 9600 COMM2_bitsperchar: 8 COMM2_autorts: off COMM2_autocts: off COMM2_stopbits: 1 COMM2_parity: none 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_portAux: modbusmaster 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 GPIO_mode0: output GPIO_config0: modbus;10;3;1;250;300;; GPIO_mode1: output GPIO_config1: modbus;11;3;1;250;300;; GPIO_mode2: output GPIO_config2: modbus;12;3;1;250;300;; GPIO_mode3: output GPIO_config3: modbus;13;3;1;250;300;; GPIO_mode4: output GPIO_config4: modbus;14;3;1;250;300;; GPIO_mode5: output GPIO_config5: modbus;15;3;1;250;300;; GPIO_mode6: output GPIO_config6: modbus;16;3;1;250;300;; GPIO_mode7: output GPIO_config7: modbus;17;3;1;250;300;; |
Data rate of communication of serial port Number of bits CTS Hardware flow control deactivated RTS Hardware flow control deactivated 1 stop bit No parity 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. Read modbus 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 GPIO0 configured as an output GPIO0 configured as a modbus output GPIO1 configured as an output GPIO1 configured as a modbus output GPIO2 configured as an output GPIO2 configured as a modbus output GPIO3 configured as an output GPIO3 configured as a modbus output GPIO4 configured as an output GPIO4 configured as a modbus output GPIO5 configured as an output GPIO5 configured as a modbus output GPIO6 configured as an output GPIO6 configured as a modbus output GPIO7 configured as an output GPIO7 configured as a modbus 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). Las 8 salidas digitales son de tipo colector abierto con corriente suficiente para conmutar un relé externo. En este ejemplo se han configurado todos los GPIOs del 0 al 7 como SALIDA, para controlar los ventiladores
- Si para su aplicación únicamente necesita gestionar un relé de baja potencia (hasta 1Amp), se recomienda el uso de GPIO8, pues está conectado a un relé interno del MTX-IOT-S
- Al configurar el parámetro MQTT_defaultOTopic el módem informará en ese topic MQTT en tiempo real de cualquier cambio en los GPIOs de salida. Por ello, cada vez que se cambie una salida desde Telnet, 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-08T08:12:45Z”
“ID”:0,
“VALUE”:1
“DIR”:”OUTPUT”
}
Donde:
– IMEI: indica el IMEI del módem MTX
– TYPE: indica el tipo de trama. GPIO = Entrada/Salida digital
– 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 una salida como modbus;10;3;1;250;300;; lo que hace es:
– modbus: configura la salida en modo modbus
10: la salida GPIO2 se asocia a la sonda de temperatura modbus con direccón 10
3: El comando modbus para leer el registro de temperatura es el 3
1: El registro a leer de la sonda, donde tiene la temperatura es el registro número 1
250: Si el ventilador cae por debajo de 250 (25 grados) la GPIO0 se desactivará, apagando en ventilador
300: Si se lee más de 300 (30 grados) el la salida GPIO0 se activará, encendiendo el ventilador