제 1회 수소에너지 활용을 위한 임베디드 AI 해커톤 챌린지 캠프

2024. 9. 9. 00:50

 

해커톤 포스터

 

1. 도입

 

우연한 기회로 해커톤에 참여하게 되었다.

팀명은; H2 4H(H2 4Human)

팀은 기계공학과 학부생 2명, 자동차공학과 학부생 1명 그리고 나(당시 컴퓨터공학 단일전공)으로 꾸려졌다.

 

수소에너지와 관련이 있어야 하고,

라즈베리파이4를 이용해 임베디드 시스템을 만들어야 했다.

 

우리팀은 <라즈베리 파이를 활용한 수소량 계측 및 경보 시스템 앱 개발>을 만들기로 했다.

당시에 flutter와 관련된 프로젝트를 진행하고 싶던 터라...

flutter를 활용해 앱을 만들기로 했다

 

기계과 두 명이서 하드웨어쪽을, 나와 자차과 두 명이서 소프트웨어 쪽을 담당했다.

 

개발 기획서는 다음과 같다


라즈베리 파이를 활용한 수소량 계측 및 경보 시스템 앱 개발

 

프로젝트 소개전 세계에서 미래에너지로 수소가 주목받고 있는 지금, 우리 대한민국에서도 각종 연구실, 수소 충전소 등 많은 곳에서 수소를 개발, 활용하고 있습니다. 하지만 감지 시스템이 설비되어 있지 않거나, 설비되어 있더라도 정상 작동하지 않아 안전사고가 발생하는 사례가 생겨나고 있습니다. 이러한 불안감을 덜고자 라즈베리 파이를 활용하여 여러 장소에서 사용이 가능한 수소량 계측 및 경보 시스템 앱 개발을 하고자 합니다. 대기 중의 수소량, 일정 수소량과 같은 정보를 핸드폰 애플리케이션을 통하여 한눈에 알아볼 수 있게 만들고 수소가 일정량 이상 공기 중에 누출되었을 경우(폭발, 화재 등의 위험 단계) 경보를 울려주는 시스템을 구축하는 것을 프로젝트 최종 목표로 삼았습니다.

 

 주요 기능:

1. 수소 인식: 가스 감지 센서가 대기 중의 수소를 감지함.

2. 수치 표시 : 핸드폰 애플리케이션을 통하여 대기 중에 있는 수소의 양이 얼마나 있는지 수치를 숫자로 한눈에 알아보게 쉽게 표시해 줌.

3. 수소 누출 감지: 일정량 이상 수소가 누출되면 감지하여 핸드폰 앱에 알림을 보냄.

4. 경고 기능: 센서가 부착된 공간에서 미리 설정해 둔 기준치 이상의 수소가 인식된다면 버저가 울림.

 

 

활용 방안: 수소량 계측 및 경보 시스템은 수소를 사용하는 모든 공간에서 활용할 수 있습니다. 수소를 활용하여 연구 활동을 하는 연구실, 수소 운송기지, 수소 저장 기지, 수소 충전소 등 수소가 쓰이는 모든 곳이라면 어디든 사용할 수 있습니다. 또한 휴대전화로 한눈에 수치를 알아볼 수 있으며 위험 수치에 도달할 시 경보를 울려주기에 간편하다는 장점 또한 있습니다.

 수소량 계측 및 경보 시스템을 구축한다면 대기 중의 수소량은 얼마인지, 수소가 누출되는지, 누출된다면 얼마나 새어나가고 있는지 알 수 있게 해 줄 수 있기 때문에 이용자로 하여금 폭발에 대한 불안감을 줄일 수 있습니다. 저희 팀은 그중에서도 특히 수소 소비자 입장에서 주로 이용된다고 볼 수 있는 수소 차량 충전소에 집중하였는데, 충전소에는 불꽃 감지 센서가 부착되어 있지만, 이는 오로지 수소로 인한 불꽃만을 감지해 낼 수 있다는 단점이 있습니다. 수소는 일정 조건에 도달해야 폭발하게 되는데 그전에는 불이 붙어도 보이지 않기 때문에 수소 불꽃 감지기를 사용합니다. 불꽃 감지기의 성능도 물론 좋지만, 누출 여부를 정확히 알기 위해서는 수소 계측기를 사용하여야 하는데 현재 수소가스누설 계측기는 시중에서 휴대용 밖에 판매하고 있지 않습니다. 따라서 저희 팀이 구축하고자 하는 수소량 계측 및 경보 시스템은 수소 불꽃 감지기와 함께 사용한다면 수소 충전소뿐만 아니라 수소를 활용하는 많은 현장에서 안전사고를 줄이는 핵심 열쇠가 되리라 생각합니다.


 

