?>

Hard Copy World

HCW

IoT technical info

Home > Learning >

IoT technical info

오픈소스를 이용한 사물인터넷 구현 - 2. 오픈소스와 사물 인터넷

페이지 정보

작성자 최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일16-02-15 14:08 조회3,146회 댓글0건

본문

 

오픈소스를 이용한 사물인터넷 구현 목차

  • 1. 사물 인터넷
  • 2. 오픈소스와 사물 인터넷
  • 3. 마이크로 컨트롤러 - 아두이노
  • 4. 단일 보드 컴퓨터(SBC) - 라즈베리 파이
  • 5. USB, 이더넷 통신
  • 6. 블루투스
  • 7. RF 통신
  • 8. WiFi
  • 9. MQTT 메시징 프로토콜과 HA(Home Automation)
  • 10. 사물 인터넷 솔루션 제작

 

 

2. 오픈소스와 사물 인터넷

 

오픈소스의 위력을 유감없이 보여준 사례가 리눅스이지 싶습니다. 전 세계적으로 보급된 안드로이드 단말기의 기반에는 리눅스 커널이 자리잡고 있으며 서버 등의 영역에서 빠질 수 없는 존재입니다. 특히 임베디드(Embedded)/모바일(Mobile) 장치들이 확산되면서 리눅스 뿐 아니라 오픈소스의 역할 자체가 주목을 받고 있습니다.

실제 사물 인터넷 관련된 장치와 솔루션에 대해 공부하다보면 관련된 오픈소스들이 굉장히 많음을 알 수 잇습니다. 각종 라이브러리, 개발 툴들이 오픈소스로 개발되어 공유되고 있으며 PC나 서버 환경에서 사용되던 프로그래밍 언어들이 임베디드 용으로도 포팅되어 사용자/개발자에게 편의를 제공합니다. 특정 서비스, 프레임워크, 솔루션들도 오픈소스로 공개되어 사용자층을 넓히려하고 있습니다. 아직 국내에서는 관련 활동이 부족한 편이라 대개의 경우 해외 자료를 뒤져야 하는 불편함이 있지만, 이런 오픈소스 결과물들이 사물 인터넷 구현을 위해 필요한 많은 문제들을 해결해주고 있으므로 적극 활용할 필요가 있습니다.

이 문서에서 다루게 될 내용들도 대부분 오픈소스로 공개된 기술을 이용합니다. 따라서 물리적인 장치들을 구입하는 비용을 제외하면 별도로 비용이 나가진 않을 것입니다. 하지만 이 문서에서 다루는 예제들은 사물 인터넷 장치들의 프로토타입을 구현하고 동작 컨셉을 확인하는 용도, 개인적인 연구 목적에 적합한 수준입니다. 상업적인 장치를 구현하는데는 오픈소스의 라이센스나 구현 품질, 사후 지원의 문제가 있을 수 있으니 감안하셔야 합니다.

 

