99-1=0 - Smart Mood Light with Sterilization

MIE capstone
이동: 둘러보기, 검색

프로젝트 소개

프로젝트 명

Smart Mood Light with Sterilization
살균 기능을 탑재한 스마트 무드등

프로젝트 기간

2020.3.16~2020.6.22

팀 소개

서울시립대학교 기계정보공학과 20154300** 노*진 (팀장)
서울시립대학교 기계정보공학과 20154300** 박*훈
서울시립대학교 기계정보공학과 20154300** 주*완
서울시립대학교 기계정보공학과 20154300** 함*규
서울시립대학교 기계정보공학과 20174300** 유*환

프로젝트 개요

프로젝트 요약

원룸은 타 주거환경에 비해 채광과 통풍 능력이 떨어진다. 공기 청정기를 이용할 수 있지만, 채광 문제를 해결하지 못한다. 다행히 넓은 공간을 가진 주거환경에 비해 규모가 작아 상용 자외선을 통한 살균 효과는 비해 뛰어나지만, 살균기의 제어는 사용자가 원룸 내 없을 때 이루어 져야 한다. 위의 문제를 해결하기 위해 스마트폰을 이용하여 원격 제어를 실행한다. 또한 원격 제어를 하면서 사용자가 원룸 내 있을 때 활용할 수 없는 살균기가 공간을 비효율적으로 차지하게 되는 문제를 해결하기 위해 이를 무드등과 결합 한다. 결과적으로 사용자가 가장 많이 시간을 보내는 공간을 살균할 수 있으며 공간의 비효율성과 안전성, 더불어 무드등의 원격제어로 인한 편의성을 제공한다. 사용자는 외부에 있을 때, 스마트폰을 이용하여 살균기 동작을 제어할 수 있다. 사용자가 내부에 있을 때 별도의 조치 없이도 자외선 동작 제어는 비활성화 되며 무드등의 원격 제어가 가능하다.

프로젝트의 배경 및 기대효과


1. 배경


99-1=0 최근4년간국내미세먼지수치.png 99-1=0 최근전세계적바이러스주기.png


최근 국내 미세먼지 수치가 꾸준히 증가함에 따라 국민들의 미세먼지 정화에 관한 관심이 높아지고 있다. 또한, 전 세계적인 바이러스 발생 주기가 짧아짐에 따라 사람들의 살균 제품에 대한 관심도가 높아지고 있다.

햇빛은 면역력 향상이나 기분 전환의 효과뿐 아니라 살균 기능을 가지고 있다. 원룸은 구조적으로 대부분 하나의 창문을 가지고 있어 충분한 빛을 받지 못하며 공기의 입/출구가 하나이기에 통풍이 원활하지 않다. 이러한 조건은 미생물이 자라나기 쉽고 미세먼지의 배출이 어렵다. 이들을 모두 정화하는 데 맞는 조건을 가진 것이 자외선이다. 자외선을 통해 공기 중에 살균이 가능하며 미세먼지 중금속을 분해해 공기를 정화할 수 있다. 하지만 자외선 살균기를 집안에 두고 사용하는 것에는 다음과 같은 문제점들이 있다.

- 살균 자외선은 인간에게 유해하므로 사용자에게 직접적인 자외선이 가해지는 것은 위험하다. 사용자가 없는 곳에서 자외선 살균기가 작동해야 하며 사용자가 있을 때 확실한 방법으로 조작 가능성을 배제 시켜야 한다.

- 사용자가 자주 쓰는 공간의 살균일수록 의미가 있으므로 자외선 살균기는 사용자가 자주 쓰는 공간에 배치되어야 한다. 그러나 위의 이유로 사용자가 실제 방에 있을 때 자외선 살균기를 사용하는 것은 위험하므로 사용자가 있을 때 별다른 기능 없이 공간만을 차지하게 된다.

원룸 내 거주자가 가장 오래 머무르는 공간으로 예상되는 곳은 침대류 이다. 침대류 근처에 있는 물체에 살균기를 결합하여 제품을 만들 수 있다면 효율적으로 문제를 해결할 수 있다. 우리는 이 조건을 만족하는 물체가 무드등이라는 점에서 문제 해결을 시작했다. 또한, 첫 번째 문제 해결을 위해 임베디드 시스템을 설계하여 사용자가 없는 공간에서의 작동을 가능하게 하는 것뿐 아니라 무드등에 다양한 기능을 추가하여 편리성과 기능의 다양함을 추가하려고 한다.


2. 기대효과


99-1=0 UV자외선을이용한살균 미세먼지정화과정.png


사용자는 집 밖에서 애플리케이션을 통해 자외선 모듈을 가동함으로써 안전한 방법으로 공간을 살균 및 미세먼지 분해 기능을 작동시킬 수 있다.

