산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

Arduino를 사용한 조기 홍수 감지 시스템 – 소스 코드

초기 홍수 모니터링 시스템 – 회로 및 프로젝트 소스 코드

개발도상국과 비개발도상국 모두에서 홍수는 인명과 동물의 생명과 재산의 손실을 초래하는 대규모 자연 재해입니다. 바다의 지진, 허리케인, 강우 및 기타 자연 재해로 인한 홍수가 매년 세계 여러 지역에서 발생합니다.

강우 시 다양한 지리적 지역의 관리되지 않는 배수 시스템으로 인해 홍수가 발생하고 많은 인명 피해가 발생합니다. 홍수에 대한 조기 경보를 제공할 수 있는 시스템이 있으면 사람들의 생명을 구할 수 있습니다. 기술을 사용하여 수위 상승을 감지하고 사람들에게 미리 경고하여 많은 사람들이 대피할 수 있도록 하는 시스템입니다.

이 프로젝트에서는 연못, 댐 또는 저수지의 수위를 감지하고 부저를 사용하여 경고를 보내는 데 사용할 수 있는 프로토타입을 제공합니다. 이것은 Arduino UNO, 초음파 센서, 부저, LCD 및 일부 연결 와이어를 사용할 소규모 프로토타입입니다.

관련 프로젝트:

조기 홍수 감지를 위한 회로도

필요한 구성요소

관련 프로젝트:

이제 이 기본 회로에 사용되는 구성 요소에 대해 하나씩 알아보겠습니다.

아두이노 UNO

Arduino는 전자 프로젝트를 개발하는 데 사용되는 오픈 소스 플랫폼입니다. 언제든지 쉽게 프로그래밍하고 지우고 다시 프로그래밍할 수 있습니다. 아두이노 UNO, 아두이노 나노, 아두이노 메가, 아두이노 릴리패드 등 아두이노 보드는 용도에 따라 다양한 사양으로 출시되어 있습니다.

이 프로젝트에서는 Arduino UNO를 사용하여 가전 제품을 자동으로 제어할 것입니다. 16MHz 클럭 속도로 실행되는 ATmega328 마이크로 컨트롤러 IC가 있습니다. USART, I2C 및 SPI 통신 프로토콜에서 작동할 수 있는 강력한 기능입니다.

이 보드는 일반적으로 마이크로 USB 케이블을 사용하여 소프트웨어 Arduino IDE를 사용하여 프로그래밍됩니다. ATmega328은 사전 프로그래밍된 온보드 부트 로더와 함께 제공되므로 외부 하드웨어의 도움 없이 코드를 더 쉽게 업로드할 수 있습니다. 전자 프로젝트 또는 제품을 만드는 데 광범위하게 적용됩니다. C 및 C++ 언어를 사용하여 매우 배우고 사용하기 쉬운 보드를 프로그래밍합니다.

관련 프로젝트:

Arduino IDE를 사용하면 훨씬 쉽게 프로그래밍할 수 있습니다. 코드를 void setup()과 void loop()의 두 부분으로 분리합니다. void setup() 함수는 한 번만 실행되며 주로 일부 프로세스를 시작하는 데 사용되는 반면 void loop()는 계속 실행되어야 하는 코드 부분으로 구성됩니다.

이 모델은 6개의 아날로그 입력 핀과 14개의 디지털 GPIO 핀으로 구성되어 입력 출력 6으로 사용할 수 있으며 그 중 pinMode(), digitalWrite()를 사용하여 PWM 출력 및 아날로그를 제공합니다. digitalRead() 및 analogRead() 함수. 6개의 아날로그 입력 채널은 핀 A0에서 A5까지이며 10비트 분해능을 제공합니다.

보드는 5볼트에서 작동하는 USB 케이블을 사용하거나 7~20볼트에서 작동하는 DC 잭을 통해 전원을 공급받을 수 있습니다. 저전력 장치를 작동하기 위해 3.3V를 생성하는 온보드 전압 조정기가 있습니다.

