?>

Hard Copy World

HCW

Communication module

Home > Info >

Communication module

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

페이지 정보

작성자 하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-01-20 15:29 조회19,135회 댓글7건

본문

 

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

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

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

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

title_image

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

 

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3); //Connect HC-06. Use your (TX, RX) settings

void setup()  
{
  Serial.begin(9600);
  Serial.println("Hello!");

  BTSerial.begin(9600);  // set the data rate for the BT port
}

void loop()
{
  // BT –> Data –> Serial
  if (BTSerial.available()) {
    Serial.write(BTSerial.read());
  }
  // Serial –> Data –> BT
  if (Serial.available()) {
    BTSerial.write(Serial.read());
  }
}

 채팅 입력 및 확인은 아두이노 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)

 


하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물

모든 전통이 한 때는 오해를 면치 못했다. 마찬가지로 모든 아이디어는 한 때는 비웃음을 면치 못했다. -홀브룩 잭슨 ::::: 느닷없이 떠오르는 생각이 가장 귀중한 것이며, 보관해야할 가치가 있는 것이다. -베이컨 ::::: 미리 숙고하면 힘든 일도 그저 실행에 옮기는 순간 쉬워진다. - 로버트 M. 피어식

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

댓글목록

rodion님의 댓글

rodion 이름으로 검색 작성일

안녕하세요 BTchat 오픈소스를 다운받아서 살펴보고 있습니다. 제가 지금 안드로이드 스튜디오를 사용하고 있는데 이 프로그램으로는 app을 빌드할 수 없는지 궁금합니다. 그대로 압축을 풀어서 사용하려고 하니까 빌드가 아얘 안되서요.. 무조건 이클립스로만 열어야 하는건가요?

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

제가 올린건 이클립스에서 만든거라서요. 사용할 수 없는건 아니고 인터넷 검색해보시면 이클립스 프로젝트로 안드로이드 스튜디오 용으로 변환하는 방법을 찾으실 수 있을겁니다. 변환해서 사용하세요.

rodion님의 댓글

rodion 이름으로 검색 작성일

아... import기능을 몰라서 계속 해맸네요.. 문제 해결했습니다 ^^

정원우님의 댓글

정원우 이름으로 검색 작성일

사진에 나와있는 화면 같은 부품은 어디서 구매할수 있죠?
이름이라도 알려주세요

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

I2C OLED 로 포털 검색해보시면 쉽게 찾으실 수 있습니다. 0.96'' I2C OLED 입니다.
http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=tech_etc&wr_id=3&page=2