또한, 사용자가 개발 제품과 같은 공간에 있다고 판단 시 애플리케이션 자동 스위칭 기능을 통해 자외선 컨트롤 기능이 아닌 무드등 컨트롤 기능을 제어하게 된다. 따로 조작 없이 방 안/밖이라는 공간의 변화에 따라 스위칭 되기에 조작에 신경 쓸 필요가 없다. 무드등 기능으로썬 조도 조정, 빛의 색상 선택, 주변 음악에 따른 색상 변화 기능 등이 있으며 사용자가 선택하는 옵션에 따라 기능을 수행할 수 있어 편리함과 다양성을 제공한다. 사용자의 유무에 상관없이 개발제품은 유용한 도구로써 사용되기에 공간 활용성 또한 확보할 수 있을 것으로 생각된다.


목적계통도

99-1=0 목적계통도.PNG

안전성

자외선 활성/비활성화 기능은 가스 자동밸브 잠금과 비슷한 원리로 앱 구동 시 스마트폰 GPS 기능을 통해 사용자의 위치정보를 받아 주거 위치와 비교하여 앱 인터페이스 비활성화 여부를 결정한다. GPS 오작동으로 인한 비활성화가 적절히 이루어지지 않았을 때를 대비해 앱 내 수동 비활성화 버튼을 추가한다. 앱 인터페이스가 비활성화 되어 있어 사용자의 실수로 인한 신호 전달 가능성을 사전에 차단할 수 있다. 또한 회로의 긴급 정지 스위치를 통해 하드웨어 오동작 시 회로 자체의 전류를 제어할 수 있다. 또한 인체 및 환경에 유해한 정도를 판단하여 인체에 비교적 덜 유해한 UV-A의 자외선 영역을 사용했고, 수은으로 환경 파괴 문제를 일으키는 UV-램프를 대신하여 UV-LED를 사용했다.

실용성

먼저 자외선 영역의 성능을 비교하면 살균력 기준으로는 분 단위 살균력을 가진 UV-C가 시 단위 살균력을 가진 UV-A보다 월등히 강력하다. 하지만 살균 범위를 보면 UV-A는 공기 중 3-5m의 반경을 가진 것에 비해 UV-C는 공기 중 투과력이 매우 낮아 넓은 범위를 살균할 때에는 UV-A가 더 적합하다. 따라서 거주자 없이 비어있는 시간이 긴 원룸에 맞추어 UV-405nm 자외선을 이용했다. 이 때, 자외선 LED의 살균 방향을 15도 정도 아래쪽으로 내려주어 침구류 및 사용자가 자주 사용하는 물건도 더불어 살균하게 된다. 모터의 경우, 자외선 살균기의 상하 운동이 완료된 후에 해당 위치에서 고정이 되어야 하는데, 서보 모터는 고정 기능이 없고, 스탭 모터는 고정 기능을 사용할 때 소모 전력이 많다. 따라서 적은 소모 전력으로 고정 기능을 수행할 수 있는 웜 기어 모터를 사용했다. 공간 효율성을 기준으로는 제품 구성 시 얼마나 효율적인 공간 활용 여부를 비교했다. 따라서 각 제품의 특성에 맞추어 무드등 조명에는 필요 전선량이 많은 LED 전구 대신 네오 픽셀을 사용했고, 자외선 조명에는 1cm 이하의 조명 크기를 가지는 UV LED를 사용했다. 또한 사용자 위치를 판별하기 위해서 출입문 주변의 많은 공간을 차지하는 적외선 센서 활용 출/입 카운터 대신 외부 공간을 이용하지 않는 안드로이드 모바일 앱 내의 GPS 기능을 사용했다.

편의성

사용자 입장에서 제품을 이용할 때의 반응성을 기준으로 비교했다. 호스팅 제공 S/W에서는 외부의 데이터베이스를 이용하는 파이썬 애니웨어 대신 자체적으로 실시간 데이터베이스 기능을 제공하는 파이어 베이스를 사용했다. 또한 사용자 위치 판별법에서는 사용자의 출/입 여부를 얼마나 빠르게 판단할 수 있는지에 대한 비교를 했는데, 이는 적외선 센서 활용 카운터가 더 빠른 응답성을 보였다.

경제성

제품에 대한 경제적인 측면은 제품을 구성하는데 사용하는 비용과 유지비로 생각할 수 있다. 먼저 제품 구성비용은 프로젝트의 해당 제품을 구매하는 비용이다. 따라서 보다 더 값이 싼 네오픽셀, UV-A, UV-램프가 더 적합했다. 또한 호스팅 기능 S/W에서는 무료로 이용할 수 있는 범위가 더 넓은 파이어 베이스가 적합했다. 또한 유지비는 제품의 수명이 얼마나 긴지, 배터리 소모량이 얼마나 적은지, 부품 교체 비용이 얼마나 큰지에 대해 비교했다. 따라서 부품 교체 비용이 더 저렴한 네오픽셀, 수명이 더 긴 UV-LED가 더 적합했다. 또한 항상 동작시키는 적외선 센서보다 필요시에만 동작시킬 수 있는 GPS 기능이 배터리 소모량이 거의 없어 더 적합했다.

개발 용이성

