Sistema de monitoramento de nível de líquido (óleo) IoT

Sistema de monitoreo de nivel de líquido (aceite) de IoT

En este artículo, crearemos un dispositivo que controlará los niveles de líquido en agua/aceite o cualquier tanque. La información del nivel monitoreado se enviará a una estación de monitoreo. Esto puede resultar útil para monitorear algunos tanques de agua instalados en lugares donde los humanos no pueden llegar con frecuencia y en lugares que son tóxicos, como laboratorios donde se almacenan productos químicos líquidos en grandes contenedores.

enlace:

Componentes necesarios

Herramientas requeridas/bibliotecas requeridas
IDE de Arduino
Biblioteca Arduino – Administrador de Wi-Fi

Informaciones técnicas
Usaremos un sensor de medición de distancia por infrarrojos para medir el nivel de líquido en contenedores o tanques. La salida del sensor se mide en una unidad y se almacena en un microcontrolador; en este caso, Arduino UNO. Luego, los datos del sensor se envían mediante ESP al servidor Thingspeak para su monitoreo.

Diagrama de bloques

Figura 1 Sistema de monitoreo de nivel de líquido

El sensor de infrarrojos está conectado al Arduino Uno y le envía datos del sensor. ESP está conectado a Arduino y a un enrutador Wi-Fi, con una biblioteca ThingSpeak para fines de comunicación.

Diagrama de circuito

Figura 2 Placa Atmega 328 con ESP

Cómo funciona el sistema

  • Cuando se enciende por primera vez, ESP genera un punto de acceso llamado "OilTank -1" que se muestra en una pantalla OLED.
  • Necesitamos conectarnos a él y abrir la URL para configurar ESP.
  • Luego en el panel de configuración podremos definir a qué Wi-Fi ESP se conectará. Simplemente ingrese el SSID y la contraseña de Wi-Fi.
  • Después de conectarse a Wi-Fi, el nombre de Wi-Fi se muestra en la pantalla OLED.
  • El dispositivo también funciona con una batería, por lo que en la pantalla también se muestra el porcentaje de batería y el nivel de líquido en el tanque.
  • Ahora, después de conectarse a Internet, el dispositivo envía datos cada 20 segundos al servidor de Thingspeak.
  • Si se desconecta el Wi-Fi, en la pantalla verá que el Wi-Fi está desconectado y ESP generará un punto de acceso nuevamente.

Entendiendo el código fuente
Para entender el código, hay dos archivos; uno es para ESP y otro es para Arduino.

ESP.ino
También estamos utilizando una biblioteca de Wi-Fi para que ESP configure fácilmente ESP usando su punto de acceso sin escribir información de Wi-Fi en código. Estamos conectados con la API Thingspeak cuando Internet está conectado. El código está diseñado para enviar cualquier cosa que llegue al serial, que no sea un comando ESP, al panel API de Thingspeak.

Así que echemos un vistazo al código.

  • En la función de configuración estamos creando un punto de acceso usando la biblioteca WiFi-Manger
    wifiManager.autoConnect(“OilTank-1”);
  • Si se crea el punto de acceso, el ESP no estaba conectado previamente al Wi-Fi que ahora está disponible. El punto de acceso es un bucle de bloqueo de programas, por lo que enviamos un comando de "configuración" antes de crear un punto de acceso. Esto significa que la información de configuración se mostrará en la pantalla.
  • Si el punto de acceso está APAGADO, enviamos el comando "conn", lo que significa que el ESP está conectado a Wi-Fi y el programa continúa.
    Serie.print(“estafa”);
  • El ESP también está escuchando algunos comandos a los que responde el Arduino.

  • Si no se reconoce ninguno de estos comandos, estos datos serán los datos del nivel del tanque que se enviarán utilizando la biblioteca de thingspeak.
    ThingSpeak.writeField(myChannelNumber, 1, recivedData, myWriteAPIKey);

Arduino.ino
Arduino está instalado con una biblioteca OLED para mostrar datos OLED; también se comunica con ESP en comunicación serie.
El código Arduino también toma valores analógicos del sensor en el pin analógico A2 y calcula los voltajes. Desde allí podemos asignar esto al nivel del tanque.

La función tank_data toma una lectura en el pin analógico 2 y luego calcula la lectura de voltaje y la envía al ESP durante un período de 20 segundos.
val = lectura analógica(A2);
voltaje = ((val * 3.3000) / 1024.0);

Hay algunos comandos para OLED, que Arduino recibe de ESP en serie.

Así es como podemos hacer un sistema de monitoreo de nivel de líquido.

Código fuente de Board.ino:

Código fuente de ES.ino:

Vídeo de demostración:

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.