2016년 9월 18일 일요일

블루투스와 아두이노

블루투스는 대표적인 근거리 무선 통신 방식입니다. 근거리 무선 통신을 전문적인 용어로 PAN(Personal Area Network)이라 부릅니다.

스마트 폰과 같은 개인용 무선 기기들이 블루투스를 채택하면서 블루투스는 자연스럽게 근거리 무선 통신 표준으로 자리 잡았습니다.
많은 기기들이 블루투스를 무선 통신 규격으로 사용한다.

이 포스트에서는 블루투스를 개발에 활용하기 위해 필요한 상식을 소개하겠습니다.
블루투스에는 프로파일(Profile)이라 부르는 통신 프로토콜 규격이 있습니다. 프로파일의 역할은 하드웨어 제조사들이 통신 소프트웨어 개발 없이 규격에 맞추기만 하면 바로 사용할 수 있도록 만들어줍니다. 예를 들어 블루투스 이어폰 제품이 많이 나온 것은 블루투스에 핸즈 프리와 통화 및 오디오 전송과 관련된 프로파일이 있기 때문입니다.

블루투스에 포함된 프로파일 중 SPP(Serial Port Profile)은 새로운 장치를 개발하는 사람들이 많이 사용하는 프로파일 입니다. SPP는 시리얼 포트 프로파일로써 시리얼 통신과 비슷한 방식으로 블루투스를 무선 통신으로 사용할 수 있습니다.
아두이노 무선 통신은 대부분 블루투스 SPP를 이용한 것이다.

블루투스 SPP를 지원하면서 아두이노에서 널리 쓰이는 모듈은 HC-06입니다.
HC-06

아두이노에서 블루투스 SPP를 사용하다면 관련된 많은 자료와 필요한 부품을 쉽게 구할 수 있습니다.
하지만, 블루투스 SPP는 다음과 같은 어려움을 갖고 있습니다.
  • 블루투스 4.0부터는 SPP를 더이상 지원하지 않습니다.
  • iOS에서는 SPP를 사용할 수 없습니다.

블루투스는 규격을 점차적으로 발전시켜왔는데, 4.0부터 IoT의 대표적 통신 솔루션이 된다는 목표를 두고 큰 변화를 취했습니다.
  • 기존의 1:1 연결 방식에서 1:N 연결을 지원한다.
  • 연결의 절차를 간소화하고 빠르게 만들었다. (패어링 개념을 없앴다.)
  • 전력 소모를 줄였다. (Low Energy 실현)
  • 프로파일의 자유도를 높였다.
이런 변화로 인해서 블루투스 4.0은 이전까지의 블루투스와 다르다는 점을 강조하기 위해 조금 다른 명칭을 사용했는데, BLE(Bluetooth Low Energy) 혹은 블루투스 스마트라는 이름으로 알려지기 시작했습니다.

더군다나 iOS의 경우 기존 블루투스의 경우 자체 규격을 받지 않으면 지원하지 않는 등의 폐쇄적인 정책을 취했는데, 블루투스 4.0은 자체 규격없이 그대로 받아들이기 시작했다는 것입니다.

겉으로 볼 때는 블루투스 4.0이 되면서 아두이노와 같은 사용자 장치 개발에 아주 좋아졌다고 보입니다.
  • 이제 iOS 장치와 무선 통신을 할 수 있게 되었다.
  • 기존에 아두이노 보드 1대만 연결했는데, 여러 대를 연결할 수 있게 되었다.
  • 저 전력으로 인해 전원 공급이 수월해졌다.
위와 같은 장점이 있는 반면에 생각치도 못한 다른 문제가 발생했습니다. 그것은 바로 블루투스 SPP를 더 이상 지원하지 않는다는 것입니다.
블루투스 4.0은 다양한 장치를 위해 프로파일의 자유도를 높이면서 SPP의 필요성을 느끼지 못하고 제거했습니다. 프로파일의 장점은 소프트웨어 개발 없이 하드웨어를 만들 수 있는 것인데, SPP가 사라지면서 아두이노를 이용해서 블루투스 무선 통신을 하려는 경우 직접 블루투스 프로파일을 개발해야 합니다.
물론, 블루투스 4.0에서 IoT 장치를 위한 새로운 프로파일들이 등장했습니다.
하지만, 기존 SPP와 같이 사용하기에는 어려운 점이 많습니다.
이런 문제로 블루투스 4.0이 나왔지만, 아두이노에서는 여전히 블루투스 SPP가 활용되고 있습니다.
블루투스 4.0 통신을 할 수 있는 아두이노용 부품들이 개발되어 판매되고 있지만, 그에 상대되는 앱(App)을 만들기 어려워서 테스트용으로 배포된 앱으로 실험하는 정도에 그치고 있습니다.
아두이노용으로 많이 사용되는 블루투스 4.0 모듈인 HM-10의 경우 SPP와 비슷한 프로파일을 제공하고 있습니다.
아두이노용 블루투스 4.0 모듈인 HM-10

블루투스 4.0을 테스트할 수 있는 앱이 많이 있다.

아두이노에서 무선 통신에 대한 관심이 높아지면서 블루투스 활용에 대해서 많은 연구가 이루어졌습니다. 블루투스를 활용하려면 반드시 앱을 제작해야 하는데, 아두이노에 비해서 앱 개발 환경은 아직 초보자들에게 쉽지 않습니다.
Android Studio 모습

안드로이드 앱 개발에 많이 사용되는 Android Studio의 경우 초보자들이 다루기에 매우 어렵습니다. 임베디드 개발 환경이 아두이노가 나오면서 대중화되었듯이 앱 개발 환경도 대중화되기 위해서는 뭔가 혁신이 필요해 보입니다.


댓글 없음:

댓글 쓰기