# T.3.1.2 Aplicativo de lectura para Smartphone usando MQTT
A continuación se describe un ejemplo que permite inicializar la lectura de datos en un teléfono móvil mediante el protocolo MQTT. Más detalles se indicará en clases.
---
## Lectura del protocolo MQTT usando un smartphone

1. En la figura siguiente se encuentran tres bloques, la primera corresponde para el tópico que se va usar; el segundo y tercer bloque son los métodos para inicializar y cerrar la conexión a MQTT. Reemplace la parte en blanco con el servidor MQTT y tópico respectivo.

2. El diagrama siguiente corresponde al estado de la conexión de MQTT y la subscripción al tópico previamente definido. Tambien, en dicho diagrama mediante una condicional se cambia el estado a las diferentes etiquetas que tiene la apliación. Además, se deshabilita las acciones de los botones como las de "iniciar" y "parar" el proceso de transmisión. Finalmente, se muestra un mensaje de error si la conexión no ha tenido éxito.

3. En el diagrama de bloque siguiente se usa el estado mqtt.PublishedReceived para recibir/publicar cualquieras de las variables que se muestra en la figura como: Topic, Payload, Message, RetainFlag y DupFlag. En particular, nos interesas el mensaje (pyload no usado, se puede reemplazar por el topic).
En el diagrama se utiliza un procedimiento que permite decodificar el mensaje y transformarlo en diccionario. Esto permite que los datos sean tratados más facilmente y de manera independiente. Posteriormente los datos del mensaje y payload se cargan al procedimiento "llenarDatos".

4. En el diagrama de bloque siguiente se declara el procedimiento "llenarDatos". El procedimiento recibe dos parametros "msg" y "pyload". En dicho procedimiento se les asigna los valores a cada una de las etiquetas como son las de temperatura y humedad respectivamente. Esto último se los realiza accediendo al Key Value del mensaje. Finalmente también se muestra el mensaje en general (se podría enviar el nombre del tópico).

5. Finalmente el siguente bloque corresponde a un procedimiento que permite limpiar los datos cada vez que se presiona el boton stop.

:::info
:bulb: **Tarea**: Se le solicita que realice lo siguiente:
1. Modifique el programa de tal manera que pueda mostrar el nombre del topico que está transmitiendo el mensaje.
:::
### Bibliografía:
By Willian Zamora Mero.