Cliente MQTT para monitorizar del sistema

Cliente MQTT para monitor del sistema

En esta entrada se recoge la información necesaria para poder comprender una de las muchas maneras que hay para monitorizar el sistema del parking que hay que realizar para las prácticas. En este caso se ha optado por una solución mediante consola ejecutando un script en lenguaje Python.


El siguiente código está ajustado para que funcione simulando dos plazas de parking, sin embargo, es fácilmente adaptable a cualquier número de plazas con la que se quieran hacer las pruebas.

Para poder usar este código es necesario instalar la librería paho.mqtt

#usr/bin/python3

import paho.mqtt.client as paho
import os

global vehiculos

vehiculos = []
vehiculos.append("Suelo")
vehiculos.append("Suelo")

# Evento que se lanza cuando se subscribe a la escucha del servicio
def on_subscribe(client, userdata, mid, granted_qos):
    print("Subscribed: "+str(mid)+" "+str(granted_qos))

# Evento que se lanza cuando se envía un mensaje 
def on_message(client, userdata, msg):
global vehiculos
topic = (str(msg.topic)).split("/")[2]
vehiculo = str(msg.payload).split("'")[1]
plaza = int(topic[-1:])
vehiculos[plaza-1] = vehiculo
print ("En la plaza1 hay un " + vehiculos[0] + ", en la plaza2 hay un " + vehiculos[1] )
client = paho.Client()

# Estableciendo el funcionamiento de los métodos de la clase cliente para responder a los eventos
client.on_subscribe = on_subscribe
client.on_message = on_message

# Conexión al broker público en el puerto específico
client.connect("broker.mqttdashboard.com", 1883)

# Subscripción a todos los eventos que comiencen por "iiott2018/"
client.subscribe("iiot2018/#", qos=1)
client.loop_forever()

El código se encuentra disponible en Código Python MQTT

Funcionamiento

A continuación, se muestra un vídeo donde se puede ver el funcionamiento del sistema descrito en esta entrada.


Posibles errores

Uno de los posibles errores que se pueden dar al realizar esta prueba es la conexión al broker. En concreto, para realizar esta práctica se proporcionó al dispositivo internet mediante el móvil personal para que no hubiese problemas de bloqueo de puertos, seguridad, etc...

Comentarios

Entradas populares de este blog

Clasificador Difuso del sistema

Cliente MQTT del ESP8266

I2C