개발제품 특성상 데이터베이스 및 호스팅 서비스가 필요하다. 개발자 독자적으로 데이터 베이스와 호스팅 서비스를 개발할 필요 없이 이러한 서비스를 제공하는 서버는 파이어 베이스이다. 개발 난이도는 물론 개발자의 서버 개발 시간을 최소화 하여 다른 분야의 성능 개발을 최대화 시킬 수 있다.
99-1=0 개발용이성.PNG
Application과 라즈베리 파이의 통신 중간 다리로 파이어 베이스 서버를 이용한다. 물론 무드등 제어를 위한 라즈베리 파이 서버를 구축하여 통시에 이용하면 원룸 내 무드등 제어 동작 속도를 향상시킬 수도 있다. 그러나 하나의 서버를 이용하면 통신 오류나, 오류가 발생했을 때 오류를 제어하기 쉽다. 또한 추후에 기능 추가가 용이하다. 파이어 베이스는 서버 특성상 서버 사용자가 많아지게 되면 부하가 발생할 수 있다. 그러나 개발 상품의 경우 서버는 한명의 사용자만이 이용한다는 점을 고려하여 이러한 단점을 고려하지 않을 수 있다. 따라서 해당 프로젝트에 가장 적합하고, 통신 복잡도가 적은 파이어 베이스와 안드로이드 스튜디오를 사용했다.

동작 시나리오

99-1=0 동작시나리오.png

구현 내용

역할분담 및 추진체계

99-1=0 역할분담.PNG

개발일정표

99-1=0 세부개발일정표.png

시스템 구성

99-1=0 시스템구성도.png

기구부 설계 및 구현

99-1=0 무드등모드3D설계.png 99-1=0 자외선살균모드3D.png


먼저 기구부에서는 최종적으로 제품의 형상과 베벨 기어로 사각 LED 기둥을 올리는 Mechanism과 자외선 LED가 부착되어 있는 Slide Pin Mechanism을 구현하였다. 제품의 형상의 경우에는 제품의 무드등 기능과 자외선 살균 기능을 정상적으로 구현할 수 있게 필요한 요소들을 적절히 배치할 수 있는 공간을 만들었고, 사용자의 안전성을 위해 Mood Light를 위한 NeoPixel과 UV-A LED를 구분하여 인체에 해로운 자외선 LED는 기능을 사용하지 않을 때 내부 공간에 위치하도록 구현하였다.

두 가지 Mechanism은 첫 번째 자외선 LED가 설치된 사각기둥을 올리는 Motor Mechanism과 두 번째 자외선 LED가 적절한 각도로 펼쳐지는 슬라이드 핀 Mechanism이다. 첫 번째 Motor Mechanism은 모터와 베벨 기어 및 랙 피니언 시스템을 통해 모터의 회전 운동을 직선 운동으로 전환하여 구현하였다. 또한 두 번째 Slide Pin Mechanism은 슬라이드 핀을 이용하여 중력에 의해 자동으로 사각기둥 상승 시 펼쳐지고, 하강 시 접히도록 구현한다.


기구부 설계

1. Motor Mechanism


99-1=0 모터설계.png 99-1=0 모터구현.png


두 가지 Mechanism 중 자외선 LED가 설치된 사각 기둥을 올릴 베벨 기어와 랙 피니언을 사용한 Motor Mechanism 시스템 구현을 완료했다. CATIA CAD 프로그램을 이용하여 베벨 기어 및 랙 피니언 설계를 완료했고, 3D 프린터를 이용하여 규격에 맞추어 실제 제품을 만들었다. 기존에는 랙 피니언 한 쌍만을 직접 모터에 연결하여 사각기둥의 상하 운동을 구현하려고 했지만, 대칭성이 잘 맞지 않아 한쪽으로 쏠리는 현상이 발생하여, 추가적으로 베벨 기어 등을 사용하여 대칭성을 고려하여 양쪽에서 사각 기둥의 상하 운동을 구현했다.


2. Slide Pin Mechanism


99-1=0 슬라이드핀설계.png Slide.jpg


Motor Mechanism을 통해 자외선 LED가 설치된 사각기둥이 상하운동을 하면, LED가 적절한 각도를 이루어 펼쳐지도록 구현하였다. 따라서 Slide Pin Mechanism을 이용하여 사각 기둥이 상승할 때 중력에 의해 자동으로 LED가 펼쳐지고, 하강할 때 자동으로 접힌다. CATIA CAD 프로그램을 이용하여 3D 설계를 하고, 3D 프린팅을 통해 실제로 외관을 만들었다.


99-1=0 LED각도설계.png


LED가 펼쳐지는 적절한 각도로는 30도를 정했다. 각도를 정하는 과정에서 두 가지의 고려 사항을 정했는데, 첫 번째는 자외선 LED 끝이 직각으로 도달하는 지점의 거리가 원룸이라는 공간을 고려하여 1m 이상이 되고, 두 번째는 제품과 근접한 곳의 LED 사각지대가 제품의 끝으로부터 10cm 내가 되는 기준을 두었다. 따라서 CATIA CAD 프로그램의 2D 설계를 통해 적절한 각도 30도를 설정했다. (실제로 빛은 직각으로만 전달되는 것이 아니라 사방으로 퍼지기 때문에 실제 최대 도달 거리는 기준값인 1m 보다 더 커진다.)

