자동소화장치 쿠릉🧯 ... #1 - 2021 창의융합 아이디어 경진대회 🎉

TaeUk·2023년 12월 1일
0

Project 정리

목록 보기
4/6
post-thumbnail

0. 시작에 앞서...

해당 Projec는 대학교 2학년 중, 교내 대회인 "2021 창의융합 아이디어 경진대회"를 참가하면서 제작하게 되었다.

총 3명의 팀원으로 구성된 팀으로 대회를 준비하였으며, 종합설계 Project를 함께 준비한 팀원과 동일하다.

  • Hwang
  • Park
  • Moon

군대를 전역한 후 복학을 위해 자취를 준비하다가, 학교 인근의 자취방들은 대부분 스프링클러가 없다는 사실을 알 수 있었다.

스프링클러가 없는 이유에 대해 의문이 들어 소방법을 찾던 중, 6층 이상의 건물에만 스프링클러 설치 의무가 있다는 것을 알 수 있었다.

평소 집에서도 작업을 많이 하는데 3D 프린터, 납땜을 위한 인두기 등의 과열에 의해 화재 사고가 발생할 수 있기에, 매번 불안한 마음으로 사용하였다.

이러한 환경을 개선하기 위한 방안으로 소화기 또는 스프링클러와 같은 기능에 알람을 추가한 Project를 고안하였다.

소방 시설이 없는 주거 시설을 위한 초기 화재 진압 및 알람 기능의 "자동소화장치 쿠릉🧯"이라는 주제를 일상을 통해 정할 수 있었다.


1. 쿠릉🧯 아이디어 구체화

앞서 설명한 것처럼 주제는 소화기 또는 스프링클러와 같은 기능에 알람을 추가한 하나의 System을 만드는 것이였다.

Project를 구체화하기 위해, 간단한 동작 메커니즘을 구상하였다.

  • 쿠릉🧯 동작 메커니즘

위 그림처럼 작동 방식을 크게 2가지 상황으로 구분하였다.

  • 쿠릉🧯 인근에 사람이 없을 때 🙅
    화재 상황 시, 쿠릉이 각종 센서를 활용하여 주변 상황을 인식한다.

    1) 대기온도만 올라간 경우
    특정 위치를 파악할 수 없고, 주변에 화재가 발생한 것으로 인지하여 쿠릉의 모든 방향으로 강화액을 분무한다.

    2) 대기 온도와 표면온도가 동시에 올라간 경우
    불이 난 방향을 인지하여 강화액을 분무하고, 화재 초기 진압 및 2차 오염 최소화한다.

    3) 대기 온도와 표면 온도는 그대로지만 일산화탄소 농도가 상승하는 경우
    이 또한 화재가 인근에서 발생하였다고 판단하여 사용자에게 경고와 내장 부저를 이용한 화재 경보를 실시한다.

  • 쿠릉🧯 인근에 사람이 있을 때 💁
    화재 상황 시, 주변에 사람이 있다면 쿠릉을 소화기처럼 사용할 수 있도록 고안하였다.

이러한 기능을 구현하기 위해 기계식 소화장치가 아닌 각종 센서와 장비가 내장된 전자식 소화기로 구성하였다.


2. 쿠릉🧯 기능 설계

🔥 구현 목표 정리

구체화된 아이디어를 구현하기 위해서는 쿠릉이 화재 방향을 감지할 수 있어야 했다. 이외에도 상황을 판단하기 위해서는 몇몇 센서들이 더 필요하였다.

  • 화재 감지를 위한 온도 및 일산화탄소 센서 구성

또한 화재가 감지되면 이에 대응할 수 있는 수단이 필요했는데, 바로 펌프를 사용한 소화 기능이다.

  • 화재 진압을 위한 펌프 및 노즐 구성

각종 센서와 펌프를 사용하여 화재 진압를 진압할 수 있도록, 동작 메커니즘에 따른 기능을 구현하여야 했다.

  • 화재 방향으로만 펌프 구동(2차 오염 최소화)

🚒 초기 쿠릉 설계

위에서 정리한 내용을 바탕으로 쿠릉에 어떠한 장비를 내장시킬지 고민해보았다. 또한 사용자에게 경고 피드백을 보내기 위한 어플 제작도 고려해보았다.

  • 쿠릉 내장 센서 및 장비

화재 진압을 위해 강화액을 사용하여, 일반 주거 환경에서 발생할 수 있는 화재에 효율적으로 대응할 수 있도록 하였다.

  • 내장 센서 및 장비에 따른 쿠릉 동작 메커니즘