개발서를 보면 알 수 있듯이 AI 와 관련된 부분이 없다...

컴공과는 나, 단 한 명이었고 

나 조차도 AI에 관련해서 강의를 들은 적이 없는 상태였다.

 

아쉽지만 간단하게 라도 회귀모델을 사용하게 되었다. 

 

2. 발단

 

해커톤은 양양 교과서 연수원에서 진행되었다.

해커톤에 참여한 것은 처음이라 설레설레 두근두근했다.

 

 

5일간의 여정이 시작되었다.

앞으로 다가올 위기들을 모른채...

 

3. 위기

 

4명 모두가 팀 프로젝트를 진행해본 적이 없었다.

모두가 3학년이었기에, 캡스톤 프로젝트도 진행해 본 적이 없는 상태였다.

 

하지만 부족한 경험을 쥐어짜내어 결과물을 도출하는 것이 해커톤이므로...

우린 어떻게든 프로젝트를 진행해 나가야했다.

 

Notion을 통해 자료를 공유하자는 의견을 냈다.

내가 Notion을 다음과 같이 구성하여 코드와 자료를 공유했다.

왜냐하면 다른 팀원들은 깃허브를 사용해 본 적도 없고, 사용하는 방식도 몰랐기 때문에...

 

 

하드웨어 (라즈베리파이), 데이터 수집 팀 

 

하드웨어 담당팀은 수소를 발생시켜 라즈베리파이4로 수소량 데이터를 수집했다.

수소를 어떻게 발생시켰나?

 

답은 언제나 가까운 곳에 있다.

수소 자동차 키트를 활용해 수소를 발생시켰다.

 

연료전지에 물을 넣고 전기를 이용해 분리를 시키면

물-> 수소, 산소로 분해가 된다!

이때 모인 수소를 가져다가 쓰는 것이다.

 

과학은 정말 위대하다.

 

MQ-8 센서를 활용해 수소량을 수집... 하려는 생각이었으나

세상에나! MQ-8센서는 아날로그 신호로만 데이터 수집이 가능하다.

수소량이 0, 1로만 나오는 일이 벌어졌다...

급하게 아날로그-> 디지털 컨버터를 쿠팡으로 시켰다.

디지털 신호로 데이터 수집이 가능하게끔 했다.

 

 

고마워요, 쿠팡!

 

라즈베리파이 -> firebase로 데이터를 옮기는 것까지 구현해줬다!

우리는 realtime data로 수소량 데이터를 수집할 수 있었다.

 

소프트웨어 팀 (사실 상 1인 개발)

우리는 firebase에서 realtime data를 받아 flutter로 만든 App에 그래프로 수소량을 알려주는 기능을 구현했다.

푸시 알람까지 구현하려 했으나... 시간이 너무 짧았다.

 

flutter로 앱을 구현한 이유는, 간단하게 깔쌈한 UI를 구현할 수 있다는 점이었다.

또한 firebase와 호환이 잘 된다.

 

그러나 단점은... 생긴지 얼마 안 되고 마이너한(?) 언어라 그런지

참고 자료가 별로 없었다.

또한 구현 기능에 한계가 많았다.

예를 들면 실시간 그래프는 최고점을 설정할 수 없다거나... 하는 점들

 

이 포스트를 도움삼아 그래프를 구성했다.

https://software-creator.tistory.com/23

 

Flutter - CustomPainter로 차트(그래프) 그려보기

Flutter CustomPainter 및 차트 그려보기 custom painter란?canvas, paintdrawLine 등 메소드 사용해보기그래프 그려보기 이 글에 쓰인 소스 코드는 Github 에서찾아보실 수 있습니다.플러터를 쓰다보니 입맛에 딱