기구부 구현
99-1=0 사각기둥.jpg 99-1=0 Mood.jpg


99-1=0 완성본.jpg 위에서 본 모습.PNG
UV-A LED를 장착할 사각 기둥을 3D Printing을 통해 만들었다. 또한 Mood Light를 위한 NeoPixel은 사각 기둥 밖에 다른 기구에 물결 모양으로 48개를 달았다. 최종적으로 아크릴판에 불투명 시트를 붙여 등을 만들었다.

최종 작품
파랑이.jpgUV-A LED.jpg

최종으로 Mood Light에서 단색 모드로 파랑색 조명을 킬 때와, UV LED Mode에서 On버튼을 눌렀을 때 결과이다.

제어부 및 회로 구현

UV-A LED, Motor 회로도

99-1=0 제어회로도1.PNG99-1=0 내부회로도2.jpg

SMPS로부터 220V 정격 전압을 12V 정격 전압으로 나누어 아두이노와 Relay Switch를 통해 UV-LED의 전원 On/Off 구현이 가능하다. 모터와 UV LED는 아두이노로 제어하기 때문에 라즈베리파이에서 데이터베이스의 값을 실시간으로 확인하다가 UV LED 동작이 지시되면 아두이노에 신호를 보내준다. 데이터베이스의 값은 안드로이드 App을 통해 갱신되므로 결국은 안드로이드 App을 통해 UV-LED의 On/Off 제어가 가능하다. 라즈베리파이와 아누이노간의 데이터 통신은 USB 케이블을 이용한 시리얼 통신을 이용한다.(라즈베리파이와 아두이노 간의 거리가 가깝고 전송하는 데이터가 단순하기 때문에 간단한 통신 방법 선택) 구현 언어는 파이썬이며 사용한 파이썬 모듈은 serial이다. 이와 관련하여 사용한 함수들은 다음과 같다.

UV-LED 동작을 설정하는 값이 “PowerON”일 경우 USB 포트로 연결된 아두이노로 UTF-8로 인코딩된 문자 u를 시리얼 통신을 통해 전송한다. 아두이노에서는 문자 u를 받아 UV-LED On 동작을 수행한다. 만약 UV-LED 동작 설정값에 “PowerON” 외의 값이 저장되었을 경우 (“PowerOFF“의 경우가 일반적이지만 예외 처리를 위해 else로 조건 판단) 아두이노로 UTF-8로 인코딩된 문자 d를 시리얼 통신을 통해 전송한다. 아두이노에서는 문자 d를 받아 UV-LED Off 동작을 수행한다.

NeoPixel 회로도

99-1=0 네오픽셀 회로도.PNG

Mood Light구현은 NeoPixel과 Raspberry PI를 통해 구현했다. 사용자가 Application을 통해 색을 바꾸면 Database의 값이 아래 표에 Data로 바뀌면서 Mood Light 색이 변한다. NeoPixel의 Digital input을 통해 값이 들어가고, 그에 맞는 색을 자유롭게 바꿀 수 있다.
색깔.PNG

소프트웨어 설계 및 구현

App insidemode screenshot.jpg App outsidemode screenshot.jpg

앱을 처음 설치하고 실행하면 앱은 팝업 윈도우로 모바일 디바이스의 위치 정보 권한을 요청하며 사용자는 이를 최초 1회만 수락하면 된다. 앱은 실행되면 즉시 모바일 디바이스의 현재 위치 정보를 받고 데이터베이스에 저장된 집의 위치 정보와의 거리를 계산한다. 이 거리가 일정 거리 이상이면 앱은 실외 모드로 자동 설정되고, 일정 거리 미만이면 실내 모드로 자동 설정된다. 실내 모드와 실외 모드의 전환은 기본적으로 비활성화되어 있으나 사용자가 우측 하단의 스위치를 켜면 활성화되어 강제 모드 전환이 가능하게 된다. 그래서 앱을 실행했을 때 자동 모드 설정이 잘못되면 사용자가 직접 모드를 전환해서 원하는 기능을 사용할 수 있다.

앱은 크게 실내 모드와 실외 모드로 구분된다. 각 모드는 Fragment로 정의됐고 MainActivity의 bottomnavigationview를 통해 replace해서 전환할 수 있다. bottomnavigationview는 각 모드에 배치된 스위치가 꺼져 있으면 disabled되고 스위치가 켜지면 enabled된다. 사용자는 실내 모드에서 무드등을 제어하고 실외 모드에서 자외선 살균기를 제어한다.

실내 모드

실내 모드에선 무드등의 색상 선택, 밝기 조절, 전원 작동, 스페셜 모드 기능을 이용할 수 있다.

  • colorpicker
