Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Sistema de detección temprana de inundaciones usando Arduino – Código fuente

Inundación temprana Supervisión Sistema:código fuente de circuito y proyecto

Tanto en los países en desarrollo como en los que no lo están, las inundaciones son los desastres naturales masivos que causan la pérdida de vidas humanas y animales y de propiedades. Inundaciones debidas a terremotos en los océanos, huracanes, lluvias y otros desastres naturales ocurren en muchas partes del mundo cada año.

Durante las lluvias, el sistema de drenaje no administrado en varias regiones geográficas provoca inundaciones y se pierden muchas vidas. Si tenemos algún sistema que pueda darnos una alerta temprana sobre inundaciones, entonces podemos salvar vidas de personas. Un sistema que utiliza tecnología para detectar el aumento del nivel del agua y avisar a las personas con antelación para que muchas personas puedan ser evacuadas.

Así que en este proyecto te traemos un prototipo que se puede usar para detectar el nivel del agua en algún estanque, represa o embalse y luego enviar una alerta usando un zumbador. Este es solo un prototipo a pequeña escala en el que vamos a utilizar un Arduino UNO, un sensor ultrasónico, un zumbador, una pantalla LCD y algunos cables de conexión.

Proyectos relacionados:

Diagrama de circuito para la detección temprana de inundaciones

Componentes necesarios

Proyectos relacionados:

Ahora, aprendamos uno por uno los componentes utilizados en este circuito básico.

Arduino UNO

Arduino es una plataforma de código abierto que se utiliza para desarrollar proyectos de electrónica. Se puede programar, borrar y reprogramar fácilmente en cualquier instante del tiempo. Hay muchas placas Arduino disponibles en el mercado como Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad, etc. con diferentes especificaciones según su uso.

En este proyecto vamos a utilizar Arduino UNO para controlar los electrodomésticos de forma automática. Tiene un IC de microcontrolador ATmega328 que funciona a una velocidad de reloj de 16 MHz. Es un poderoso que puede funcionar en los protocolos de comunicación USART, I2C y SPI.

Esta placa generalmente se programa usando el software Arduino IDE usando un cable micro USB. ATmega328 viene con un cargador de arranque integrado preprogramado que facilita la carga del código sin la ayuda del hardware externo. Tiene una amplia aplicación en la fabricación de proyectos o productos electrónicos. El lenguaje C y C++ se utiliza para programar la placa, que es muy fácil de aprender y usar.

Proyectos relacionados:

Arduino IDE hace que sea mucho más fácil de programar. Separa el código en dos partes, es decir, void setup() y void loop(). La función void setup() se ejecuta solo una vez y se usa principalmente para iniciar algún proceso, mientras que void loop() consiste en la parte del código que debe ejecutarse continuamente.

Este modelo consta de 6 pines de entrada analógica y 14 pines GPIO digitales que se pueden usar como salida de entrada, 6 de los cuales proporcionan salida PWM y analógica usando pinMode(), digitalWrite(), funciones digitalRead() y analogRead(). Los 6 canales de entrada analógica van desde los pines A0 a A5 y proporcionan una resolución de 10 bits.

La placa se puede alimentar con un cable USB que funciona a 5 voltios o con un conector de CC que funciona entre 7 y 20 voltios. Hay un regulador de voltaje integrado para generar 3,3 voltios para operar dispositivos de baja potencia.

Dado que el ATmega328 funciona con el protocolo de comunicación USART, SPI e I2C, tiene pines 0 (Rx) y 1 (Tx) para comunicación USART, SDA (A4) y SCL (A5) pin para I2C y SS (10), MOSI (11), MISO (12) y SCK (13) pines para protocolo de comunicación SPI.

Proyectos relacionados:

Sensor ultrasónico HC-SR04

HC-SR04 es un sensor ultrasónico que ayuda a medir distancias en muchos lugares sin contacto humano. Funciona según el mismo principio que el RADAR y el SONAR y proporciona una forma eficiente de medir distancias de forma muy precisa.

