Sistema de detección precoz de inundaciones mediante Arduino - Código de entrega
Inundación temprana Monitorización Sistema - Código de suministro de circuitos y empresas
Tanto en los países en desarrollo como en los que no lo están, las inundaciones son la mayor catástrofe pura que provoca la pérdida de vidas y bienes humanos y animales. Las inundaciones como consecuencia de terremotos oceánicos, huracanes, lluvias y otros desastres puros se producen anualmente en muchos componentes del planeta.
Durante las lluvias, la falta de gestión del sistema de drenaje en diversas zonas geográficas provoca inundaciones y el desplazamiento de muchas vidas. Si ahora tenemos algún sistema que pueda proporcionar una alerta temprana relacionada con las inundaciones, entonces podremos salvar la vida de las personas. Un sistema que utiliza la experiencia para detectar la subida del nivel del agua y alertar con antelación a las personas que pueden ser evacuadas.
Así, en esta aventura te presentamos un prototipo que puede utilizarse para detectar el estado del agua en algún lago, presa o embalse, tras lo cual envía una alerta utilizando un timbre. Se trata de un prototipo a pequeña escala en el que utilizaremos un Arduino UNO, un sensor ultrasónico, un zumbador, una pantalla LCD y algunos cables de conexión.
Iniciativas asociadas:
Diagrama de circuito para la detección temprana de inundaciones
Elementos necesarios
Iniciativas asociadas:
Ahora, vamos a conocer los elementos utilizados en este circuito fundamental, uno tras otro.
Arduino UNO
Arduino es una plataforma de suministro abierto que se utiliza para desarrollar emprendimientos electrónicos. Se puede programar, borrar y reprogramar de forma sencilla en cualquier momento. Existen varias placas Arduino, como Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad, etc., con especificaciones totalmente diferentes según su uso.
En esta aventura vamos a utilizar el Arduino UNO para regular robóticamente el equipamiento de la casa. Tiene un microcontrolador ATmega328 que funciona a una velocidad de reloj de 16MHz. Es muy eficiente y puede funcionar con los protocolos de comunicación USART, I2C y SPI.
Esta placa se suele programar con el programa de software Arduino IDE mediante un cable micro USB. El ATmega328 viene con un cargador de arranque preprogramado en la placa, lo que hace más sencillo añadir el código con la ayuda de un {hardware} externo. Dispone de un enorme software para realizar iniciativas electrónicas o mercancías. Para programar la placa se utiliza el lenguaje C y C++, que puede ser muy sencillo de enseñar y utilizar.
Iniciativas asociadas:
El IDE de Arduino hace que tu programación sea mucho más sencilla. Separa el código en dos componentes: void setup() y void loop(). La actuación void setup() se ejecuta sólo una vez y se utiliza para iniciar algún curso, mientras que void loop() consiste en la parte del código que debe ejecutarse repetidamente.
Este maniquí consta de 6 pines de entrada analógica y 14 pines digitales GPIO que pueden utilizarse como salida de entrada 6 de los cuales suministran PWM y salida analógica utilizando la funcionalidad pinMode(), digitalWrite(), digitalRead() y analogRead(). los 6 canales de entrada analógica son de los pines A0 a A5 y proporcionan 10 bits de decisión.
La placa puede alimentarse con un cable USB que funciona a 5 voltios o con una toma de corriente continua que funciona entre 7 y 20 voltios. Puede haber un regulador de voltaje a bordo para generar 3,3 voltios para hacer funcionar los aparatos de baja potencia.
Como el ATmega328 funciona con el protocolo de comunicación USART, SPI e I2C, tiene los pines 0 (Rx) y 1(Tx) para la comunicación USART, los pines SDA (A4) y SCL (A5) para I2C y los pines SS (10), MOSI (11), MISO (12) y SCK (13) para el protocolo de comunicación SPI.
Iniciativas asociadas:
Sensor ultrasónico HC-SR04
El HC-SR04 es un sensor ultrasónico que ayuda a medir distancias en muchos lugares sin contacto humano. Funciona realmente con el mismo precepto que el RADAR y el SONAR y proporciona un enfoque ecológico para medir distancias de forma realmente precisa.
Teóricamente puede medir distancias de hasta 450 cm, pero virtualmente puede medir distancias de 2 cm a 80 cm con una precisión de tres mm. Funciona a 5 voltios, con una frecuencia inferior a 15mA y 40 Hertz.
El HC-SR04 tiene un transmisor y un receptor colocados. El alcance se calcula con el sistema esencial de velocidad, distancia y tiempo que todos hemos estudiado en nuestro colegio, es decir
Distancia = Velocidad x Tiempo
El transmisor del sensor HC-SR04 transmite una onda ultrasónica dentro del aire. Si esta onda es reflejada por algún objeto dentro del alcance del sensor, entonces la onda reflejada dentro del aire es adquirida por el receptor del sensor. Por tanto, para calcular la diferencia mediante el sistema anterior, debemos conocer siempre la velocidad y el tiempo.
Todos sabemos que la velocidad común de la onda ultrasónica es de unos 330 m/s. El tiempo se mide mediante la construcción del circuito en el microcontrolador. La clavija del eco será excesiva durante el intervalo de tiempo que la onda ultrasónica tarde en volver al receptor. De este modo podemos calcular el intervalo entre el artículo y el sensor ultrasónico HC-SR04.
Iniciativas asociadas:
Interfaz del HC-SR04 con el Arduino UNO
El HC-SR04 se puede utilizar con todos los microcontroladores como Arduino, PIC, Raspberry Pi, etc. En esta aventura vamos a interconectar el sensor ultrasónico HC-SR04 con el Arduino UNO. El módulo HC-SR04 tiene 4 pines: VCC, GND, Trig y Echo.
Alimentamos el módulo HC-SR04 con 5 voltios y GND al Arduino UNO. Los pines de entrada y salida son los pines de entrada y salida, por lo que están relacionados con los pines de entrada y salida del Arduino UNO. Así que para medir el alcance, empezamos con el pin de desconexión "excesivo" durante 10 microsegundos, tras lo cual el pin de desconexión está "bajo".
Generará una onda ultrasónica de 40 kHz de frecuencia que funciona para el artículo y se muestra de nuevo al receptor del módulo. Si la onda detecta algún objeto, vuelve instantáneamente al receptor una parte del módulo y la clavija del eco se pondrá en "exceso" durante el intervalo de tiempo por el que vuelve de nuevo al sensor.
Ahora este intervalo de tiempo multiplicado por la velocidad de la ola, que es de 330 m/s, nos da el intervalo entre el módulo HC-SR04 y el artículo.
Publicación asociada:
pantalla LCD 16×2
La interfaz de la pantalla LCD 16 X 2 con Arduino UNO es bastante sencilla. Existen numerosos tipos de LCD, pero el que vamos a utilizar en esta aventura es de 16×2, lo que significa que tiene dos filas y en cada una de ellas podemos mostrar 16 caracteres.
Este módulo tiene el controlador HD44780 de Hitachi, que ayuda a interactuar y hablar con los microcontroladores. Este LCD puede funcionar en modo de 4 bits y en modo de 8 bits. En el modo de 4 bits sólo se necesitan 4 pines de conocimiento para verificar la conexión entre el LCD y el microcontrolador, mientras que en el modo de 8 bits se necesitan 8 pines de conocimiento.
Aquí lo utilizaremos en modo de 4 bits porque requiere mucha menos variedad de cables y hace que el circuito se simplifique. Echemos un vistazo a la descripción de los pines del LCD 16×2.
Descripción de las patillas del módulo LCD 16×2:
Clavija en el LCD | Descripción |
VSS | Clavija del suelo |
VCC | alimentación de +5V |
VEE | Clavija para variar la distinción del LCD |
RS | Elige el registro: modo de conocimiento o modo de mando |
RW | Modo Aprender o Escribir |
E | Activar la pantalla LCD |
DB0-DB7 | El conocimiento y el mando se alimentan mediante estos pines |
LED+ | Ánodo de la retroiluminación LED |
LED- | Cátodo de la retroiluminación LED |
Esta pantalla LCD no tiene suavidad personal, por lo que hay un LED detrás de la pantalla que actúa como luz de fondo del programa. La interfaz de esta pantalla LCD con el Arduino UNO es bastante sencilla, ya que el IDE de Arduino proporciona una biblioteca de cristal líquido que tiene un montón de actuaciones para que sea más sencillo inicializar e imprimir algo en el programa. Las características del LCD que vamos a utilizar principalmente en esta empresa son:
LiquidCrystal liquid crystal display(rs, en, d4, d5, d6, d7);
liquid crystal display.start()
liquid crystal display.clear()
liquid crystal display.print()
Funcionamiento del sistema de detección temprana de inundaciones & Suministro Código
Se puede colocar un sensor ultrasónico en alguna etapa de base, de modo que el transmisor y el receptor estén orientados hacia la etapa de agua. El Arduino UNO medirá la distancia entre el sensor y el nivel del agua.
La pantalla LCD imprimirá el intervalo entre ellos. Estableceremos algún punto de referencia para la fase de inundación y cuando el agua alcance el punto de referencia, pondremos el zumbador en "excesivo" y la pantalla LCD imprimirá el contenido textual de alerta sobre la inundación.
Racionalización del código
#embody
LiquidCrystal liquid crystal display(2,3,4,5,6,7);
liquid crystal display.start(16,2);
Se incluye la biblioteca integrada para el espectáculo LCD. LiquidCrystal LiquidCrystal LiquidCrystal mostrar() mostrar() la variedad de conocimientos relacionados con Arduino UNO. Pantalla de cristal líquido.start() inicia la pantalla LCD de 16×2.
pinMode(18,OUTPUT); //set off pin
pinMode(19,INPUT); //echo pin
pinMode(20,OUTPUT); //buzzer
Los pines 18 y 20 son pines de salida para la desconexión y el zumbido, respectivamente, y el pin 19 está preparado como entrada para el pin del eco.
t=pulseIn(19,HIGH);
dist=t*340/20000;
la variable de tiempo "t" detecta el periodo de tiempo hasta que la clavija de desconexión se sobrepasa, lo que se utiliza adicionalmente para calcular el tiempo en centímetros y el valor del minorista en la variable "dist".
if(dist<40)
{
digitalWrite(20,HIGH);
liquid crystal display.clear();
liquid crystal display.setCursor(0,1);
liquid crystal display.print("Water stage is rising. Kindly evacuate");
delay(2000);
}
else
{
digitalWrite(20,LOW);
delay(2000);
}
En este código fijamos ahora la situación de inundación cuando el intervalo entre la etapa de agua y el sensor ultrasónico se convierte en 40 cm. Si el nivel de agua alcanza los 40 cm o menos, el zumbador se pondrá en ALTO para dar la alerta y la pantalla LCD imprimirá y mostrará el mensaje de alerta de inundación.
Mensajes asociados:
Código de suministro completo:
#embody
LiquidCrystal liquid crystal display(2,3,4,5,6,7);
float t = 0;
float dist = 0;
void setup()
{
liquid crystal display.start(16,2);
pinMode(18,OUTPUT); //set off pin
pinMode(19,INPUT); //echo pin
pinMode(20,OUTPUT); //buzzer
liquid crystal display.setCursor(0,1);
liquid crystal display.print(" Water Degree Detector");
delay(2000);
}
void loop()
{
liquid crystal display.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;
liquid crystal display.clear();
liquid crystal display.setCursor(0,1);
liquid crystal display.print("Distance : ");
liquid crystal display.print(dist/100);
liquid crystal display.print(" m");
delay(1000);
if(dist<40)
{
digitalWrite(20,HIGH);
liquid crystal display.clear();
liquid crystal display.setCursor(0,1);
liquid crystal display.print("Water stage is rising. Kindly evacuate");
delay(2000);
}
else
{
digitalWrite(20,LOW);
delay(2000);
}
}
Iniciativas asociadas:
Si quieres conocer otros artículos parecidos a Sistema de detección precoz de inundaciones mediante Arduino - Código de entrega puedes visitar la categoría Electricidad Básica.
Deja una respuesta
¡Más Contenido!