colorpicker의 색상은 초기에 12시의 연두색으로 설정되어 있고 사용자가 버튼을 드래그해서 원하는 색상을 선택할 수 있다. colorpicker의 중앙에 있는 원은 왼쪽 반원에 이전 색상을 표시하고 오른쪽 반원에 현재 색상을 표시하여 전후 색상을 비교하기 좋게 만들어준다. 사용자가 무드등의 전원을 키면 이전 색상이 표시된 반원이 현재 색상으로 교체된다. 색상은 여섯 자리의 16진수 #nnnnnn으로 표현되며 정수형으로 저장된다. 사용자가 colorpicker로 다양한 색상을 연속적인 범위에서 선택할 수 있기 때문에 선택의 폭이 넓고 세밀한 색상 선택이 가능하다. 무드등의 전원이 켜져 있으면 색상의 변화를 실시간으로 무드등에 반영한다.
  • 밝기
무드등의 밝기 조절은 실내 모드 중앙의 seekbar를 통해 할 수 있다. 밝기 값은 최소 0에서 최대 255까지 선택 가능하다. colorpicker와 같이 무드등의 전원이 켜져 있으면 밝기의 변화를 실시간으로 무드등에 반영한다.
  • 전원
Power ON 버튼을 누르면 무드등의 전원이 켜진다. 전원 버튼 하단의 얇은 띠가 전원이 꺼져있을 때 회색, 전원이 켜져있을 때 녹색을 띠면서 사용자가 무드등의 전원이 켜져있는지를 직관적으로 알 수 있게 해준다. 전원 작동 데이터가 데이터베이스에 성공적으로 전송되면 앱 화면 하단에 Toast 텍스트를 표시하여 사용자에게 전원의 작동을 알려준다. 전원 버튼의 Power ON/Power OFF 텍스트는 colorpicker에서 선택된 색상과 실시간으로 동일하게 적용되어 사용자에게 무드등이 어떤 색으로 켜질지 더욱 직관적으로 와닿게 만들어준다.
  • 스페셜 모드
앱을 실행하면 무드등의 모드는 기본 모드로 설정되어 있는 상태이다. 스페셜 모드 버튼을 누르면 순차적으로 웨이브 모드 1, 웨이브 모드 2, 레인보우 모드 1, 레인보우 모드 2가 설정되며 그후 다시 기본 모드로 돌아온다. 현재 설정된 모드는 스페셜 모드 버튼의 텍스트로 나타나서 사용자가 이를 알 수 있다. 또한 버튼을 누를수록 단계적으로 버튼의 배경 색이 진해지며 버튼의 깊이감을 더해준다. 스페셜 모드 버튼의 아래엔 모드의 전체 개수와 현재 모드가 몇 번째인지를 시각적으로 쉽게 알게 해주는 공백 칸들이 있다. 이 칸들은 기본 모드에서 모두 비어있게 되고 스페셜 버튼이 눌릴 때마다 한 개씩 채워지며 모두 채워진 후엔 다시 모두 빈 칸으로 돌아온다.


스페셜 모드는 무드등이 켜져 있을 때에만 작동이 유효하다. 무드등의 전원이 꺼져 있을 때 스페셜 모드를 작동하면 무드등에서 아무 일도 일어나지 않는다. 이런 상황을 예방하기 위해 앱에서 무드등의 전원이 꺼진 상태에서 스페셜 모드만 작동하는 일이 일어나지 않게 한다. 무드등의 전원이 꺼진 상태에서 스페셜 모드 버튼을 누르면, 앱은 무드등의 전원도 키고 스페셜 모드도 작동한다. 또한 스페셜 모드가 설정된 상태에서 무드등의 전원을 끄면 앱은 스페셜 모드를 기본 모드로 설정하고 무드등의 전원을 끈다. 만약 사용자가 레인보우 모드를 바로 사용하고 싶다면 전원 버튼을 누를 필요 없이 바로 스페셜 모드 버튼을 3회 누르면 된다. 전원 버튼을 누르는 단계를 거치지 않아도 되기 때문에 빠르고 간편하게 즉시 스페셜 모드를 이용할 수 있다. 결과적으로 무드등의 전원이 꺼진 상태에서 무드등의 모드는 항상 기본 모드로 설정되어 있고, 스페셜 모드가 켜진 상태면 무드등의 전원도 항상 켜진 상태가 된다.


실외 모드

실외 모드에선 위치 정보 설정, 자외선 살균기의 전원 작동, 타이머 기능을 이용할 수 있다.

  • 위치 정보 설정
HOME LOCATION 버튼을 누르면 모바일 디바이스의 현재 위치 정보를 데이터베이스에 저장하여 집의 위치로 설정한다. 설정한 집의 위치 정보는 앱이 실행됐을 때 집과 사용자 사이의 거리를 계산하는 데 이용된다. 데이터베이스에 저장된 위치 정보는 사용자가 새롭게 설정하지 않는 한 항상 일정하게 유지된다. 그래서 앱을 재설치했을 때 집의 위치 정보 설정을 다시 할 필요가 없다. 상수의 변수명을 대문자 알파벳으로 선언하는 프로그래밍 관습을 응용해서 위치 정보 설정 버튼의 텍스트도 대문자 알파벳으로 하였다.
  • 자외선 살균기
