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.



Comentarios
Publicar un comentario