ATmega328은 USART, SPI 및 I2C 통신 프로토콜에서 작동하므로 USART 통신, SDA(A4) 및 SCL(A5)을 위한 0(Rx) 및 1(Tx) 핀이 있습니다. I2C 및 SS(10)용 핀, MOSI(11), MISO(12) 및 SPI 통신 프로토콜용 SCK(13) 핀

관련 프로젝트:

HC-SR04 초음파 센서

HC-SR04는 사람의 접촉 없이 여러 곳의 거리를 측정하는 데 도움이 되는 초음파 센서입니다. RADAR 및 SONAR와 동일한 원리로 작동하며 매우 정확한 방법으로 거리를 측정하는 효율적인 방법을 제공합니다.

이론적으로는 최대 450cm의 거리를 측정할 수 있지만 실제로는 3mm의 정확도로 2cm에서 80cm까지의 거리를 측정할 수 있습니다. 5볼트, 15mA 미만의 전류 및 40Hz 주파수에서 작동됩니다.

HC-SR04에는 하나의 송신기와 하나의 수신기가 설치되어 있습니다. 거리는 우리 모두가 학교에서 공부한 기본 속도, 거리 및 시간 공식으로 계산됩니다. 즉,

거리 =속도 x 시간

HC-SR04 센서의 송신기는 공기 중 초음파를 전송합니다. 이 파동이 센서 범위 내의 어떤 물체에 의해 반사되면 공기 중의 반사파가 센서의 수신기에 수신됩니다. 따라서 위의 공식을 사용하여 거리를 계산하려면 속도와 시간을 알아야 합니다.

우리는 초음파의 보편적인 속도가 약 330m/s라는 것을 알고 있습니다. 시간은 마이크로컨트롤러의 회로 빌드에 의해 측정됩니다. 에코 핀은 초음파가 수신기로 되돌아오는 데 걸리는 시간 동안 하이가 됩니다. 이렇게 하면 물체와 HC-SR04 초음파 센서 사이의 거리를 계산할 수 있습니다.

관련 프로젝트:

HC-SR04와 Arduino UNO의 인터페이스

HC-SR04 초음파 센서는 Arduino, PIC, Raspberry Pi 등과 같은 모든 마이크로컨트롤러와 함께 사용할 수 있습니다. 이 프로젝트에서는 HC-SR04 초음파 센서를 Arduino UNO와 인터페이스할 것입니다. . HC-SR04 모듈에는 VCC, GND, Trig 및 Echo의 4가지 핀이 있습니다.

우리는 Arduino UNO에 5볼트 및 GND로 HC-SR04 모듈에 전원을 공급합니다. Trigger 핀과 Echo 핀은 입출력 핀이므로 아두이노 UNO의 입출력 핀에 연결해야 합니다. 따라서 거리를 측정하기 위해 먼저 트리거 핀을 10마이크로초 동안 "높음"으로 설정한 다음 "낮음"으로 설정합니다.

이는 40kHz 주파수의 초음파를 생성하여 물체로 이동하고 모듈의 수신기로 다시 반사합니다. 웨이브가 어떤 물체를 감지하면 모듈의 수신기 부분으로 즉시 반환되고 에코 핀은 센서로 되돌아오는 시간 동안 "하이" 상태가 됩니다.

이 시간에 330m/s의 파도 속도를 곱하면 HC-SR04 모듈과 물체 사이의 거리가 나옵니다.

관련 게시물:

16×2 LCD 디스플레이

16 X 2 LCD를 Arduino UNO와 연결하는 것은 매우 쉽습니다. 시중에는 다양한 종류의 LCD가 있지만 이 프로젝트에서 사용하는 LCD는 16×2로 2개의 행이 있고 각 행에 16개의 문자를 표시할 수 있습니다.