실외 모드에서 Power ON 버튼을 누르면 자외선 살균기의 전원이 켜진다. 전원 버튼 위의 spinner에서 타이머가 작동할 시간을 선택할 수 있으며 초기 타이머는 1시간으로 설정된 상태이다. 타이머는 시간 단위로 선택할 수 있고 최대 12시간까지 선택 가능하다. 자외선 살균기의 전원을 켜면 전원 버튼 아래에 textview가 표시되어 타이머의 남은 시간을 알려준다. 설정한 타이머가 종료되면 앱이 자동적으로 자외선 살균기의 전원을 끈다.



Firebase

99-1=0 파이어베이스스크린샷.jpg 99-1=0 파이어베이스연동.jpg
Firebase는 Google 사의 모바일 및 웹 개발 플랫폼이다. Firebase는 많은 유용한 기능을 지원하지만 여기선 실시간 데이터베이스를 사용한다. Firebase의 장점은 안드로이드 및 iOS 앱과 연동이 용이하다는 것이다. 또한, Firebase는 시간과 장소에 구애받지 않고, 데이터가 안전하게 보존되며, 데이터를 읽고 쓰는 것이 간편하다. 그래서 Firebase는 사용자의 집의 위치 정보를 저장하기에 적합하다. 이 데이터는 제 3자가 접근할 수 없으며 사용자가 새롭게 설정하지 않는 한 영구히 보존된다. 앱은 Firebase의 데이터베이스에 집의 위치 정보를 저장하기도 하지만 읽어오기도 한다. 앱은 실행되면 데이터베이스의 집의 위치 정보를 읽어와서 현재 사용자의 위치 사이의 거리를 계산하고 실내/실외를 판별한다.

무드등과 자외선 살균기를 작동할 때에도 Firebase를 이용한다. 사용자가 앱으로 작동한 무드등의 색상, 밝기, 전원, 모드 데이터와 자외선 살균기의 전원, 타이머 데이터는 Firebase의 데이터베이스에 저장된다. 앱은 무드등의 전원이 켜진 상태에서 색상이나 밝기가 변경되면 변경 사항을 즉시 데이터베이스에 반영한다. 자외선 살균기의 타이머는 데이터베이스에 저장되지만 남은 타이머 시간까지 일일이 저장되진 않는다. 앱에서 설정한 시간이 지나면 자외선 살균기의 전원을 끄는 데이터를 저장할 뿐이다.

무드등과 자외선 살균기를 직접 구동시키는 것은 라즈베리파이와 아두이노이다. 라즈베리파이는 데이터베이스에 저장된 무드등의 색상, 밝기, 전원, 모드 데이터를 읽어와 라즈베리파이에 직접 연결된 네오픽셀 LED의 작동을 지시한다. 또한 살균기의 전원 데이터를 읽어와 아두이노에 살균기를 들어올리는 모터의 동작과 살균기 LED의 동작을 지시한다. 아두이노에서는 라즈베리파이의 지시를 대기하다가 살균기의 ON/OFF 동작 신호를 받아 살균기를 켜고 끈다. 이 때 살균기가 부착된 구동부의 높이는 아두이노에 연결된 초음파센서로 거리를 측정하여 조절한다.

UV-LED 곰팡이 저해 실험

본 실험은 UV-A LED의 곰팡이 생육 저해 능력을 검증하기 위한 실험이다. 구체적인 저해율의 수치를 나타내기 위해 1차 살균 실험에 이어 2차 곰팡이로 실험을 하여 저해율을 나타낼 것이다.

1. 실험 준비


Petri Dish, Sterile cork borer, 곰팡이
99-1=0 세균실험준비2.png
99-1=0 세균실험준비3.png 99-1=0 세균실험준비4.png


2. 실험 과정
1) 먼저 3종의 곰팡이(Cladosporium sp, Fusarium sp, Aspergillus sp)를 키울 배지를 만들기 위해 Difo회사 제품인 PDA 12g과 Agar 10g을 비커에 넣은 후 500ml distilled water를 넣어준 후 autoclave에서 121℃에서 15분간 돌려준 뒤 petri dish에 부어 1~2일 동안 말린다.
2) 곰팡이가 PDA배지에서 충분히 성장했다면 이를 각각 Petri Dish에 접종한다. 이 때 일정한 양의 곰팡이를 접종하기 위해 그림에 있는 Sterile cork borer를 사용한다.
99-1=0 세균실험과정1.png 99-1=0 세균실험과정2.png
99-1=0 세균실험과정3.png 99-1=0 세균실험과정4.png
3) 3종의 곰팡이를 0.5m, 0.75m, 1m 간격으로 배치시키고, 다른 하나는 대조군으로 UV-A LED에 노출시키지 않은 채로 성장시킨다.
99-1=0 세균실험과정5.png 99-1=0 세균실험과정6.png
4) Petri Dish 안에서 곰팡이의 성장률을 원의 반지름으로 근사시킵니다. 또한 생리식염수를 10마이크로미터 떨어트린 후, 소량의 곰팡이를 접종해준 뒤 커버 글라스를 붙이고 광학현미경으로 관찰한다.
5) 곰팡이가 자란 원의 반지름을 측정하고, 이를 저해율로 나타낸다. 저해율의 식은 다음과 같다. (저해율(%)= (대조군의 반지름 - 실험군의 반지름)/대조군의 반지름 * 100)
99-1=0 곰팡이 측정.jpg


