Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Sistema de detecção precoce de inundação usando Arduino – código fonte

Inundação Precoce Monitoramento Sistema - Circuito e Código Fonte do Projeto

Nos países em desenvolvimento e não em desenvolvimento, as inundações são o desastre natural maciço que causa a perda de vidas e propriedades humanas e animais. Inundações devido a terremotos nos oceanos, furacões, chuvas e outros desastres naturais ocorrem em muitas partes do globo todos os anos.

Durante as chuvas, o sistema de drenagem não gerenciado em várias regiões geográficas leva a inundações e muitas vidas são perdidas. Se tivermos algum sistema que possa nos alertar antecipadamente sobre enchentes, poderemos salvar vidas de pessoas. Um sistema que usa tecnologia para detectar o aumento do nível da água e alertar as pessoas com antecedência para que muitas pessoas possam ser evacuadas.

Então neste projeto trazemos um protótipo que pode ser usado para detectar o nível de água em alguma lagoa, represa ou reservatório e enviar um alerta usando uma campainha. Este é apenas um protótipo em pequena escala no qual vamos usar um Arduino UNO, sensor ultrassônico, buzzer, LCD e alguns fios de conexão.

Projetos relacionados:

Diagrama de circuito para detecção precoce de enchentes



Componentes obrigatórios


Projetos relacionados:

Agora, vamos aprender um por um sobre os componentes usados ​​neste circuito básico.

Arduino UNO

Arduino é uma plataforma de código aberto que é usada para desenvolver projetos eletrônicos. Ele pode ser facilmente programado, apagado e reprogramado a qualquer momento. Existem muitas placas Arduino disponíveis no mercado como Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad etc. com especificações diferentes de acordo com seu uso.

Neste projeto vamos usar o Arduino UNO para controlar eletrodomésticos automaticamente. Ele tem um microcontrolador ATmega328 IC nele que funciona com velocidade de clock de 16MHz. É um poderoso que pode trabalhar em protocolos de comunicação USART, I2C e SPI.

Esta placa geralmente é programada usando o software Arduino IDE usando um cabo micro USB. O ATmega328 vem com um carregador de inicialização integrado pré-programado, o que facilita o upload do código sem a ajuda do hardware externo. Tem vasta aplicação na confecção de projetos ou produtos eletrônicos. A linguagem C e C++ é usada para programar a placa que é muito fácil de aprender e usar.

Projetos relacionados:

A IDE do Arduino facilita muito a programação. Ele separa o código em duas partes, ou seja, void setup() e void loop(). A função void setup() é executada apenas uma vez e usada principalmente para iniciar algum processo, enquanto void loop() consiste na parte do código que deve ser executada continuamente.

Este modelo consiste em 6 pinos de entrada analógica e 14 pinos GPIO digitais que podem ser usados ​​como saída de entrada 6 dos quais fornecem saída PWM e analógica usando pinMode(), digitalWrite(), funções digitalRead() e analogRead(). 6 canais de entrada analógica são dos pinos A0 a A5 e fornecem resolução de 10 bits.

A placa pode ser alimentada por um cabo USB que opera em 5 volts ou por um conector DC que opera entre 7 e 20 volts. Há um regulador de tensão a bordo para gerar 3,3 volts para operar dispositivos de baixa potência.

Uma vez que o ATmega328 funciona no protocolo de comunicação USART, SPI e I2C, possui pinos 0 (Rx) e 1(Tx) para comunicação USART, SDA (A4) e SCL (A5) pinos para I2C e SS (10), MOSI (11), MISO (12) e SCK (13) pinos para protocolo de comunicação SPI.

Projetos relacionados:

Sensor ultrassônico HC-SR04

O HC-SR04 é um sensor ultrassônico que ajuda a medir distâncias em muitos lugares sem contato humano. Funciona com o mesmo princípio do RADAR e do SONAR e fornece uma maneira eficiente de medir distâncias de maneira muito precisa.

Teoricamente pode medir distâncias de até 450 cm, mas na prática pode medir distâncias de 2 cm a 80 cm com precisão de 3 mm. É operado em 5 volts, corrente inferior a 15mA e frequência de 40 Hertz.


O HC-SR04 tem um transmissor e um receptor instalados nele. A distância é calculada com a fórmula básica de velocidade, distância e tempo que todos estudamos em nossa escola, ou seja,

Distância =Velocidade x Tempo

O transmissor do sensor HC-SR04 transmite uma onda ultrassônica no ar. Se esta onda é refletida por algum objeto no alcance do sensor, então a onda refletida no ar é recebida pelo receptor do sensor. Então, para calcular a distância usando a fórmula acima, devemos saber a velocidade e o tempo.

Sabemos que a velocidade universal da onda ultrassônica é de cerca de 330 m/s. O tempo é medido pelo circuito construído no microcontrolador. O pino de eco fica alto pelo período de tempo que a onda ultrassônica leva para retornar ao receptor. Desta forma podemos calcular a distância entre o objeto e o sensor ultrassônico HC-SR04.

Projetos relacionados:

Interface HC-SR04 com Arduino UNO