software-creator.tistory.com

 

UI는 Mitch Koko라는 유튜브 채널에서 도움을 받았다.

https://www.youtube.com/@createdbykoko

 

Mitch Koko

📱I code apps with FLUTTER

www.youtube.com

 

개발을 시작하고 나서야 시작된 위기가 세 가지 있었다.

 

1. 같이 개발하기로 한 친구의 개발 실력이 낮았다는 것. dart 언어를 사용할 줄 몰랐고 다른 언어도 마찬가지였다.

2. 그렇다고 내가 그 친구를 알려줄 정도로 실력이 좋지 않았다는 것

3. DB와 앱을 연결하는 것을 구현하지 못했다는 것

 

1번, 2번 같은 문제점 때문에... 나는 거의 1인 개발이나 다를 바 없이 개발했다.

 

같이 개발하기로 한 친구는... 디자인과 UI 관련해서만 담당했다.

나는 5일동안 머리가 깨져가며 외로운 개발의 길을 걸었다...

 

개발 과정

 하드웨어 팀이 먼저 데이터를 수집해야 뭐라도 할텐데... 라즈베리파이와 센서 관련해서 진행하는 데에 이틀이 걸렸다. 

소프트웨어는 그 뒤에야 본격적으로 일을 시작할 수 있었다.

 또한 앞서 말했다시피 1인 개발이나 다를 바 없이 작업했기에... 심지어 할 일이 적은 것도 아니었기에... 

굉장히 시간에 쫒기면서 코딩했다.

 

많지도 않은 flutter 관련 자료를 수집했고, Mitch Koko의 유튜브 채널과 깃허브를 참고하여  여러가지 기능도 넣었다.

 

현실적으로 AI 구성까지는 힘들었기에, 일단 프론트엔드라도 구현하지는 마인드로

열심히 뚝딱뚝딱 일했다.

 

4. 절정

5일 동안의 긴 여정 끝에,

뭐라도 만들어지긴 했다.

Main Page

들어가자 마자 보이는 Main Page!

빨간 버튼이 있는 곳은 수소차 충전소이다.

지도를 background로 깔아 쉽게 확인 할 수 있도록했다.

 

 

 

빨간 버튼을 누르면 들어가지는 Page다.

안전함의 정도를 나타내는 이모티콘과 텍스트가 보인다. 

가운데에는 수소량을 나타내는 그래프가 보인다.

아래 홈버튼을 누르면 Main Page로 돌아간다.

 

왼쪽에서 스와이프하면 

현재 수소량을 수치로 확인할 수 있다.

이외에도 온습도, 날씨 (수소 폭발에 관련된 원인)을 보여준다.

 

푸시알람까지 구현하려 했지만 시간이 모자랐다.

나중에 디벨롭하며 푸시알람까지 구현하려 한다.

 

 

5. 결론

https://www.reporternside.com/news/articleView.html?idxno=276073

 

국립강릉원주대 스마트수소에너지사업단 임베디드 AI해커톤 챌린지 캠프 성료 - 엔사이드

강원지역혁신플랫폼 스마트수소에너지사업단(단장 최원열)은 2월 19일부터 23일까지 5일간 강원특별자치도 양양군에 위치한 한국교과서협회연수원에서 ‘수소에너지 활용을 위한 임베디드 AI

www.reporternside.com

 

최종적으론 장려상을 수상했다.


 

IT 인프라적으로는 괜찮게 구성되었지만 AI가 활용되지 않았고

프로젝트 동기가 미흡하다는 평가를 받았다.

 

 

더 큰 상을 바랐기에 아쉬움이 남았다.

하지만 좋은 경험이었다!

 

 

 

 

 

 

프로젝트 깃허브 주소:

https://github.com/youngmumi/Hydrogen-Measurement-and-Alarm-System-App

 

GitHub - youngmumi/Hydrogen-Measurement-and-Alarm-System-App: 라즈베리파이를 활용한 수소량 계측 및 경보 시스

라즈베리파이를 활용한 수소량 계측 및 경보 시스템 앱 개발. Contribute to youngmumi/Hydrogen-Measurement-and-Alarm-System-App development by creating an account on GitHub.

github.com

 

BELATED ARTICLES

more