앞으로 다루게 될 주요 오픈소스, 오픈 하드웨어 기술들은 아래와 같습니다. 여기에 언급된 기술들만 살펴봐도 앞으로 어떤 내용을 다루게 될 것인지 감을 잡으실 수 있을겁니다.

  • 아두이노 및 관련 라이브러리 :
    피지컬 컴퓨팅 개발환경 중 가장 보편화 된 것이 아두이노입니다. 아두이노를 다루기 위해 필요한 기본 프로그래밍 지식과 아두이노 초급, 중급 강좌에 해당하는 내용을 제공할 것입니다.
  • ESP8266 모듈 및 개발환경 (Espressif SDK, Eclipse 등) :
    저렴하게 사용할만한 WiFi 모듈 솔루션이 없는 와중에 3$가 채 안되는 가격으로 나온 ESP8266 모듈은 충격이었습니다. 전 세계의 개발자가 마법같은 가격에 매료되어 재능 기부를 한 결과, 현재는 실로 다양한 활용 방법이 개발되어 공유되고 있습니다. 아두이노에 비해 다루기 어렵긴 하지만 그럼에도 배워볼 가치가 충분합니다. ESP8266 개발 입문을 위한 내용들을 다루며 추후 출시될 ESP32 모듈에 대한 내용도 추가될 것입니다.
  • 라즈베리 파이 :
    손바닥 PC 또는 SBC(Single Board Computer)라 불리우는 카테고리를 만든 장본인입니다. 저렴한 가격으로 리눅스 서버로 돌릴 수 있기 때문에 홈 서버로 만들어서 사용할 것입니다. 라즈베리 파이 3 까지 나오면서 성능이 한층 업그레이드 되었기 때문에 멀티미디어, 프로세싱 파워가 필요한 작업들을 무리 없이 처리해 줄 것입니다.
  • 리눅스 OS (Rasbian/Ubuntu) :
    Windows 10 이 출시되면서 라즈베리 파이를 지원하긴 하지만 라즈베리 파이는 리눅스 OS - 라즈비안을 올리는 것이 가장 적절해 보입니다. 이미 라즈비안 위에서 다양한 프로젝트들이 진행되어 있기 때문에 그만큼 참고할 내용을 찾기 쉬워서 입니다. 단, console을 이용한 shell 환경에서 리눅스를 다루기 위해서는 꽤 공부가 필요합니다.
  • 파이썬 및 라이브러리 :
    사용자를 충분히 확보하고 있으며 라이브러리가 풍부한 (라즈베리 파이 서버에서 돌릴) 프로그래밍 언어 하나쯤은 익혀둬야 합니다. 여러가지 아이디어들을 구현하기 위해서는 서버에서 입맛대로 동작한 어플리케이션을 작성해야 하기 때문입니다. 개인적으로 파이썬이 여기에 가장 부합하는 스크립트 언어라 생각합니다. 본 문서 시리즈에서는 파이썬 문법에 대해 다루지는 않습니다. 하지만 구글링을 조금만 해도 참고할만한 사이트를 쉽게 찾으실 수 있습니다.
  • 안드로이드 :
    이제 사람들마다 스마트폰 1대 이상은 가지고 있기 때문에 모바일 용 앱도 만들어야 하는 경우가 많습니다. 특히 항상 사용자와 함께 이동하는 소형의 IoT 장치를 만들는 경우 외부 네트워크와 연결될 수 있는 최상의 선택은 블루투스이기 때문에 블루투스 통신용 모바일 앱이 꼭 필요합니다. 비록 여기서 안드로이드 앱 제작에 대한 강좌를 제공하진 않지만 다양한 모바일 앱 (특히 안드로이드) 예제를 제공합니다.
  • MQTT 브로커, 클라이언트 및 Paho 라이브러리 :
    다양한 장치들이 서로 메시지를 주고 받으면서 동작하기 위해서는 물리적인 통신 방법, 통신 프로토콜이 꼭 필요합니다. MQTT 프로토콜은 IoT 장치들이 인터넷 혹은 로컬 네트워크 상에서 TCP/IP 통신이 가능한 경우라면 가장 먼저 떠오르는 통신 프로토콜 중 하나입니다. 라즈베리 파이에 MQTT 서버(broker)를 설치해서 사용할 것입니다.
  • openHAB, Home-Assistant : 
    홈 오토메이션 솔루션 중 대표적인 것 두 가지를 소개할 것입니다. 직접 IoT 장치를 만들어 연동을 해보기도 할 것이지만 사용방법이 복잡하고 설정이 까다롭기 때문에 깊이있게 다루지는 않습니다.
  • 구글 클라우드 비전 API :
    이미지, 영상 처리하면 OpenCV가 가장 먼저 떠오르지만 사용하는데는 많은 지식이 필요하므로 그보다 훨씬 간단하게 사용할 수 있는 구글 클라우드 비전 API를 사용할 것입니다. 실시간 영상처리 같은 작업은 할 수 없지만 이미지 파일과 라이브러리 그리고 인터넷만 준비되면 간단한 코드만으로 얼굴 인식, 사물 인식, 텍스트 인식 구현이 가능합니다.
  • 텔레그램 CLI :
    텔레그램은 모바일, PC, 브라우저 등 다양한 플랫폼에서 사용가능한 채팅 솔루션입니다. 특히 텔레그램은 TelegramCLI 라 불리는, 프로그래밍 가능한 리눅스용 어플리케이션을 제공하기 때문에 익혀두면 많은 도움이 됩니다. 다양한 IoT 장치에서 수집된 데이터를 여러 플랫폼을 통해 사용자에게 전달해주기 때문입니다.
  • Django, Node.js :
    웹 프레임워크는 웹 서버를 쉽게 만들어주는 도구입니다. 그 중 Node.js, Django(장고) 정도가 가장 다루기 편하지 않을까 생각됩니다. Node.js 는 사용자 층이 넓어 자료 구하기가 쉽고 Django 는 파이썬 언어를 사용하기 때문입니다. 
  • 기타 :
    여러 예제들을 실행하기 위해 필요한 MySQL DB (데이터베이스), MDP (뮤직 플레이어, 스트리머), MJPG streamer (영상 스트리밍) 등의 사용방법도 간단히 다룰 것입니다.

이 솔루션들을 모두 이해해야 하는건 아닙니다. 단지 설치 후 설정만 해둬도 충분한 경우도 있고, 꽤 상세하게 사용법을 익혀야 하는 경우도 있습니다. 자신의 프로젝트에 따라 필요한 기술들을 선택적으로 보셔도 좋습니다.

 

 

공유

 

앞으로 소개할 예제에 사용되는 코드, 파일들은 대부분 GitHub를 통해 공유될 것입니다. 아래 GitHub 링크를 사용하시면 됩니다.

  • https://github.com/godstale?tab=repositories

대부분 GPL, Apache 라이센스를 따르고 있으며 참고한 라이브러리 또는 기본 소스의 라이센스 정책을 상속 받습니다.

 

 

주의!!! 사물인터넷 시리즈 관련 문서들은 무단으로 내용의 일부 또는 전체를 게시하여서는 안됩니다. 계속 내용이 업데이트 되는 문서이며, 문서에 인용된 일부 자료의 경우 원작자의 라이센스 문제가 있을 수 있습니다.

 

추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.