3. 실험 결과


 : 1) Cladosporium sp(벽지 곰팡이)
99-1=0 Cladosporium sp.PNG


 : 2) Fusarium sp(토양 곰팡이)
99-1=0 Fusarium sp.PNG


 : 3) Aspergillus sp(누룩 곰팡이)
99-1=0 Aspergillus sp.PNG


아래 표는 현미경을 통해 관측한 곰팡이의 반지름(cm)이고, 이를 위해 저해율식에 대입하여 곰팡이 저해율을 계산하였다.

길이값.PNG
저해율.PNG
5시간 기준.PNG

10시간 기준.PNG


4. 결론
 : 최종 저해율로 나타낸 결과 UV-A LED에 5시간, 10시간에 따른 차이는 거의 없었지만 거리에 따른 저해율의 차이는 눈에 띄었다. 0.5m 거리에선 약 80%의 저해율을 보였고, 0.75m 에서는 Cladosporuim sp와 Fusarium sp은 약 50%의 저해율을 보였지만 Aspergillus sp는 30%의 저해율을 보였습니다. 1m 거리에선 저해율이 많이 떨어졌는데, Cladosporium sp는 39%, Fusarium sp는 25%, Aspergillus sp는 6%의 저해율을 보였습니다. 1m에서의 살균력은 많이 떨어졌고, 이를 보완하기 위해 기존 실험은 25cm UV-A LED 2개를 설치했는데, 제품에는 한 슬라이드 당 3개로 늘려 설치했다.

프로젝트 결과

최종 결과물

구동 예시 동영상

99-1=0 videopic1.png 99-1=0 videopic2.png

시나리오 동영상

99-1=0 videopic3.png
UV-A LED Mode & Mood Light mode
UV-A LED.jpg99-1=0 무드등.jpg

미구현 내용

99-1=0 미구현내용.png

프로젝트 평가

평가항목

99-1=0 평가항목.png

평가결과

99-1=0 평가 결과.PNG

느낀점

노*진: 프로젝트의 주제를 결정하기 전까지만 하더라도 라즈베리파이와 각종 모듈에 대한 지식이 없어 막막했습니다. 하지만 잘 모르는 만큼 팀원들과 더욱 조사를 열심히 하고, 구체적으로 설계를 하였습니다. 개념설계 발표 때까지 ‘과연 의도한대로 동작할까?’ 라는 의문점을 가졌지만 중간발표 준비를 하면서 원하는 기능들이 하나 둘씩 구현되고, 기구부의 Mechanism들이 완성되는 것을 보면서 재밌었고, 성취감을 느꼈습니다. 프로젝트를 진행하면서 전공 지식이 아닌 전기 회로도와 관련된 일들을 구글링과 여러 사이트에 물어보면서 해결을 했고, UV-LED의 살균력을 검증하기 위해 생명공학 전공인 지인의 도움을 받으면서 프로젝트의 문제들을 해결했습니다. 이 과정에서 잘 모르는 부분을 어떤 방법으로 해결할 지에 대한 능력을 기를 수 있었습니다. 마지막으로 내장형시스템 과목을 통해 기계정보공학과의 매력을 느낄 수 있었고, 앞으로 프로젝트를 수행할 때 자신감을 가질 수 있을 것 같습니다.


박*훈 : 기계정보공학을 전공한지 4학년 1학기에 처음으로 컴퓨터 관련 프로젝트를 진행했습니다. 그동안 기계 관련 CAD 프로젝트나 CAE 프로젝트는 다수 경험이 있었지만 컴퓨터 분야는 경험이 없었기 때문에 프로젝트 과정 중 가장 처음 과정인 주제 선정에서부터 엄청난 난관에 부딪혔습니다. 하지만 주어진 시간 안에 주어진 모듈로 할 수 있는 주제를 생각해냈고, 프로젝트를 시작했습니다. 프로젝트 진행 과정 중에 한계에 도달하는 일도 있었고 뜻처럼 진행되지 않는 일도 있었지만 팀원들과 함께 돌파구를 찾아가며 차근차근 프로젝트를 완성했습니다. 프로젝트를 진행하면서 기계정보공학의 융합적 전공의 취지에 맞게 기계적인 메커니즘과 임베디드 시스템을 융합한 완성품을 제작하기 위해 노력을 했고, 실제로 저는 기구부의 메커니즘 쪽을 맡아 CAD 프로그램인 CATIA를 통해 기어 및 랙 피니언 세트와 슬라이드 핀 등을 설계하고 3D 프린터를 이용하여 실제 구현을 완료했습니다. 기구부 제작 과정 중 값비싼 3D 프린터 제작의 비용과 3D 프린터 제작품의 과도한 무게 등의 문제가 있었지만, 팀원들과 협의한 끝에 해결 방안을 고안하여 이러한 문제를 해결했습니다. 이번 내장형 프로젝트의 경험을 통해 팀원들과의 소통 능력과 문제 해결 능력을 한층 성장시켰고, 앞으로 있을 프로젝트에 큰 도움이 될 것 같습니다.


