[아두이노] [강좌] 43. 블루투스 통신 (2) - 스마트폰과 통신하기
지난 시간에 RN-42 모듈의 설정을 확인하고 변경하는 방법에 대해서 알아봤었다. MultiSerialMega 예제를 이용했고.
이번 시간에는 실제로 다른 디바이스와 통신하는 실습을 진행할 예정. 아두이노의 소스는 MultiSerialMega 예제(또는 SoftwareSerialExample 예제)를 그대로 사용하면 된다.
참고로 아이폰과는 통신할 수 없다. 나쁜 아이폰. (나 아이폰임 ㅜㅜ) 그 외에 블랙베리나 윈도우 폰 등에서는 안해봐서 모르게써요. 안드로이드 폰이랑만 해봤..
(그나마 안드로이드 폰도 예전 버전(진저브레드 이전)에서는 안된다는 소문이;;;;)
그러타. 이번 시간에는 "안드로이드 폰"을 이용해서 아두이노와 안드로이드 폰 간에 데이터를 주고 받는 실습을 해볼 것이다.
우선 블루투스 통신을 위한 어플리케이션이 필요하다. 'Play 스토어'에서 "Bluetooth"라고 검색하면 수많은 앱이 나오는데, 종류가 너무 많아. "Bluetooth Chat"이라고 검색해보자. 블루투스 통신을 이용해서 채팅할 수 있는 어플들이 검색된다. 꽤 많다.
이 어플들 중 어느 어플을 사용해도 될 것 같지만, 의외로 안되는 애들이 몇 있음. 왜인지는 아직 잘 모르겠다. UUID 설정 때문인 것 같기도 하고.
그 중에서 사용할 어플은, RN-42 모듈의 제조사에서 제공하는 "RN Bluetooth Chat" 어플이다.
제조사에서 제공하는 어플이니 안될리는 없겠지.
실행해보자. 상단에 "not connected"라는 문구가 보일 것이다. 아직 연결이 안됐으니까. 메뉴 버튼을 눌러보자. 화면 하단에 아래와 같은 메뉴가 나타난다.
"Connect a device"를 선택한다. 그러면 현재 등록된 블루투스 기기의 목록이 나온다. 그 중에 RN-42 모듈이 있을 경우 바로 선택하면 되고, 만일 없을 경우 창 아래의 "Scan for devices" 버튼을 누른다. 그럼 현재 내 주변의 블루투스 기기들이 검색된다.
검색된 기기들 중 내 기기(MAC 주소 또는 기기 이름으로 확인)를 찾아 선택하자. 내 모듈의 MAC 주소와 기기 이름은 커맨드 모드에서 "D" 명령어로 확인할 수 있다. MAC 주소는 모듈의 라벨에 표시되어 있기도 하다.
선택하면 연결이 되는데, 만일 스마트 폰과 RN-42 모듈의 연결이 처음이라면 아래와 같이 핀 코드를 입력하라는 창이 나타날 것이다. RN-42 모듈의 기본 핀 코드는 "1234"이며, 핀 코드는 커맨드 모드에서 "D" 명령으로 확인할 수 있다.
핀 코드를 입력하면 아래와 같이 상단의 "Not Connected" 표시가 "connected" 표시로 바뀐다.
여기까지 완료되면 스마트 폰과 아두이노가 통신할 수 있는 환경 설정이 끝난 것이다. 이제 데이터만 보내면 됨. 두근두근.
보내보자. 난 유치하지만 "Hello"라는 문장을 보낼꺼임. 데이터를 보내기 전, 아두이노 스케치의 시리얼 모니터가 실행되고 있어야 수신된 문자를 확인할 수 있다. (아두이노에는 MultiSerialMega 예제 또는 SoftwareSerialExample 예제가 업로드 되어 있어야 함)
시리얼 모니터 창에 "hello"라는 문장이 출력되는 것이 보이는가? 스마트 폰에서 전송한 데이터를 RN-42 모듈이 수신한 후 시리얼 통신을 이용해 아두이노로 전송한 것. MultiSerialMega 예제는 RN-42 모듈로부터 수신된 데이터를 PC와 연결된 시리얼로 다시 전송하는 예제였으니까 시리얼 모니터로 확인할 수 있는 것이다.
그럼 이번엔 아두이노에서 스마트 폰으로 데이터를 전송해보자. "hello"라는 인사를 받았으니, 답을 해야지. "hi~"
전송하면 "RN Bluetooth Chat" 어플의 화면에 아래와 같이 수신된 문자가 표시된다.