IOT를 구현하기 위해 WIFI 모듈을 사용할 계획이였으나, 시간부족으로 BlueTooth 모듈을 사용하여 어플과의 통신을 구성하였다... 🙈

이를 종합하여 1차 Proto Type의 H/W를 구상해보았다.

  • 쿠릉 Proto Type

  • 쿠릉 Proto Type 내부

Google의 SkethUp을 사용하여 쿠릉의 Proto Type H/W를 설계하였다.


3. 쿠릉🧯 제작 과정

🔨 H/W 구성

💡 Frame

미리 설계해둔 Proto Type을 바탕으로 각종 센서와 장비의 배치를 미리 테스트해보았고 Main Frame을 출력할 때 큰 도움이 되었다.

3D Printing을 사용하여 H/W를 Main Frame을 구성할 계획이였다.

따라서 처음부터 최종본과 동일한 스케일의 H/W를 출력하여 크기 및 내장 센서의 배치를 시험해보는 것이 아닌, 작은 스케일로 Test Frame을 설계하여 미리 시험해보는 것을 목표로 하였다.

해당 Project에서도 상향식 설계를 통해 H/W Frame을 설계하였다.

  • Test Frame 구성을 위한 각종 센서 및 장비 Modeling

  • 쿠릉 내부에 각종 센서 및 장비 배치

  • Test Frame 설계 및 부분 디테일 추가

손잡이 부분에 홈을 만들어 손잡이를 잡았을 때 배선이 걸리지 않도록 설계하였다.

  • Test Frame 최종 구성 및 조립

각 기능 별로 문제가 발생하면 빠르게 수정 및 보완이 가능하도록 여러 조각으로 Test Frame을 설계하였다.

  • 3D Printer를 사용하여 Test Frame 출력 및 부품 조립

이 Frmae의 조립 및 각종 부품의 간섭 등을 확인한 후, 얻은 데이터를 바탕으로 최종 Main Frame을 구성하였다.

  • 최종 Main Frame 설계 및 X-ray Modeling

쿠릉 아래에 물통을 위치시켜 펌프로 끌어올려 4ch 솔레노이드 벨브로 강화액 분사를 제어하도록 설계하였다.

4ch 솔레노이드 벨브는 4ch Relay에 의해 제어된다.

또한 수동 조작에 필요한 펌프는 4ch 솔레노이드 벨브와 별개로, 또다른 펌프를 사용하여 쿠릉을 구성하였다.

따라서 총 2개의 워터 펌프를 사용하였다!

  • 4ch 솔레노이드 벨브 및 수동 동작 펌프 배치

덕분에 내부 구조가 매우 복잡해졌다... 🥲

🔌 Schematic

쿠릉에 내장된 각종 센서와 2개의 펌프를 동작시키기에는 많은 전력이 필요하였다. 특히, 사용되는 장비들의 정격전압이 모두 다르다는 점이 가장 큰 문제였다.

이를 해결하기 위해 가장 큰 정격전압을 가진 장비를 기준으로 전원을 공급하였으며, 나머지 장비에는 Step-Down Module을 사용하여 안전적인 전력울 공급하였다.

또한 소화기처럼 수동 동작이 가능해야 하기에 내부에 별도의 배터리를 내장하였다.

  • 쿠릉 최종 회로도⚡️

부저 위에 있는 수분 감지 센서는 쿠릉 내부에 강화액 용량을 확인하기 위한 용도로 사용하였다.

위 회로도를 보면 대기의 온-습도를 측정할 수 있는 DHT22라는 센서가 총 2개가 사용된 것을 볼 수 있다. 이는 화재 상황을 파악하는 것에 있어 더욱 신뢰성을 주기 위해 2개의 센서를 사용하여 평균값을 사용하기 위해 다음과 같이 구성하였다.

설계한 회로를 Frame에 부착시키기 전에 미리 회로를 구성하여 기능별 동작 확인 실험을 진행하였다.

  • 쿠릉 기능 실험 회로 구성

이렇게 설계한 회로도를 바탕으로 실제 회로를 구성할 때, 문제점을 찾을 수 있었다...

각 Frame마다 배치해야 하는 센서와 MCU 간의 거리가 상당하여 하나의 배선으로는 연결하기 어려웠다. 그래서 각각의 Frame에 센서와 장비들을 부착하고, 이를 커넥터를 사용하여 결합이 편리하게 이루어지도록 제작하였다.

  • 쿠릉 상단부에 위치한 MCU 및 각종 센서와 장비

  • 커넥터를 활용한 상-하단부 연결