주*완: 이번 학기에 내장형시스템및실습을 수강하며 처음으로 주제 선정부터 완제품 제작까지 모든 것을 직접 경험했습니다. 주제 선정부터 시작해 모든 과정이 쉽지 않았고 걸림돌에 걸려서 결국 설계를 바꾸기도 했습니다. 하지만 한계를 극복할 방법을 고민하고 공부하고 질문하고 찾아 헤매면서 많은 것을 배웠습니다. 특히 제가 맡은 부분인 안드로이드 앱을 개발하기 위해 1학년 때 배웠지만 모두 잊어버린 java를 처음부터 다시 공부했고, 안드로이드를 아무것도 모르는 상태에서 인터넷 검색만으로 하나하나 공부하고 직접 코드를 짜서 완성까지 했습니다. 과정 중에 알 수 없는 이유때문에 앱이 원하는 대로 안 되거나 강제 종료 될 때가 매우 매우 많았는데, 스스로 계속 공부하고 원인을 찾고 고쳐 나가서 마침내 앱을 완성할 수 있었고, 스스로 문제를 해결하는 능력을 기를 수 있었습니다. 또한 기구부와 외형을 이루는 부분을 만들 때 자르고 다듬는 일이 많이 필요했는데 서로 필요한 부분이 있으면 도와주면서 협동하여 결과가 잘 나온 것 같아 만족스럽습니다. 프로젝트를 하며 값진 경험을 했고 앞으로 다른 프로젝트를 하게 된다면 이 경험이 소중한 밑바탕이 돼서 도움이 많이 될 것 같습니다.


함*규: 임베디드 시스템을 처음 접해보기에 주제를 정하는 과정이 가장 어려웠던 것 같습니다. 처음에는 주어진 시간 내에 해낼 수 없는 비현실적인 주제에 대해 고민하며 기능적 한계에 부딪혀보기도 하고, 챗바퀴 도는 듯한 생각이 들었지만, 이 과정 속에서 전체적인 임베디드 시스템에 대한 이해와 할 수있는 것과 할 수 없는 것에 대해 구분할 수 있는 능력을 얻을 수 있었습니다. 이후에 직접 정한 주제를 바탕으로 프로젝트를 수행해나가면서, 초기 설계로는 해결할 수 없는 문제들을 팀원들과 함께 협동하여 풀어나가는 과정은 정말 힘들기도 했지만 되돌아 보면 책상에서는 배울 수 없는 많은 경험들을 배웠다고 생각합니다. 4-1학기를 떠올리면 많은 희노애락이 있었던 내장형 밖에 생각나지 않을 것 같은 데, 정말정말 재밌었고(농담이 아닙니다.) 후배들에게 꼭 추천해주고 싶습니다.


유*환: 내장형 시스템 프로젝트의 주제를 정하는 과정이 가장 어려웠습니다. 라즈베리파이에 센서나 모터, 또다른 보드를 연결하여 사용한 경험이 없어 주어진 시간 내에 완성할 수 있는 정도를 알기 어려웠습니다. 그래서 처음에는 학기 내에 완성이 불가능한 주제들을 생각했었습니다. 결국 마지막까지 주제를 정하지 못하다가 막바지에 급하게 살균 무드등을 만들기로 했습니다. 주제가 정해지고 자료조사를 마쳤을 때만 해도 힘든일이 끝나고 모든 일이 수월하게 진행될 것만 같았습니다. 그런데 출입 감지 방법, 음악 주파수 분석 등이 뜻대로 되지 않자 다시 조마조마해졌습니다. 하지만 적절한 대안을 찾고 해결해나가면서 완성되가는 프로젝트를 보며 뿌듯했습니다. 그리고 살균 무드등을 완성하고 영상까지 마무리 지었을 때는 그동안 밤을 새며 고생했던 시간들에 대해 보상받는 느낌이 들었습니다. 무엇보다 팀원 형들이 프로젝트에서 각자가 맡은 열할을 너무 잘 수행해주어서 감사했습니다. 유일하게 라즈베리파이 경험이 있는 저보다도 잘해주어서 미안하기도 하고 대단하다는 느낌이 들었습니다. 내장형 프로젝트는 과정은 정말 힘들었지만 팀원들과 살균 무드등을 만드는 것이 재밌었고 프로젝트 진행에 대한 경험치가 쌓여 좋은 기회가 되었습니다.