2017. 10. 15. 17:02ㆍArduino
여기 강좌에서 너무 잘 설명해준다 블루투스 통신에 관련해서
https://play.google.com/store/apps/details?id=nextprototypes.BTSerialController
위 동영상을 요약하면,
여기서 블루투스 시리얼 컨트롤러 앱을 설치해서 아두이노에게 보내주는 신호를 보내주면 된다.
아두이노에서는 character 형태로 한 글자씩 받기 때문에 string을 처리하기에 좋은 환경이 아니다.
delay(5)를 주는 이유도 너무 빨리 읽어 들이면 문자열이 깨져서 부분부분 들어오기 때문에 주는 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<SoftwareSerial.h> int blueTx = 2; int blueRx = 3; SoftwareSerial mySerial(blueTx, blueRx); String myString = ""; void setup(){ Serial.begin(9600); mySerial.begin(9600); } void loop(){ while(mySerial.available()){ byte myChar = (byte)mySerial.read(); myString += myChar; delay(5); } if(!myString.equals("")){ Serial.println("input value : " + myString); myString = ""; } } | cs |
https://github.com/googlesamples/android-BluetoothChat/
위에서 사용한 블루투스 시리얼 컨트롤러 앱말고, 직접 안드로이드 코드에서 어떻게 이뤄지는지 알고 싶으면 안드로이드 예제 코드를 불러오면 된다.
여기 Github url에서 받을 수도 있고, 밑에 사진처럼 직접 import해서 사용할 수 있다
채팅 애플리케이션인데 아두이노 블루투스 모듈과 연결해서 신호를 보내줄 수 있다.
블루투스를 이렇게 통신을 하다보면 중간에 끊기는 일이 많은데, 아마도 모듈을 HC-06을 사용하면 그렇게 된다고 어디선가 들었다.
HM01을 사용하면 잘 안 끊기고 아이폰도 연결이 가능해서 괜찮다는 말을 들었는데 더 알아봐야겠다.
또 중간 중간 쓰레기 값이 넘어오는 것들이 있을 수 있는데, 코드를 구현하는 방법적인 면에서 해결을 할 수 있으니 만약에 원하지 않은 값들이 넘어오는 경우, 문자 하나씩 받아들이는 방법을 다르게 해주면 될 듯하다.
'Arduino' 카테고리의 다른 글
[아두이노 커버 제작] 3D 프린팅, 3D printing (1) | 2017.10.15 |
---|---|
[아두이노 제작] 핸들커버를 이용한 청각장애인 내비게이션 시스템 (5) | 2017.10.15 |
[아두이노 부품] Arduino Adafruit NeoPixel control with Softpot 소프트팟으로 네오픽셀 조작 (0) | 2017.08.07 |
[아두이노 부품] Arduino Adafruit NeoPixel (0) | 2017.08.04 |
[아두이노 부품] Arduino vibration module 아두이노 진동 모듈 (0) | 2017.08.02 |