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 Enchentes com Arduino – Código Fonte e Projeto de Circuito

Sistema de Monitoramento de Enchentes Inicial – Circuito e Código Fonte do Projeto

Em países em desenvolvimento e desenvolvidos, enchentes são desastres naturais massivos que causam perda de vidas humanas, animais e propriedades. Enchentes devido a terremotos nos oceanos, furacões, chuvas e outros desastres naturais ocorrem em muitas partes do globo todos os anos.

Durante chuvas, sistemas de drenagem não gerenciados em várias regiões geográficas levam a enchentes e muitas vidas são perdidas. Se tivermos algum sistema que nos dê alerta precoce sobre enchentes, podemos salvar vidas. Um sistema que usa tecnologia para detectar aumento no nível da água e alertar as pessoas antecipadamente para que muitas possam ser evacuadas.

Neste projeto, trazemos um protótipo que pode detectar nível de água em lago, represa ou reservatório e enviar alerta usando um buzzer. É apenas um protótipo em pequena escala no qual usaremos Arduino UNO, sensor ultrassônico, buzzer, LCD e alguns fios de conexão.

Projetos Relacionados:

Diagrama de Circuito para Detecção Precoce de Enchentes

Sistema de Detecção Precoce de Enchentes com Arduino – Código Fonte e Projeto de Circuito

Componentes Necessários

Projetos Relacionados:

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

Arduino UNO

Arduino é uma plataforma de código aberto usada para desenvolver projetos eletrônicos. 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 diferentes especificações conforme seu uso.

Neste projeto, usaremos Arduino UNO para controlar eletrodomésticos automaticamente. Ele possui microcontrolador ATmega328 que roda a 16MHz. É poderoso e pode trabalhar com protocolos de comunicação USART, I2C e SPI.

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

Projetos Relacionados:

Arduino IDE facilita muito a programação. Separa o código em duas partes: void setup() e void loop(). A função void setup() roda apenas uma vez e é usada principalmente para iniciar processos, enquanto void loop() contém a parte do código que deve ser executada continuamente.

Este modelo possui 6 pinos de entrada analógica e 14 pinos GPIO digitais que podem ser usados como entrada/saída, 6 dos quais fornecem saída PWM e analógica usando funções pinMode(), digitalWrite(), 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 via cabo USB que opera a 5 volts ou por conector DC que opera entre 7 a 20 volts. Há regulador de tensão a bordo para gerar 3.3 volts para operar dispositivos de baixa potência.

Como o ATmega328 trabalha com protocolos USART, SPI e I2C, possui pinos 0 (Rx) e 1 (Tx) para comunicação USART, SDA (A4) e SCL (A5) para I2C e SS (10), MOSI (11), MISO (12) e SCK (13) para protocolo SPI.

Projetos Relacionados:

Sensor Ultrassônico HC-SR04

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

Teoricamente pode medir distâncias até 450 cm, mas praticamente mede de 2 cm a 80 cm com precisão de 3 mm. Opera a 5 volts, corrente menor que 15mA e frequência de 40 Hertz.

Sistema de Detecção Precoce de Enchentes com Arduino – Código Fonte e Projeto de Circuito

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

Distância = Velocidade x Tempo

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

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

Projetos Relacionados:

Interface HC-SR04 com Arduino UNO

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

Alimentamos o módulo HC-SR04 com 5 volts e GND ao Arduino UNO. O pino trigger e Echo são pinos de entrada e saída, então devem ser conectados aos pinos de entrada e saída do Arduino UNO. Para medir a distância, primeiro definimos o pino trigger como "high" por 10 microssegundos e depois como "low".

Isso gerará uma onda ultrassônica de frequência 40 kHz que vai ao objeto e reflete de volta ao receptor do módulo. Se a onda detectar algum objeto, retorna imediatamente à parte receptora do módulo e o pino echo fica "high" pelo período de tempo que retorna ao sensor.

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