O sensor ultrassônico HC-SR04 pode ser usado com todos os microcontroladores como Arduino, PIC, Raspberry Pi, etc. Neste projeto vamos fazer a interface do sensor ultrassônico HC-SR04 com Arduino UNO . O módulo HC-SR04 possui quatro pinos:VCC, GND, Trig e Echo.

Nós alimentamos o módulo HC-SR04 com 5 volts e GND para o Arduino UNO. O pino de disparo e o pino de eco são os pinos de entrada e saída, portanto, eles devem ser conectados aos pinos de entrada e saída do Arduino UNO. Então, para medir a distância, primeiro definimos o pino do gatilho para “alto” por 10 microssegundos e depois definimos para “baixo”.

Isto irá gerar uma onda ultrassônica de frequência de 40 kHz que vai para o objeto e reflete de volta para o receptor do módulo. Se a onda detecta algum objeto, ela retorna imediatamente para a parte receptora do módulo e o pino de eco fica “alto” pelo período de tempo em que retorna ao sensor.

Agora esse período de tempo multiplicado pela velocidade da onda que é 330 m/s nos dá a distância entre o módulo HC-SR04 e o objeto.

Postagem relacionada:

Tela LCD 16×2

Fazer interface de LCD 16 X 2 com Arduino UNO é bem fácil. Existem vários tipos de LCDs disponíveis no mercado, mas o que estamos usando neste projeto é 16×2, o que significa que possui duas linhas e em cada linha podemos exibir 16 caracteres.

Este módulo possui o driver HD44780 da Hitachi, que ajuda na interface e na comunicação com os microcontroladores. Este LCD pode funcionar no modo de 4 bits e no modo de 8 bits. No modo de 4 bits, apenas 4 pinos de dados são necessários para estabelecer a conexão entre o LCD e o microcontrolador, enquanto no modo de 8 bits são necessários 8 pinos de dados.

Aqui vamos usá-lo no modo de 4 bits, pois requer menos fios e simplifica o circuito. Vejamos a descrição dos pinos do LCD 16×2.


Descrição do pino do módulo LCD 16×2:
Fixar no LCD Descrição
VSS Pino de aterramento
VCC Fonte de alimentação +5V
VEE Pin para alterar o contraste do LCD
RS Registrar Seleção:Modo de dados ou Modo de comando
RW Modo de leitura ou gravação
E Ativar LCD
DB0-DB7 Dados e comandos são alimentados usando esses pinos
LED+ Anodo do LED de luz de fundo
LED- Catodo do LED de luz de fundo

Este LCD não possui luz própria, portanto, há um LED atrás da tela que atua como luz de fundo da tela. A interface deste LCD com o Arduino UNO é muito fácil, pois o Arduino IDE fornece uma biblioteca LiquidCrystal que possui muitas funções embutidas para facilitar a inicialização e a impressão de qualquer coisa na tela. As funções do LCD que vamos usar principalmente neste projeto são:

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

Funcionamento do sistema de detecção precoce de enchentes e código-fonte

Um sensor ultrassônico será colocado em algum nível básico de forma que o transmissor e o receptor fiquem voltados para o nível da água. O Arduino UNO medirá a distância entre o sensor e o nível da água.

O LCD imprimirá a distância entre eles. Vamos definir algum ponto de referência para o nível de inundação e, à medida que a água atingir o ponto de referência, definiremos a campainha para 'alto' e o LCD imprimirá o texto alertando sobre a inundação.

Explicação do código

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

A biblioteca embutida para display LCD está incluída. A função LiquidCrystal lcd() pega o número do pino dos dados conectados ao Arduino UNO. Lcd.begin() inicia o LCD 16×2.

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

Os pinos 18 e 20 são definidos como pinos de saída para trigger e buzzer, respectivamente, e o pino 19 é definido como entrada para o pino de eco.

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

variável de tempo 't' detecta a quantidade de tempo até que o pino do gatilho seja definido como alto, que é usado para calcular o tempo em centímetros e armazenar o valor na variável '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);
}

Neste código definimos a condição de inundação quando a distância entre o nível da água e o sensor ultrassônico se torna 40cm. Assim, quando o nível da água atingir 40 cm ou menos, a campainha será definida como ALTO para dar alerta e o LCD imprimirá e mostrará a mensagem de alerta de inundação.

Código-fonte 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);
}
}

Projetos relacionados:

Tecnologia industrial

  1. C# usando
  2. Usando o Symphony Link como um sistema de detecção de vazamento de água para data centers
  3. Sistema de controle de dispositivo baseado em temperatura usando LM35
  4. Decodificador DTMF usando apenas Arduino
  5. Sistema de atendimento usando Arduino e RFID com Python
  6. Sistema de detecção de humanos usando Arduino Uno
  7. Sistema de alarme Arduino:SERENA
  8. Sistema de monitoramento e detecção de incêndios florestais (com alertas SMS)
  9. Um sistema de detecção de queda baseado em Arduino, Windows e Azure
  10. 5 vantagens de usar o sistema de detecção de vazamento de água alimentado por IoT Biz4intellias nas indústrias