💾 S/W 구성

쿠릉은 Arduino 2560 Pro Mini를 사용하여 설계되었다. 따라서 Arduino IDE 환경에서 S/W를 구성하였으며, 가독성을 위해 아래에서 핵심적인 부분만 다뤄보겠다.

먼저 화재 상황을 감지하기 위한 대기 온-습도 센서 DHT22에 이동평균필터를 적용하여 더욱 신뢰성을 추가하였다.

Kulung.ino 중 DHT22 Filter

int dht1_h = dht1.readHumidity();
int dht1_t = dht1.readTemperature();

int dht2_h = dht2.readHumidity();
int dht2_t = dht2.readTemperature();

sum_dht1_t = 0;
sum_dht2_t = 0;

sum_dht1_h = 0;
sum_dht2_h = 0;

for (int i = 0; i < 10; i++) {
  sum_dht1_t += dht1_t;
  sum_dht2_t += dht2_t;
  delay(10);
} 
aver_dht1_t = sum_dht1_t / 10;
aver_dht2_t = sum_dht2_t / 10;
aver_dht_t = (aver_dht1_t + aver_dht2_t) / 2;
  
  
for (int j = 0; j < 10; j++) {
  sum_dht1_h += dht1_h;
  sum_dht2_h += dht2_h;
  delay(10);
}
aver_dht1_h = sum_dht1_h / 10;
aver_dht2_h = sum_dht2_h / 10;
aver_dht_h = (aver_dht1_h + aver_dht2_h) / 2;

아래는 표면 온도 센서를 활용하여 총 4 방향 중 화재 방향을 특정하는 기능을 한다. 4개의 온도 센서 배열에 저장된 값을 비교하여 최댓값과 최솟값을 검출해내고, 최댓값을 가진 센서의 번호를 검출하여 화재 방향을 찾는 방식으로 제작하였다.

Kulung.ino  중 Temperature Sensor Setting

// 표면 온도 센서 배열 최댓값 
float Temp_Max(float x[], int maxi){
  for(int i = 0; i < 4; i++)
    if(x[i] > maxi) 
      maxi = x[i];
      
  return maxi;
}

// 표면 온도 센서 배열 최댓값 위치
float Temp_direction(float x[],float maxi){
  for(int i = 0; i < 4; i++)
    if(x[i] == maxi)
      return i;
}

// 표면 온도 센서 배열 최솟값
float Temp_Min(float x[], int mini){
  for(int i = 0; i < 4; i++)
    if(x[i] < mini)
      mini = x[i];
  
  return mini;
}

이렇게 얻은 화재 방향을 바탕으로 해당 위치의 펌프가 동작하여 화재를 진압할 수 있도록 설계하였다.

화재가 난 방향과 좌-우 방향까지 합하여, 총 3 방향으로 강화액이 분사하도록 만들었다.

Kulung.ino 중 Surface Temperature - WaterPump Setting

float a[4];

a[0] = sensors1.getTempCByIndex(0);
a[1] = sensors2.getTempCByIndex(0);
a[2] = sensors3.getTempCByIndex(0);
a[3] = sensors4.getTempCByIndex(0);
 
float ma = Temp_Max(a, 0);
float mi = Temp_Min(a, 100);
int g = Temp_direction(a, ma);
 
               :

// 온도 민감도(온도차 민감도 15% 이상)
if (ma - mi >= 4) {
  // 1번 표면 온도 센서 방향(1, 2, 4 번 펌프 작동)
  if (g == 0) {
    digitalWrite(WaterPump_SV_1, HIGH);
    digitalWrite(WaterPump_SV_2, HIGH);
    digitalWrite(WaterPump_SV_3, LOW);
    digitalWrite(WaterPump_SV_4, HIGH);
    digitalWrite(WaterPump_A, HIGH);
    digitalWrite(WaterPump_M, LOW);
  }
      
    // 2번 표면 온도 센서 방향(1, 2, 3 번 펌프 작동)
  else if (g == 1) {
				:
  }
      
    // 3번 표면 온도 센서 방향(2, 3, 4 번 펌프 작동)
  else if (g == 2) {
				:
  }
      
    // 4번 표면 온도 센서 방향(1, 3, 4 번 펌프 작동)
  else if (g == 3) {
				:
  }
}