Teóricamente puede medir distancias de hasta 450 cm pero en la práctica puede medir distancias de 2 cm a 80 cm con una precisión de 3 mm. Es operado a 5 voltios, corriente menor a 15mA y frecuencia de 40 Hertz.

El HC-SR04 tiene un transmisor y un receptor instalados. La distancia se calcula con la fórmula básica de velocidad, distancia y tiempo que todos estudiamos en nuestra escuela, es decir,

Distancia =Velocidad x Tiempo

El transmisor del sensor HC-SR04 transmite una onda ultrasónica en el aire. Si esta onda es reflejada por algún objeto en el rango del sensor, entonces la onda reflejada en el aire es recibida por el receptor del sensor. Entonces, para calcular la distancia usando la fórmula anterior, debemos saber la velocidad y el tiempo.

Sabemos que la velocidad universal de la onda ultrasónica es de unos 330 m/s. El tiempo se mide por el circuito construido en el microcontrolador. El pin de eco se eleva durante el período de tiempo que tarda la onda ultrasónica en regresar al receptor. De esta manera podemos calcular la distancia entre el objeto y el sensor ultrasónico HC-SR04.

Proyectos relacionados:

Interfaz de HC-SR04 con Arduino UNO

El sensor ultrasónico HC-SR04 se puede utilizar con todos los microcontroladores como Arduino, PIC, Raspberry Pi, etc. En este proyecto vamos a conectar el sensor ultrasónico HC-SR04 con Arduino UNO . El módulo HC-SR04 tiene cuatro pines:VCC, GND, Trig y Echo.

Alimentamos el módulo HC-SR04 con 5 voltios y GND al Arduino UNO. El pin disparador y el pin Echo son los pines de entrada y salida, por lo que deben conectarse a los pines de entrada y salida del Arduino UNO. Entonces, para medir la distancia, primero configuramos el pin del gatillo en "alto" durante 10 microsegundos y luego lo configuramos en "bajo".

Esto generará una onda ultrasónica de frecuencia de 40 kHz que va al objeto y se refleja de vuelta al receptor del módulo. Si la onda detecta algún objeto, regresa inmediatamente a la parte receptora del módulo y el pin de eco se vuelve "alto" durante el período de tiempo durante el cual regresa al sensor.

Ahora, este período de tiempo multiplicado por la velocidad de la onda, que es de 330 m/s, nos da la distancia entre el módulo HC-SR04 y el objeto.

Publicación relacionada:

Pantalla LCD de 16×2

Interconectar una pantalla LCD de 16 X 2 con Arduino UNO es bastante fácil. Hay varios tipos de pantallas LCD disponibles en el mercado, pero la que estamos usando en este proyecto es 16×2, lo que significa que tiene dos filas y en cada fila podemos mostrar 16 caracteres.

Este módulo tiene un controlador HD44780 de Hitachi que ayuda a interactuar y comunicarse con los microcontroladores. Esta pantalla LCD puede funcionar en modo de 4 bits y modo de 8 bits. En el modo de 4 bits, solo se requieren 4 pines de datos para establecer la conexión entre la pantalla LCD y el microcontrolador, mientras que en el modo de 8 bits se requieren 8 pines de datos.

Aquí lo vamos a usar en modo de 4 bits, ya que requiere menos cables y simplifica el circuito. Veamos la descripción de los pines de la pantalla LCD de 16×2.

Pin Descripción del módulo LCD 16×2:
Fijar en LCD Descripción
VSS Pasador de tierra
CCV Fuente de alimentación de +5 V
EEV Pin para cambiar el contraste de LCD
RS Selección de registro:modo de datos o modo de comando
RW Modo de lectura o escritura
E Habilitar LCD
DB0-DB7 Los datos y comandos se alimentan usando estos pines
LED+ Ánodo del LED de retroiluminación
LED- Cátodo del LED de retroiluminación

Esta pantalla LCD no tiene luz propia, por lo que hay un LED detrás de la pantalla que actúa como luz de fondo de la pantalla. La interfaz de esta pantalla LCD con Arduino UNO es bastante fácil, ya que Arduino IDE proporciona una biblioteca LiquidCrystal que tiene muchas funciones incorporadas para facilitar la inicialización e impresión de cualquier cosa en la pantalla. Las funciones de LCD que vamos a utilizar principalmente en este proyecto son:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Funcionamiento del sistema de detección temprana de inundaciones y código fuente