이 모듈에는 마이크로컨트롤러와 인터페이스하고 통신하는 데 도움이 되는 Hitachi의 HD44780 드라이버가 있습니다. 이 LCD는 4비트 모드와 8비트 모드에서 작동할 수 있습니다. 4비트 모드에서는 LCD와 마이크로컨트롤러 간의 연결을 설정하는 데 4개의 데이터 핀만 필요하지만 8비트 모드에서는 8개의 데이터 핀이 필요합니다.

여기서 4비트 모드에서 사용합니다. 와이어 수가 적고 회로가 단순화되기 때문입니다. 16×2 LCD의 핀 설명을 보겠습니다.

16×2 LCD 모듈의 핀 설명:
LCD에 고정 설명
VSS 접지 핀
VCC +5V 전원 공급 장치
VEE LCD 대비를 변경하는 핀
RS 등록 선택:데이터 모드 또는 명령 모드
RW 읽기 또는 쓰기 모드
E LCD 활성화
DB0-DB7 데이터 및 명령은 이 핀을 사용하여 공급됩니다.
LED+ 백라이트 LED의 양극
LED- 백라이트 LED의 음극

이 LCD에는 자체 조명이 없으므로 화면 뒤에 LED가 있어 디스플레이의 백라이트 역할을 합니다. 이 LCD를 Arduino UNO와 인터페이스하는 것은 매우 쉽습니다. Arduino IDE는 디스플레이에서 무엇이든 더 쉽게 초기화하고 인쇄할 수 있는 많은 내장 기능이 있는 LiquidCrystal 라이브러리를 제공합니다. 이 프로젝트에서 주로 사용할 LCD 기능은 다음과 같습니다.

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

조기 홍수 감지 시스템 및 소스 코드 작업

초음파 센서는 송신기와 수신기가 수위를 향하도록 일부 기본 수준에 배치됩니다. Arduino UNO는 센서와 수위 사이의 거리를 측정합니다.

LCD는 그들 사이의 거리를 인쇄합니다. 홍수 수준에 대한 기준을 설정하고 물이 기준에 도달하면 부저를 '높음'으로 설정하고 LCD가 홍수에 대한 경고 텍스트를 인쇄합니다.

코드 설명

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

LCD 디스플레이용 내장 라이브러리가 포함되어 있습니다. LiquidCrystal lcd() 함수는 Arduino UNO에 연결된 데이터의 핀 번호를 가져옵니다. Lcd.begin()은 16×2 LCD를 시작합니다.

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

핀 18과 20은 각각 트리거 및 부저에 대한 출력 핀으로 설정되고 핀 19는 에코 핀에 대한 입력으로 설정됩니다.

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

시간 변수 't'는 트리거 핀이 높게 설정될 때까지의 시간을 감지하며, 이는 센티미터 단위로 시간을 계산하고 변수 '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);
}

이 코드에서는 수위와 초음파 센서 사이의 거리가 40cm가 될 때 홍수 조건을 설정했습니다. 따라서 수위가 40cm 이하에 도달하면 부저가 HIGH로 설정되어 경고하고 LCD가 홍수 경고 메시지를 인쇄하고 표시합니다.

전체 소스 코드:

#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);
}
}

관련 프로젝트:


산업기술

  1. C# 사용
  2. Symphony Link를 데이터 센터의 누수 감지 시스템으로 사용
  3. LM35를 사용한 온도 기반 장치 제어 시스템
  4. Arduino만 사용하는 DTMF 디코더
  5. Python과 함께 Arduino 및 RFID를 사용한 출석 시스템
  6. Arduino Uno를 사용한 인간 감지 로봇 시스템
  7. Arduino 알람 시스템:SERENA
  8. 산불 모니터링 및 감지 시스템(SMS 경보 포함)
  9. Arduino, Windows 및 Azure를 기반으로 하는 추락 감지 시스템
  10. 산업 분야에서 Biz4intellias IoT 기반 누수 감지 시스템 사용의 5가지 장점