Post Relacionado:

Display LCD 16x2

Interligar LCD 16x2 com Arduino UNO é bem fácil. Existem vários tipos de LCDs no mercado, mas o que usamos neste projeto é 16x2, o que significa que tem duas linhas e em cada linha podemos exibir 16 caracteres.

Este módulo tem driver HD44780 da Hitachi que ajuda a interligar e comunicar com microcontroladores. Este LCD pode trabalhar em modo 4 bits e 8 bits. No modo 4 bits, apenas 4 pinos de dados são necessários para estabelecer conexão entre LCD e microcontrolador, enquanto no modo 8 bits, 8 pinos de dados são necessários.

Aqui vamos usar no modo 4 bits, pois requer menos fios e simplifica o circuito. Vamos ver a descrição dos pinos do LCD 16x2.

Sistema de Detecção Precoce de Enchentes com Arduino – Código Fonte e Projeto de Circuito

Descrição dos Pinos do Módulo LCD 16x2:
Pino no LCD Descrição
VSS Pino Terra
VCC Alimentação +5V
VEE Pino para ajustar contraste do LCD
RS Seleção de Registro: Modo Dados ou Comando
RW Modo Leitura ou Escrita
E Habilita LCD
DB0-DB7 Dados e comando são alimentados usando estes pinos
LED+ Anodo do LED de backlight
LED- Catodo do LED de backlight

Este LCD não tem luz própria, então há um LED atrás da tela que atua como backlight. Interligar este LCD com Arduino UNO é fácil pois Arduino IDE fornece biblioteca LiquidCrystal com muitas funções embutidas para inicializar e imprimir no display. As funções LCD que usaremos 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 base de forma que transmissor e receptor fiquem voltados para o nível da água. Arduino UNO medirá a distância entre sensor e nível da água.

O LCD imprimirá a distância entre eles. Definiremos um parâmetro para nível de enchente e, quando a água atingir o parâmetro, acionaremos o buzzer para 'high' e o LCD imprimirá texto alertando sobre a enchente.

Explicação do Código

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

A biblioteca embutida para display LCD é incluída. A função LiquidCrystal lcd() recebe os números dos pinos de dados conectados ao Arduino UNO. Lcd.begin() inicia o LCD 16x2.

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

Pinos 18 e 20 são definidos como saída para trigger e buzzer, respectivamente, e pino 19 como entrada para echo.

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

Variável de tempo 't' detecta o tempo até o pino trigger ficar high, usado para calcular distância em centímetros e armazenar 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 condição de enchente como distância entre nível da água e sensor ultrassônico se tornar 40cm. Assim, quando nível da água atingir 40 cm ou menos, o buzzer será acionado HIGH para alerta e LCD mostrará mensagem de alerta de enchente.

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); //pino trigger pinMode(19,INPUT); //pino echo 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. Dominando Declarações Using em C#: Imports, Aliases e Diretivas Estáticas
  2. Symphony Link: Detecção Confiável de Vazamento de Água para Data Centers
  3. Sistema de Controle de Temperatura Baseado em LM35 com Microcontrolador AT89S52
  4. Construa um Decodificador DTMF Usando Apenas um Arduino – Sem CIs Externos
  5. Sistema de Presença RFID Confiável com Arduino e Python
  6. Robô de Detecção Humana Baseado em Arduino Uno: Integração de Sensores Passo a Passo
  7. SERENA: Sistema de Alarme Personalizado Arduino Mega 2560 com Touchscreen TFT LCD
  8. Sistema de Monitoramento de Incêndio Florestal em Tempo Real com Alertas SMS
  9. Sistema Avançado de Detecção de Quedas com Arduino, Windows IoT e Azure Cloud
  10. Por que a Detecção de Vazamento de Água IoT da Biz4Intellia Impulsiona a Eficiência Industrial – 5 Vantagens Principais