아두이노-안드로이드 BT Chat 앱 (IoT 기능 추가)

 

아두이노와 안드로이드를 블루투스로 연결해서 채팅을 할 수 있도록 지원하는 앱입니다.

기존에 Bluetooth chat 이라는 해외에서 제작한 소스코드가 이미 있어서 블루투스 관련 부분은 이 코드를 기반으로 합니다. 다만 사용상에 불편한 점들이 있어서 앱의 구조를 대거 수정하고 간단한 IoT 기능을 추가하였습니다.

  • 메시지가 짧게 끊어지는 문제 수정 : 1초 이내에 수신된 메시지들은 하나로 이어서 보여줍니다
  • 백그라운드 서비스 지원 : 백그라운드로 서비스가 돌아가도록 수정해서(setting 탭에서 선택가능) 앱 종료 후에도 블루투스 연결이 끊어지지 않습니다. 다만 앱을 재시작하면 채팅창은 초기화 됩니다.
  • 블루투스 장치 기억 및 재연결 시도 : 연결이 끊어지면 자동으로 재연결을 시도합니다.
  • IoT 기능 추가 : 아두이노에서 특정 메시지를 보내면 HTTP request를 자동으로 보내줍니다. 현재는 thingspeak 서버만 지원. 백그라운드로 돌아가도록 설정해두면 IoT를 위한 wifi 모듈처럼 쓰실 수 있습니다.

 

연결은 간단합니다. 아두이노에 블루투스 모듈만 연결하면 됩니다. 보통 SoftwareSerial로 연결하시겠지요.

title_image

아두이노에는 아래 코드만 올려주면 됩니다.

채팅 입력 및 확인은 아두이노 IDE 에서 Serial Monitor를 이용하면 됩니다.

 

 

IoT 기능 사용법

 

WiFi 모듈을 몇 가지 테스트 해봤는데 연결이 불안정하거나 기능이 미약하고, 아니면 비싼 단점이 있어서 골치가 아팠습니다. 그래서 아예 IoT 기능을 지원할 수 있도록 앱에 기능을 추가했습니다. 아두이노에서 아래와 같은 형식의 메시지를 앱으로 보내면 앱에서 메시지를 인식하고 자동으로 외부 서버로 HTTP Request를 보내줍니다.

인식하는 문자열 형식 : thingspeak:key=xxx&field1=xxx[*]

HTTP Request 변환 : http://184.106.153.149/update?key=xxx&field1=xxx

(thingspeak: ~ [*] 사이에 있는 문자열을 그대로 request parameter 로 이용합니다.)

 

집에 안쓰시는 폰 하나쯤 있으실겁니다. 이 기능을 이용하시면 별도의 WiFi 모듈없이 휴대폰을 WiFi 모듈처럼 사용하실 수 있습니다. 싸고 다루기 쉬운 블루투스 모듈만 갖추시면 됩니다.

현재는 ThingSpeak 서버만 지원합니다. http://www.thingspeak.com 에서 회원 가입 후 채널을 하나 생성하세요. 채널마다 할당되는 key 를 이용해서 주기적으로 request를 보내주면, 서버상에 시간대별 로그를 남길 수 있습니다.

 

btchat_logo_96

# 앱 다운로드(Google Play) : https://play.google.com/store/apps/details?id=com.hardcopy.btchat

# 앱 소스 다운로드 : https://github.com/godstale/BTChat

소스를 개선하신 분은 제게도 알려주세요. 업데이트 해서 공유될 수 있도록 하겠습니다. (godstale@hotmail.com)

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

댓글 남기기

이메일은 공개되지 않습니다.