앞서 설명한 것처럼, 쿠릉은 수동 동작이 가능한 소화기 기능도 포함되어 있다. 이 기능을 Interrupt를 사용하여 구현하였다.

쿠릉이 화재 상황에서 펌프를 가동하고 있더라도, 사용자가 직접 소화기로 사용하여 화재를 진압할 수 있도록 설계하였다.

Kulung.ino 중 Manual Working Pump - Interrupt

void setup() { 
					:
  pinMode(Manual_Button, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(Manual_Button), BUT, LOW);
					:
}

void BUT() {
  digitalWrite(WaterPump_SV_1, LOW);
  digitalWrite(WaterPump_SV_2, LOW);
  digitalWrite(WaterPump_SV_3, LOW);
  digitalWrite(WaterPump_SV_4, LOW);
  digitalWrite(WaterPump_A, LOW);
  digitalWrite(WaterPump_M, HIGH);
}
  • 수동 동작 버튼 확인(Interrupt)


4. 쿠릉🧯 동작 확인

📝 쿠릉 최종 구성

미리 설계해둔 Frame에 각종 센서와 장비를 부착한 후, MCU에 S/W를 업로드하여 쿠릉을 최종 구성하였다.

  • 쿠릉 최종 조립!

여러 방향으로 강화액을 분사하기 위해서는 출력이 높은 펌프를 사용하여야 했다. 그러한 성능에 비례하여 펌프의 크기가 커지다보니, 자연스럽게 쿠릉의 H/W 또한 커지게 되었다.

쿠릉의 최종 스펙은 다음과 같다.

W : 17cm
H : 47.6cm
Weight : 4.3kg

으로 초기 디자인한 Proto Type과는 큰 괴리감이 있지만, 의도한 동작 메커니즘 대로 구동이 가능하도록 잘 마무리하였다.

미리 설계한 Main Frame처럼 붉은 색과 아이보리 색으로 도책을 하려고 시도했지만, 시간 문제로 실행에 욺기지는 못하였다... 🙈

또한, 사용자에게 피드백을 전달하기 위해 App Inventor를 활용하여 App을 제작하였다.

  • 쿠릉 최종 조립!

위에서 미리 설명은 하였지만, WIFI 모듈을 사용하지 못한 것이 매우 아쉽다...

📹 쿠릉 동작 확인

  • 소화기 기능(수동 동작 버튼 활성화를 통해 작동)

  • Mist Nozzle을 이용한 강화액 분무


5. 대회 결과 및 고찰

프로젝트를 수행하며, 각자의 역할은 다음과 같이 나누어 수행을 했다.

  • Hwang
    H/W 및 Schematic 설계 및 구현, 쿠릉 구동 S/W 제작, App Inventor를 활용한 App 개발
  • Park
    Schematic 설계, 쿠릉 구동 S/W 제작, App Inventor를 활용한 App 개발
  • Moon
    H/W 구현, Power Supply System 설계

대학에 진학한 이후, 처음부터 Project 기획과 설계에 관여를 해 본 첫 번째 대회였다. 물론 위에서 볼 수 있듯이, 설계 과정과 코딩에서도 큰 아쉬움을 느낄 수 있었다.

하지만 팀 프로젝트에서 주도적으로 팀원들과 함께 Project 기획 및 설계를 해본 첫 번째 대회였기에 나름 의미는 있었다.

또한, 제작 과정에서도 전력 문제 또는 방수 처리 등의 많은 시행착오를 겪었지만 이를 해결해나가는 것도 나쁘지않았다. 그리고 쿠릉을 설계할 당시, 2차례에 걸쳐 현업에 계신 개발자분들에게 피드백을 들어볼 수 있는 좋은 기회도 있었다.

덕분에 임베디드 Project를 구성할 때의 노하우가 쌓여, 이후의 대회나 Project에서도 도움이 되었다.

특히 4학년이 되어 졸업작품 - AI Turret을 설계할 때, 쿠릉에서 쌓인 데이터가 매우 큰 도움이 되었다!!

그리고 대회 심사 결과 쿠릉을 제작한 우리 팀은 우수상을 받을 수 있었다!

이렇게 대회가 마무리 되나 싶었는데, 이번 대회 주최 측에서 전국 캡스톤 디자인 경진대회 - 경기도 예선 대회에 참가하지 않겠나고 연락을 주었다.

그렇게 짧은 기간동안 추가 및 수정 보완을 거쳐, 성균관대학교 창의적 종합설계 경진대회에 출전하게 되었다!

0개의 댓글