5. Gestión de datos recogido en ThingSpeak con Matlab

Una vez realizado la visualización de los datos recogidos con el sensor AM2302 (DHT22) tanto en Thingspeak como en Google Charts, se descargarán dichos datos en Matlab para su posterior visualización.

Para ello, lo primero será instalar la ThingSpeak Support Toolbox en Matlab; esta toolbox permite leer y escribir datos de ThingSpeak utilizando Matlab. El enlace para descargar la toolbox citada lo podéis encontrar aquí. Una vez descargado la toolbox, habrá que instalarlo en Matlab; abre Matlab, dentro de la ventana Home clica Set Path, cliquea Add Folder y seleccione la carpeta descarga.

Una vez instalada la toolbox y antes de empezar a trabajar desde Matlab, es recomendable echarle un vistazo al apartado Functions del enlace mencionado anteriormente, ya que, se muestran todas las funciones que tiene la toolbox ThingSpeak Support Toolbox.


Es hora de empezar a trabajar con Matlab. La función que se necesitará para leer los datos de un canal de ThingSpeak y guardarlos en un array de datos será el seleccionado thingSpeakRead. Para graficar los datos recogidos por Thingspeak nos interesará guardar tanto el array de datos como el del tiempo, por lo que se hará uso de la cuarta opción: [data, timestamp]=thingSpeakRead(___). A esta función habrá que introducir el ChannelID, los campos que se quieren leer, el número de puntos que se quieran recoger y en nuestro caso el Read Api Key del canal. ¡El Read Api Key solo habrá que añadir en caso de que tu canal sea privado! data está compuesto por dos columnas: datos de temperatura y humedad.

Al haber creado dos canales para el almacenamiento en la nube de los datos obtenidos de los sensores con un muestreo de 10 segundos -cada 10 segundos se guardará el dato recogido en el canal donde no se ha guardado el dato anterior-, hay que hacer uso de dos funciones thingSpeakRead, uno para cada canal.


El próximo paso es juntar los datos recogidos en el canal1 y en el canal2 de Thingspeak en un nuevo array al igual que se ha hecho para visualizar los datos en Google Charts; se calculará la longitud que deberá tener el nuevo array de datos (suma de la cantidad de datos de los dos canales), para que posteriormente haciendo uso de la función mod se intercalen los datos de cada canal en este nuevo array. Así se obtiene un array que guarda los datos de temperatura y humedad en el orden que se han recogido por el sensor. 


Lo último que se hará será graficar tanto los datos de temperatura como los de humedad obtenidos haciendo uso para ello del plot. Las gráficas correspondientes a los datos recogidos con el sensor AM2302 (DHT22) y almacenados en Thingspeak son las siguientes:





Una aplicación práctica que hemos sacado de esta adquisición de datos es la sintonización de un controlador PI para un regulador de temperatura de un pequeño invernadero del cual ya poseíamos su modelo.

El modelo que disponíamos era el siguiente:


Cuyo comportamiento queríamos mejorar, ya que a partir de los datos de temperatura adquiridos por el sensor y subidos a Thingspeak era el siguiente:



Como se puede apreciar a partir de las características dinámicas de la respuesta, el tiempo de establecimiento del sistema es de alrededor de 200 segundos.

Nuestro objetivo era rebajar ese tiempo de establecimiento entorno a los 100 segundos para que el invernadero alcance antes la temperatura deseada.

Usando el método de cancelación polo cero utilizado en gran parte de las asignaturas del máster, se muestra la expresión del controlador que cumple dichos requisitos:



Aplicando dicho controlador a nuestro sistema de regulación de temperatura obtenemos las siguientes características de respuesta:


Como se puede observar logramos cumplir los requisitos de respuesta que queremos que tenga nuestro invernadero.

Al igual que en las entradas anteriores os proporcionamos el código para que podaís implementarlo por vosotros mismos.

Comentarios

Entradas populares de este blog

1. Configuración del WIFI de la Raspberry Pi 3 por terminal y formas de acceder de forma remota a la RPI3

3. Almacenamiento de datos en ThingSpeak

Presentando el proyecto Raspberry Pi 3 (RPI3) + sensor AM2302 (DHT22)