"2조 - E.F.E"의 두 판 사이의 차이
Hongcii0215 (토론 | 기여) |
잔글 (님이 "2조 - E.F.E" 문서를 보호했습니다 ([편집=관리자만 허용] (무기한) [이동=관리자만 허용] (무기한)) [연쇄적]) |
||
(다른 사용자 한 명의 중간 판 6개는 보이지 않습니다) | |||
16번째 줄: | 16번째 줄: | ||
가. Arduino ..................................................................................................5 | 가. Arduino ..................................................................................................5 | ||
+ | |||
1) Arduino 발전사 ...................................................................................5 | 1) Arduino 발전사 ...................................................................................5 | ||
+ | |||
2) Arduino 특징 .......................................................................................6 | 2) Arduino 특징 .......................................................................................6 | ||
+ | |||
3) Arduino 종류 ......................................................................................6 | 3) Arduino 종류 ......................................................................................6 | ||
− | + | ||
− | + | ||
− | + | 나. Arduino Software .................................................................................9 | |
− | + | ||
1) Arduino 개발환경 ...............................................................................9 | 1) Arduino 개발환경 ...............................................................................9 | ||
+ | |||
2) Arduino 라이브러리 ..........................................................................11 | 2) Arduino 라이브러리 ..........................................................................11 | ||
+ | |||
3) Arduino 사용방법 ..............................................................................11 | 3) Arduino 사용방법 ..............................................................................11 | ||
+ | |||
4) ATmega 내부 모듈 ...........................................................................15 | 4) ATmega 내부 모듈 ...........................................................................15 | ||
− | + | ||
− | + | ||
− | + | 다. Android ......................................................................................................18 | |
− | + | ||
− | |||
− | |||
1) Android 특징............................................................................................18 | 1) Android 특징............................................................................................18 | ||
+ | |||
2) Android 구조............................................................................................19 | 2) Android 구조............................................................................................19 | ||
− | + | 2. 제안 시스템 .................................................................................................21 | |
+ | |||
가. 시스템 구성 ............................................................................................21 | 가. 시스템 구성 ............................................................................................21 | ||
+ | |||
나. 하드웨어 구성 .........................................................................................21 | 나. 하드웨어 구성 .........................................................................................21 | ||
− | + | 3. 시스템 구현 ..................................................................................................23 | |
+ | |||
가. 재활용쓰레기 자동분류기........................................................................23 | 가. 재활용쓰레기 자동분류기........................................................................23 | ||
− | |||
57번째 줄: | 64번째 줄: | ||
Ⅴ. 부 록 | Ⅴ. 부 록 | ||
− | + | 1. 프로그램 소스코드 ......................................................................................31 | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | Ⅰ. 서 론 | ||
+ | |||
+ | 1. 연구의 필요성 | ||
+ | 현재 우리나라에서 1년간 나오는 쓰레기의 양은 1500만 톤에 이른다. 그런데 이렇게 많은 양의 쓰레기들이 적절히 분리수거 되지 않고 버려지고 있다. 많은 양의 쓰레기들의 분리수거를 철저하게 할 수 있다면 우리사회에 큰 이익이 될 것이다. | ||
+ | 그 이익으로는 첫 번째로 경제적인 이익으로 전국적으로 버려지는 분리수거 쓰레기를 경제적 가치 로 환산하면 연간 수조원이다. 그리고 처리하는 비용도 4천억 이상이다. 이러한 비용을 감소시킬 수 있다면 경제적으로 큰 이익을 얻는다. | ||
+ | |||
+ | 두 번째로는 환경오염 예방이다. 쓰레기는 대부분 토양에 매립하거나 소각하는 방법으로 처리하며, 이러한 방법으로 처리하면 악취발생, 해충번식, 침출수 발생 등으로 환경오염이 심해진다. 이러한 쓰레기들을 분리수거가 잘 된 상태에서 한다면 공기오염도 줄어들 것이고, 자원의 재활용으로 인한 효율성이 좋아질 거라 생각한다. | ||
+ | |||
+ | [그림 1]과 같이 지금도 우리나라의 분리수거율이 60%가 넘어 OECD국가들 중 독일과 오스트리아에 이어 3위로 최상위에 속하지만 잘하고 있는 일을 더욱 더 발전시키는 것 또한 중요하다고 생각한다. | ||
+ | 현재 분리수거장에서 사람들의 귀찮음과 정확하지 못한 분류로 인해 쓰레기를 재분류하는 비효율적인 활동이 이뤄진다. 이를 해소하기 위하여 자동으로 분리수거를 하는 시스템이 있다면 도움이 될 것이다. | ||
+ | |||
+ | 위의 [그림 2]는 일반가정에서 여러 재활용품목의 분리수거 현황을 나타내며 높은 수치를 나타내고 있다는 것을 확인할 수 있다. | ||
+ | |||
+ | |||
+ | 2. 연구의 목적 | ||
+ | |||
+ | 분리수거 문제로 인해 국가적으로 손실되는 비용이 해마다 늘어나고 있다. 이러한 문제점을 조금이라도 해소가 된다면 예산 절감 효과를 얻을 수 있으며 분리수거를 통해 환경오염 문제 또한 이바지할 수 있다. | ||
+ | 본 논문에서 제시하는 작품은 직접적으로 재활용 쓰레기를 분류하는데 있어서 불편함을 해소하고 편리함을 얻기 위해서이다. | ||
+ | |||
+ | |||
+ | 3. 연구의 범위 및 구성 | ||
+ | |||
+ | - 금속센서를 활용하여 금속과 비금속을 분류하는 방법. | ||
+ | - 포토센서, 주파수센서를 활용하여 유리, 플라스틱을 구분하는 방법. | ||
+ | - 로드셀을 이용해서 무게를 측정하여 2차 분류 방법. | ||
+ | - 서보모터, 스테핑모터를 활용하여 정해진 위치로 쓰레기를 분류하는 방법. | ||
+ | |||
+ | |||
+ | Ⅱ. 본 론 | ||
+ | |||
+ | 1. 관련 연구 | ||
+ | |||
+ | 가. Arduino | ||
+ | |||
+ | 아래 [그림 3]은 오픈 소스(Open Source)를 기반으로 한 단일 보드(board) 마이크로 컨트롤러이다. 2005년 이탈리아 사람에 의해서 최초 만들어지기 시작 한 프로젝트로 현재에도 진행 중에 있으며 Arduino는 이탈리어로 영어의 `Best Friend`와 같은 의미를 가진다고 알려진다. | ||
+ | |||
+ | 1)Arduino 발전사 | ||
+ | |||
+ | 위 [그림 4]은 Arduino의 발전사를 나타낸다. Arduino는 2005년 이탈리아 Ivrea에서 초기 프로젝트가 만들어졌다. 2008년 10월, Arduino Duemailanove가 출시되었으며 추가로 2009년 3월에는 Arduino Mega가 출시되었다. 2011년 3월, 전 세계적으로 30만개 이상의 Arduino 유닛을 사용할 수 있었으며 2015년 3월엔 Arduino가 10주년을 맞았다. 또한 초기의 Arduino 보드는 UART와 RS-232을 결합한 통신을 사용하였다. 그러나 개인용 컴퓨터의 직렬포트(COM) 퇴조로 USB을 UART 방식으로 바꾸는 방식으로 사용하였고 개인용 컴퓨터나 노트북의 경우 직렬포트 자체가 없는 경우가 많아 이 방식을 사용하면 현실적인 어려움이 있었다. 이것을 고려하여 Arduino 보드에 USB와 UART을 변환하는 별도의 칩을 추가하여 프로그램 코드를 업로드 하였다. 목표 MCU 입장에서 보면 여전히 UART을 통해 업로드와 통신을 하는 방식이다. | ||
+ | Arduino 업로드와 시리얼 통신을 위해, UART의 입출력 신호 변환을 사용한 회로로 발전 하였다. | ||
+ | |||
+ | 2) Arduino 특징 | ||
+ | |||
+ | Arduino의 여러 가지 특징 중 본 연구에 필요한 특징은 다음과 같다. | ||
+ | 첫째, 소프트웨어 개발을 위한 통합 환경(IDE)이 간소화 되었다는 것이다. | ||
+ | 가장 큰 장점으로 기존의 AVR프로그래밍은 WinAVR로 컴파일 하여 별도의 ISP 장치를 통해 업로드 해야 하는 번거로운 과정을 거쳐야 하는데, Arduino는 컴파일된 펌웨어를 보드 내 USB포트에서 PC의 USB포트로 케이블을 연결하는 것만으로 쉽게 업로드가 가능하다는 것이다. | ||
+ | 둘째, Arduino는 오픈 소스라는 것이다. | ||
+ | Arduino는 보드의 회로도가 공개되어 있으며 개발환경 조차도 오픈 소스이고 이로 인해 각종 회로도나 펌웨어 소스가 웹상에서 다량 공유되어 있다는 것이다. 뿐만 아니라 여러 개발자들이 만들어 놓은 라이브러리 조차도 공유되어 개발 시간을 단축시키고 있다는 것이다. | ||
+ | 셋째, 다양한 S/W와 연동이 가능하다는 것이다. | ||
+ | 사용자들이 기존에 즐겨 사용 하여 익숙했었던 Flash나 Android, Object C, Lab view등과 같은 소프트웨어를 연동할 수 있다는 것이다. | ||
+ | |||
+ | 3) Arduino 종류 | ||
+ | |||
+ | 위 [그림 5]은 Arduino의 가장 기본 이라고 생각을 하면 된다. 특징으로는 기본인 만큼 지원하는 Shield가 많고 값이 매우 저렴한 편이다. 위 [그림 6]은 [그림 5]의 확장판이라고 생각을 하면 된다. MEGA라는 이름만큼 입출력 포트도 많고 기능들이 많다. 위 [그림 7]와 [그림 6]은 앞에서의 MEGA와 같이 이름의 의미가 적용 된다. 일반 Arduino에 비해 작은 Arduino로써 다른 Arduino에 비해서 몇몇 기능들이 빠진 것이 많고 지원하지 않는 것도 많다. 위 [그림 8]은 [그림 5]과 같이 거의 비슷한 모델로써 특징은 외부장치로 인식을 받아서 키보드나 마우스와 같은 장치처럼 인식을 받는다. 따라서 매크로 프로그램 같은 것을 만들 때 사용하면 좋다. 위 [그림 9]은 기존의 Arduino와 다르게 Linux가 설치되어 있다. WIFI도 사용이 가능하다. | ||
+ | |||
+ | 나. Arduino SoftWare | ||
+ | |||
+ | Arduino 의 통합개발환경(IDE)은 JAVA와 C를 기반으로 개발되는 크로스 플랫폼 응용 소프트웨어이며, 구문강조, 괄호찾기, 자동 들여쓰기 기능이 포함된 에디터와 한 번의 클릭으로 컴파일과 업로드가 가능한 컴파일러 기능을 포함하고 있다. Arduino 동작을 위해서 C++ 언어 기반을 사용한다. 컴파일러는 avr-gcc가 제공하는 많은 C언어의 표준 라이브러리를 함수를 사용할 수 있다. Arduino 개발 환경은 C++을 사용하여 원하는 동작을 하도록 코딩을 하고 이것을 보드에 업로드하면 Arduino가 동작한다. Arduino 업로드는 플래시 메모리에 써지므로 다음부터는 전원만 인가하면 동작한다. 만약 PC나 안드로이드에서 Arduino에 오는 데이터를 받아 처리하고 싶다면 해당 운영 체계에 맞는 개발 도구를 활용하여 프로그램을 작성해야 한다. PC의 비주얼 스튜디오나 안드로이드의 SDK 등이 대표적이다. 이러한 개발도구가 좀 어렵다고 느낀다면 프로세싱을 사용하여 쉽게 코딩 할 수 있다. 프로세싱은 Arduino 개발환경과 별개로 PC에서 동작하며 Arduino에서 COM포트로 통신을 하고 이 데이터를 화면 등에 처리하여 보여 줄수 있다. 그래픽 처리를 할 수 있는 함수도 제공한다. 프로세싱에서 안드로이드 모드로 변경하면 안드로이드에서 처리할 수도 있다. | ||
+ | SoftWare 개발에 생소한 사용자들도 쉽게 프로그래밍 할 수 있도록 설계되어 있다. 이러한 Arduino IDE를 통해 작성된 프로그램이나 코드를 “Sketch”라고 부른다. | ||
+ | |||
+ | |||
+ | 2. 제안 시스템 | ||
+ | |||
+ | 가. 시스템 구성 | ||
+ | |||
+ | 위의 [그림 35]는 본 논문에서 제안하는 시스템의 전체적인 구성도이다. Arduino Uno보드와 | ||
+ | Wifi Shield를 적층하여 센서들의 값을 서버에 데이터를 보낸뒤 Android에서 어플리케이션을 통해 데이터를 출력하여 모바일화면으로 쓰레기의 용량 및 위치정보를 확인할수 있다. | ||
+ | |||
+ | 나. 하드웨어 구성 | ||
+ | |||
+ | 본 논문에서 제안하는 시스템의 주요 하드웨어 품목이다. | ||
+ | [그림 36]은 Uno보드로 13개의 Digital Pin과 6개의 Analog Pin을 지원해준다. 여러 가지의 하드웨어를 동작시키기 위해 Uno보드를 사용했다. | ||
+ | [그림 37]의 Wifi Shield는 Uno보드에 적층하여 SPI통신을 하여 서버와 통신을 맡는다. | ||
+ | [그림 38]은 270˚까지 정확한 위치로 세밀한 제어를 할 수 있는 서보모터 이며 캔, 유리, 플라스틱의 위치로 판을 이동시킨다. | ||
+ | [그림 39]는 스테핑 모터는 서보모터가 목적위치로 판을 이동시킴에 따라 쓰레기를 낙하시켜주는 용도로 사용한다. | ||
+ | [그림 40]은 금속 센서로 금속(캔)인지 비금속인지 switch형식으로 판별을 할 수 있으며, 금속으로 판별이 된다면 서보모터의 목적위치는 캔으로 분류가 된다. | ||
+ | [그림 41]은 투입한 쓰레기의 무게를 감지한 뒤 플라스틱, 유리의 위치로 서보모터가 동작한다. (한 번에 잴 수 있는 무게는 5Kg까지이다.) | ||
+ | [그림 42]는 발광부와 수광부로 이루어져 빛의 투과를 함으로써 금속, 비금속의 판별을 돕고, 또 물체의 투입 유무를 정확히 확인할 수 있다. | ||
+ | |||
+ | [그림 43]은 포토센서와 마찬가지로 좀 더 정확한 물체의 투입 유무를 확인해 준다. | ||
+ | [그림 44]는 아두이노로 로드셀을 사용하기위한 모듈이다. HX711라이브러리를 통해 정확한 무게를 받아올 수 있다. | ||
+ | [그림 45]는 초음파를 발생하여 얻어낸 거리를 통해 쓰레기의 용량을 알아 낼 용도로 쓰인다. | ||
+ | [그림 46]은 하드웨어에 필요한 전기를 줄 배터리이다. 이로써 무선으로 전기공급이 가능하다. | ||
+ | |||
+ | 3. 시스템 구현 | ||
+ | 시스템 구현은 본 논문에서 제시한 시스템의 매뉴얼적인 내용을 다룬다. | ||
+ | |||
+ | Ⅲ. 결 론 | ||
+ | |||
+ | 3. 결론 및 향후 연구 방향 | ||
+ | 본 논문에서 제안한 시스템은 낭비되는 재활용 쓰레기 량을 줄이고 효율적으로 쓰레기 분리수거를 하자는 취지에서 만든 IoT 작품으로 첫째 금속감지센서로 금속인지 비금속인지 여부를 파악하고, 포토센서를 통한 물체 감지로 쓰레기 투입 여부 확인을 한다. 쓰레기통 안으로 들어온 쓰레기는 주파수 센서로 유리인지 플라스틱인지를 감별하고, 2차적으로 로드셀에 측정된 무게로 보다 더 정확한 물체감별이 이루어지게 된다. 최종적으로 감별을 마친 쓰레기는 서보모터와 스테핑모터로 정해진 위치로 각각 떨어지게 된다. 마지막으로 초음파 센서를 이용하여 각 분류된 쓰레기의 양을 측정하여 쓰레기 량을 안드로이드 어플리케이션으로 확인할 수 있는 작품이다. | ||
+ | |||
+ | 이러한 작품을 통해 분리수거를 보다 쉽게 하여 사용자가 한곳에 쓰레기를 버려도 자동으로 분리수거를 할 수 있으며 쓰레기 량을 스스로 자각 하게 만들어 주는 장점이 있다. | ||
+ | |||
+ | 또한 공익광고영상을 통해 쓰레기 분리수거에 대한 동기를 부여할 수 있다. 개인 및 가족 구성원, 행정구역, 그리고 국가 차원에서 쓰레기통을 실시간으로 감시 및 관리함으로써 쓰레기 자원에 대한 실질적인 결과를 파악할 수 있다. | ||
+ | |||
+ | 마지막 장점으로는 이 제품을 국가에서 사용한다면 길거리의 쓰레기통을 실시간으로 관리할 수 있다는 점이다. 쓰레기통이 설치 되 있는 장소라면 어디든 이 제품으로 교환하여 효율적인 쓰레기통 관리가 가능하다. | ||
+ | |||
+ | 향후 정부가 관리하는 쓰레기통에 이 제품이 사용된다면 불필요한 정부자원낭비 감소 및 환경오염을 감소시킬 수 있다. | ||
+ | |||
+ | |||
+ | Ⅳ. 참 고 문 헌 | ||
+ | |||
+ | 1. 참고 문헌 | ||
+ | |||
+ | 1)모두의 아두이노(누구나 쉽게 배우는 전자 회로 공작과 프로그래밍) / 다카모토 다카요리 저 | ||
+ | |||
+ | 2)초보자를 위한 PHP, MySQL, Apache / Julie C. Meloni 저 | ||
+ | |||
+ | 3)라즈베리파이 3을 이용한 사물인터넷 기초부터 실무까지 / 김경희, 김장욱 외 1명 저 | ||
+ | |||
+ | 4)안드로이드 프로그래밍(Android Studio를 활용한) / 우재남, 박길식 저 |
2018년 3월 29일 (목) 04:42 기준 최신판
목 차
Ⅰ. 서 론
1. 연구의 필요성 ...............................................................................................2
2. 연구의 목적 ..................................................................................................3
3. 연구의 범위 및 구성 ....................................................................................3
Ⅱ. 본 론
1. 관련 연구 ......................................................................................................5
가. Arduino ..................................................................................................5
1) Arduino 발전사 ...................................................................................5
2) Arduino 특징 .......................................................................................6
3) Arduino 종류 ......................................................................................6
나. Arduino Software .................................................................................9
1) Arduino 개발환경 ...............................................................................9
2) Arduino 라이브러리 ..........................................................................11
3) Arduino 사용방법 ..............................................................................11
4) ATmega 내부 모듈 ...........................................................................15
다. Android ......................................................................................................18
1) Android 특징............................................................................................18
2) Android 구조............................................................................................19
2. 제안 시스템 .................................................................................................21
가. 시스템 구성 ............................................................................................21
나. 하드웨어 구성 .........................................................................................21
3. 시스템 구현 ..................................................................................................23
가. 재활용쓰레기 자동분류기........................................................................23
Ⅲ. 결 론
1. 결론 및 향후 연구 방향 .............................................................................27
Ⅳ. 참 고 문 헌
1. 참고 문헌 ....................................................................................................29
Ⅴ. 부 록
1. 프로그램 소스코드 ......................................................................................31
Ⅰ. 서 론
1. 연구의 필요성
현재 우리나라에서 1년간 나오는 쓰레기의 양은 1500만 톤에 이른다. 그런데 이렇게 많은 양의 쓰레기들이 적절히 분리수거 되지 않고 버려지고 있다. 많은 양의 쓰레기들의 분리수거를 철저하게 할 수 있다면 우리사회에 큰 이익이 될 것이다. 그 이익으로는 첫 번째로 경제적인 이익으로 전국적으로 버려지는 분리수거 쓰레기를 경제적 가치 로 환산하면 연간 수조원이다. 그리고 처리하는 비용도 4천억 이상이다. 이러한 비용을 감소시킬 수 있다면 경제적으로 큰 이익을 얻는다.
두 번째로는 환경오염 예방이다. 쓰레기는 대부분 토양에 매립하거나 소각하는 방법으로 처리하며, 이러한 방법으로 처리하면 악취발생, 해충번식, 침출수 발생 등으로 환경오염이 심해진다. 이러한 쓰레기들을 분리수거가 잘 된 상태에서 한다면 공기오염도 줄어들 것이고, 자원의 재활용으로 인한 효율성이 좋아질 거라 생각한다.
[그림 1]과 같이 지금도 우리나라의 분리수거율이 60%가 넘어 OECD국가들 중 독일과 오스트리아에 이어 3위로 최상위에 속하지만 잘하고 있는 일을 더욱 더 발전시키는 것 또한 중요하다고 생각한다. 현재 분리수거장에서 사람들의 귀찮음과 정확하지 못한 분류로 인해 쓰레기를 재분류하는 비효율적인 활동이 이뤄진다. 이를 해소하기 위하여 자동으로 분리수거를 하는 시스템이 있다면 도움이 될 것이다.
위의 [그림 2]는 일반가정에서 여러 재활용품목의 분리수거 현황을 나타내며 높은 수치를 나타내고 있다는 것을 확인할 수 있다.
2. 연구의 목적
분리수거 문제로 인해 국가적으로 손실되는 비용이 해마다 늘어나고 있다. 이러한 문제점을 조금이라도 해소가 된다면 예산 절감 효과를 얻을 수 있으며 분리수거를 통해 환경오염 문제 또한 이바지할 수 있다. 본 논문에서 제시하는 작품은 직접적으로 재활용 쓰레기를 분류하는데 있어서 불편함을 해소하고 편리함을 얻기 위해서이다.
3. 연구의 범위 및 구성
- 금속센서를 활용하여 금속과 비금속을 분류하는 방법. - 포토센서, 주파수센서를 활용하여 유리, 플라스틱을 구분하는 방법. - 로드셀을 이용해서 무게를 측정하여 2차 분류 방법. - 서보모터, 스테핑모터를 활용하여 정해진 위치로 쓰레기를 분류하는 방법.
Ⅱ. 본 론
1. 관련 연구
가. Arduino
아래 [그림 3]은 오픈 소스(Open Source)를 기반으로 한 단일 보드(board) 마이크로 컨트롤러이다. 2005년 이탈리아 사람에 의해서 최초 만들어지기 시작 한 프로젝트로 현재에도 진행 중에 있으며 Arduino는 이탈리어로 영어의 `Best Friend`와 같은 의미를 가진다고 알려진다.
1)Arduino 발전사
위 [그림 4]은 Arduino의 발전사를 나타낸다. Arduino는 2005년 이탈리아 Ivrea에서 초기 프로젝트가 만들어졌다. 2008년 10월, Arduino Duemailanove가 출시되었으며 추가로 2009년 3월에는 Arduino Mega가 출시되었다. 2011년 3월, 전 세계적으로 30만개 이상의 Arduino 유닛을 사용할 수 있었으며 2015년 3월엔 Arduino가 10주년을 맞았다. 또한 초기의 Arduino 보드는 UART와 RS-232을 결합한 통신을 사용하였다. 그러나 개인용 컴퓨터의 직렬포트(COM) 퇴조로 USB을 UART 방식으로 바꾸는 방식으로 사용하였고 개인용 컴퓨터나 노트북의 경우 직렬포트 자체가 없는 경우가 많아 이 방식을 사용하면 현실적인 어려움이 있었다. 이것을 고려하여 Arduino 보드에 USB와 UART을 변환하는 별도의 칩을 추가하여 프로그램 코드를 업로드 하였다. 목표 MCU 입장에서 보면 여전히 UART을 통해 업로드와 통신을 하는 방식이다. Arduino 업로드와 시리얼 통신을 위해, UART의 입출력 신호 변환을 사용한 회로로 발전 하였다.
2) Arduino 특징
Arduino의 여러 가지 특징 중 본 연구에 필요한 특징은 다음과 같다. 첫째, 소프트웨어 개발을 위한 통합 환경(IDE)이 간소화 되었다는 것이다.
가장 큰 장점으로 기존의 AVR프로그래밍은 WinAVR로 컴파일 하여 별도의 ISP 장치를 통해 업로드 해야 하는 번거로운 과정을 거쳐야 하는데, Arduino는 컴파일된 펌웨어를 보드 내 USB포트에서 PC의 USB포트로 케이블을 연결하는 것만으로 쉽게 업로드가 가능하다는 것이다.
둘째, Arduino는 오픈 소스라는 것이다.
Arduino는 보드의 회로도가 공개되어 있으며 개발환경 조차도 오픈 소스이고 이로 인해 각종 회로도나 펌웨어 소스가 웹상에서 다량 공유되어 있다는 것이다. 뿐만 아니라 여러 개발자들이 만들어 놓은 라이브러리 조차도 공유되어 개발 시간을 단축시키고 있다는 것이다.
셋째, 다양한 S/W와 연동이 가능하다는 것이다.
사용자들이 기존에 즐겨 사용 하여 익숙했었던 Flash나 Android, Object C, Lab view등과 같은 소프트웨어를 연동할 수 있다는 것이다.
3) Arduino 종류
위 [그림 5]은 Arduino의 가장 기본 이라고 생각을 하면 된다. 특징으로는 기본인 만큼 지원하는 Shield가 많고 값이 매우 저렴한 편이다. 위 [그림 6]은 [그림 5]의 확장판이라고 생각을 하면 된다. MEGA라는 이름만큼 입출력 포트도 많고 기능들이 많다. 위 [그림 7]와 [그림 6]은 앞에서의 MEGA와 같이 이름의 의미가 적용 된다. 일반 Arduino에 비해 작은 Arduino로써 다른 Arduino에 비해서 몇몇 기능들이 빠진 것이 많고 지원하지 않는 것도 많다. 위 [그림 8]은 [그림 5]과 같이 거의 비슷한 모델로써 특징은 외부장치로 인식을 받아서 키보드나 마우스와 같은 장치처럼 인식을 받는다. 따라서 매크로 프로그램 같은 것을 만들 때 사용하면 좋다. 위 [그림 9]은 기존의 Arduino와 다르게 Linux가 설치되어 있다. WIFI도 사용이 가능하다.
나. Arduino SoftWare
Arduino 의 통합개발환경(IDE)은 JAVA와 C를 기반으로 개발되는 크로스 플랫폼 응용 소프트웨어이며, 구문강조, 괄호찾기, 자동 들여쓰기 기능이 포함된 에디터와 한 번의 클릭으로 컴파일과 업로드가 가능한 컴파일러 기능을 포함하고 있다. Arduino 동작을 위해서 C++ 언어 기반을 사용한다. 컴파일러는 avr-gcc가 제공하는 많은 C언어의 표준 라이브러리를 함수를 사용할 수 있다. Arduino 개발 환경은 C++을 사용하여 원하는 동작을 하도록 코딩을 하고 이것을 보드에 업로드하면 Arduino가 동작한다. Arduino 업로드는 플래시 메모리에 써지므로 다음부터는 전원만 인가하면 동작한다. 만약 PC나 안드로이드에서 Arduino에 오는 데이터를 받아 처리하고 싶다면 해당 운영 체계에 맞는 개발 도구를 활용하여 프로그램을 작성해야 한다. PC의 비주얼 스튜디오나 안드로이드의 SDK 등이 대표적이다. 이러한 개발도구가 좀 어렵다고 느낀다면 프로세싱을 사용하여 쉽게 코딩 할 수 있다. 프로세싱은 Arduino 개발환경과 별개로 PC에서 동작하며 Arduino에서 COM포트로 통신을 하고 이 데이터를 화면 등에 처리하여 보여 줄수 있다. 그래픽 처리를 할 수 있는 함수도 제공한다. 프로세싱에서 안드로이드 모드로 변경하면 안드로이드에서 처리할 수도 있다. SoftWare 개발에 생소한 사용자들도 쉽게 프로그래밍 할 수 있도록 설계되어 있다. 이러한 Arduino IDE를 통해 작성된 프로그램이나 코드를 “Sketch”라고 부른다.
2. 제안 시스템
가. 시스템 구성
위의 [그림 35]는 본 논문에서 제안하는 시스템의 전체적인 구성도이다. Arduino Uno보드와 Wifi Shield를 적층하여 센서들의 값을 서버에 데이터를 보낸뒤 Android에서 어플리케이션을 통해 데이터를 출력하여 모바일화면으로 쓰레기의 용량 및 위치정보를 확인할수 있다.
나. 하드웨어 구성
본 논문에서 제안하는 시스템의 주요 하드웨어 품목이다. [그림 36]은 Uno보드로 13개의 Digital Pin과 6개의 Analog Pin을 지원해준다. 여러 가지의 하드웨어를 동작시키기 위해 Uno보드를 사용했다. [그림 37]의 Wifi Shield는 Uno보드에 적층하여 SPI통신을 하여 서버와 통신을 맡는다. [그림 38]은 270˚까지 정확한 위치로 세밀한 제어를 할 수 있는 서보모터 이며 캔, 유리, 플라스틱의 위치로 판을 이동시킨다. [그림 39]는 스테핑 모터는 서보모터가 목적위치로 판을 이동시킴에 따라 쓰레기를 낙하시켜주는 용도로 사용한다. [그림 40]은 금속 센서로 금속(캔)인지 비금속인지 switch형식으로 판별을 할 수 있으며, 금속으로 판별이 된다면 서보모터의 목적위치는 캔으로 분류가 된다. [그림 41]은 투입한 쓰레기의 무게를 감지한 뒤 플라스틱, 유리의 위치로 서보모터가 동작한다. (한 번에 잴 수 있는 무게는 5Kg까지이다.) [그림 42]는 발광부와 수광부로 이루어져 빛의 투과를 함으로써 금속, 비금속의 판별을 돕고, 또 물체의 투입 유무를 정확히 확인할 수 있다.
[그림 43]은 포토센서와 마찬가지로 좀 더 정확한 물체의 투입 유무를 확인해 준다. [그림 44]는 아두이노로 로드셀을 사용하기위한 모듈이다. HX711라이브러리를 통해 정확한 무게를 받아올 수 있다. [그림 45]는 초음파를 발생하여 얻어낸 거리를 통해 쓰레기의 용량을 알아 낼 용도로 쓰인다. [그림 46]은 하드웨어에 필요한 전기를 줄 배터리이다. 이로써 무선으로 전기공급이 가능하다.
3. 시스템 구현
시스템 구현은 본 논문에서 제시한 시스템의 매뉴얼적인 내용을 다룬다.
Ⅲ. 결 론
3. 결론 및 향후 연구 방향 본 논문에서 제안한 시스템은 낭비되는 재활용 쓰레기 량을 줄이고 효율적으로 쓰레기 분리수거를 하자는 취지에서 만든 IoT 작품으로 첫째 금속감지센서로 금속인지 비금속인지 여부를 파악하고, 포토센서를 통한 물체 감지로 쓰레기 투입 여부 확인을 한다. 쓰레기통 안으로 들어온 쓰레기는 주파수 센서로 유리인지 플라스틱인지를 감별하고, 2차적으로 로드셀에 측정된 무게로 보다 더 정확한 물체감별이 이루어지게 된다. 최종적으로 감별을 마친 쓰레기는 서보모터와 스테핑모터로 정해진 위치로 각각 떨어지게 된다. 마지막으로 초음파 센서를 이용하여 각 분류된 쓰레기의 양을 측정하여 쓰레기 량을 안드로이드 어플리케이션으로 확인할 수 있는 작품이다.
이러한 작품을 통해 분리수거를 보다 쉽게 하여 사용자가 한곳에 쓰레기를 버려도 자동으로 분리수거를 할 수 있으며 쓰레기 량을 스스로 자각 하게 만들어 주는 장점이 있다.
또한 공익광고영상을 통해 쓰레기 분리수거에 대한 동기를 부여할 수 있다. 개인 및 가족 구성원, 행정구역, 그리고 국가 차원에서 쓰레기통을 실시간으로 감시 및 관리함으로써 쓰레기 자원에 대한 실질적인 결과를 파악할 수 있다.
마지막 장점으로는 이 제품을 국가에서 사용한다면 길거리의 쓰레기통을 실시간으로 관리할 수 있다는 점이다. 쓰레기통이 설치 되 있는 장소라면 어디든 이 제품으로 교환하여 효율적인 쓰레기통 관리가 가능하다.
향후 정부가 관리하는 쓰레기통에 이 제품이 사용된다면 불필요한 정부자원낭비 감소 및 환경오염을 감소시킬 수 있다.
Ⅳ. 참 고 문 헌
1. 참고 문헌
1)모두의 아두이노(누구나 쉽게 배우는 전자 회로 공작과 프로그래밍) / 다카모토 다카요리 저
2)초보자를 위한 PHP, MySQL, Apache / Julie C. Meloni 저
3)라즈베리파이 3을 이용한 사물인터넷 기초부터 실무까지 / 김경희, 김장욱 외 1명 저
4)안드로이드 프로그래밍(Android Studio를 활용한) / 우재남, 박길식 저