Se colocará un sensor ultrasónico en algún nivel de la base, de modo que el transmisor y el receptor miren hacia el nivel del agua. Arduino UNO medirá la distancia entre el sensor y el nivel del agua.

La pantalla LCD imprimirá la distancia entre ellos. Estableceremos un punto de referencia para el nivel de inundación y, a medida que el agua alcance el punto de referencia, estableceremos el zumbador en "alto" y la pantalla LCD imprimirá el texto de alerta sobre la inundación.

Explicación del código

#include 
LiquidCrystal lcd(2,3,4,5,6,7);
lcd.begin(16,2);

Se incluye la biblioteca integrada para pantalla LCD. La función LiquidCrystal lcd() toma el número de pin de los datos conectados a Arduino UNO. Lcd.begin() inicia la pantalla LCD de 16×2.

pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT);  //echo pin
pinMode(20,OUTPUT); //buzzer

Los pines 18 y 20 son pines de salida establecidos para el disparador y el zumbador respectivamente y el pin 19 se establece como entrada para el pin de eco.

t=pulseIn(19,HIGH);
dist=t*340/20000;

la variable de tiempo 't' detecta la cantidad de tiempo hasta que el pin de activación se establece en alto, que se usa para calcular el tiempo en centímetros y almacenar el valor en la variable 'dist'.

if(dist<40)
{
 digitalWrite(20,HIGH);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Water level is rising. Kindly evacuate");
 delay(2000);
}
else
{
 digitalWrite(20,LOW);
 delay(2000);
}

En este código, hemos establecido la condición de inundación cuando la distancia entre el nivel del agua y el sensor ultrasónico es de 40 cm. Entonces, cuando el nivel del agua alcance los 40 cm o menos, el zumbador se establecerá en ALTO para dar una alerta y la pantalla LCD imprimirá y mostrará un mensaje de alerta de inundación.

Código fuente completo:

#include 
LiquidCrystal lcd(2,3,4,5,6,7);

float t = 0;
float dist = 0;

void setup()
{
 lcd.begin(16,2);
 pinMode(18,OUTPUT); //trigger pin
 pinMode(19,INPUT);  //echo pin
 pinMode(20,OUTPUT); //buzzer
 lcd.setCursor(0,1);
 lcd.print(" Water Level Detector");
 delay(2000);
}

void loop()
{
 lcd.clear();
 digitalWrite(20,LOW);
 digitalWrite(18,LOW);
 delayMicroseconds(2);
 digitalWrite(18,HIGH);
 delayMicroseconds(10);
 digitalWrite(18,LOW);
 delayMicroseconds(2);

 t=pulseIn(19,HIGH);
 dist=t*340/20000;

 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Distance : ");
 lcd.print(dist/100);
 lcd.print(" m");
 delay(1000);

if(dist<40)
{
 digitalWrite(20,HIGH);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Water level is rising. Kindly evacuate");
 delay(2000);
}
else
{
 digitalWrite(20,LOW);
 delay(2000);
}
}

Proyectos relacionados:


Tecnología Industrial

  1. C # usando
  2. Uso de Symphony Link como sistema de detección de fugas de agua para centros de datos
  3. Sistema de control de dispositivo basado en temperatura usando LM35
  4. Decodificador DTMF usando solo Arduino
  5. Sistema de asistencia que usa Arduino y RFID con Python
  6. Sistema de robótica de detección humana con Arduino Uno
  7. Sistema de alarma Arduino:SERENA
  8. Sistema de monitoreo y detección de incendios forestales (con alertas por SMS)
  9. Un sistema de detección de caídas basado en Arduino, Windows y Azure
  10. Sistema de advertencia de detección de colisiones basado en Arduino
  11. 5 ventajas de usar el sistema de detección de fugas de agua impulsado por IoT de Biz4intellias en industrias