Este proyecto se basa en el diseño, análisis y fabricación de un depósito de agua, con una salida y una entrada de agua, cuyo nivel del líquido es controlado para mantenerlo estable en el valor que el usuario desee. Empleando un sensor ultrasónico se mide el nivel del agua en tiempo real y un controlador PI implementado en el microcontrolador ESP8266, de acuerdo a la medición del nivel, ajusta la potencia administrada a la bomba controlando así el flujo de entrada para mantener estable el nivel del líquido. Se realizaron pruebas para calibrar los sensores de caudal empleados, para verificar como afecta la temperatura al sensor ultrasónico, para verificar la linealidad del control de potencia de la bomba y para determinar el rango de linealidad del sistema. Los resultados obtenidos demuestran que es correcto asumir un rango lineal de funcionamiento y que dentro del mismo el controlador PI funciona correctamente manteniendo el nivel estable con un error del 5%.
Este programa permite emplear el sistema de control de nivel por medio de la comunicación por puerte serie entre la computadora y el microcontrolador para realizar la identificación del sistema, pensado para emplearse en la cátedra de Sistemas de Control de la UTN Facultad Regional Paraná.
El usuario debe cargar el programa al microcontrolador ESP8266, conectarlo a la computadora y ejecutar la aplicación WaterTank, una vez se ejecuta debe ingresar el puerto serie del microcontrolador y luego un valor númerico para el PWM de la bomba de agua y así el sistema comenzará a funcionar ingresando agua al tanque y verá que también sale agua del mismo. En algún punto, según el PWM ingresado, el sistema llegará al punto de equilibrio manteniendo estable el nivel del agua y serán iguales los valores de caudal de salida y de entrada, todos estos datos se envían por puerto serie a la aplicación la cual al cerrarla generará un archivo con formato .mat con todos los datos recopilados desde el momento que el sistema comenzó a funcionar. De esta forma se pueden analizar los datos con herramientas como GNU Octave o MatLab.
- Git
- Visual Studio Code
- PlatformIO
- Librería Wire
- Librería SPI
- Librería Adafruit_BMP085
- Librería SimpleKalmanFilter
Para poder usar el sistema y almacenar todos los datos en un archivo .mat para su posterior análisis
se debe descargar este repositorio para así compilar y subir el código main.cpp
al micrcontrolador ESP826,
y usar la aplicación WaterTank
correspondiente a su sistema operativo.
- Abrir una Terminal de Comandos: Ubiquese en la carpeta donde quiera descargar el repositorio y
abra allí una terminal de comandos. También puede usar el acceso rápido
Ctrl+Alt+T
para abrir un terminal de comandos y moverse a la ubicación deseada con el comandocd
. - Clonar el Repositorio: En la terminal de comandos ahora escriba:
git clone https://github.com/ezequiel1611/water_level_data_analysis
y presione Enter
para crear una copia local de este repositorio en su computadora.
- Abrir el Símbolo del Sistema: Presione
Win+R
, escribacmd
y presioneEnter
para abrir el símbolo del sistema. Muevase hacia la carpeta donde quiere descargar el repositorio usando el comandocd
. Por ejemplo, si quiere tener el repositorio en una carpeta llamadaScripts
en el Escritorio, puede escribir:
cd %USERPROFILE%\Desktop\Scripts
- Clonar el Repositorio: En el símbolo del sistema ahora escriba:
git clone https://github.com/ezequiel1611/water_level_data_analysis
y presione Enter
para crear una copia local de este repositorio en su computadora.
En la sección Release
verá la "Aplicación del Tanque de Agua", haga click en el enlace y será
redireccionado esta sección donde podrá ver una breve descripción de la aplicación y encontrará
también al final varios archivos para descargar:
De los archivos de la lista deberá hacer click en la WinDist
o LinDist
de acuerdo a su sistema
operativo, de ser Windows deberá descargar la versión WinDist
y en el caso de versiones de Linux
basadas en Ubuntu deberá descargar la versión LinDist
.
Una vez descargado el archivo .zip correspondiente, extraiga su contenido y entre en la carpeta
creada, una vez allí dirigase a la carpeta dist
y encontrará en ella el archivo ejecutable de la
aplicación, al hacer doble click la misma se iniciará mostrando una ventana emergente donde deberá
ingresar el puerto serie asociado al ESP8266.
Tenga en cuenta que la nomenclatura usada para los puertos serie cambia entre Windows y Linux, por defecto la aplicación mostrará el puerto predefinido usado en sistemas Linux.
Una vez ingresado el puerto serie al que se encuentra conectado el microcontorlado, deberá especificar un valor para el PWM de la bomba de agua (entre 0 y 1023).
Ahora la aplicación comenzará a recopilar datos del microcontrolador, usted podrá ver en la parte
superior de la aplicación la información en tiempo real de los caudales de entrada y de salida
del tanque y en un gráfico central se vera la información en tiempo real del nivel del agua. En todo
momento usted podrá pausar o reanudar la toma de datos haciendo click en el botón Pausar/Reanudar
.
Cuando desee terminar la prueba haga click en el botón Salir
para cerrar así la aplicación y obtener,
en el mismo directorio donde se encuentra el ejecutable, un archivo llamado data.mat
el cual contiene
la información de los datos de caudal de entrada, caudal de salida, PWM y nível del líquido recibidos
durante la sesión.
El archivo data.mat
puede ser cargado al entorno de GNU Octave o MatLab usando el comando
load("data.mat")
Una vez cargado el archivo usted verá en su espacio de trabajo cuatro vectores: Level, PWMset, QIn y QOut.
Estos vectores representan las lecturas en tiempo real del nivel del líquido, el PWM de la bomba, el caudal
de entrada en ml/s y el caudal de salida en ml/s respectivamente. Usted ahora puede trabajar sobre cada
dato de forma independiente, como por ejemplo visualizarla de forma gráfica con el comando plot(Level)
.
Esta aplicación y generación de archivo de datos está pensada para poder realizar una identificación y análisis de la respuesta al impulso del sistema.