개발자인가,디자이너인가,다능인인가

FLORA Bluefruit LE (Bluetooth LE) 로 안드로이드와 데이터 통신하기 본문

- 프로그래밍/Arduino

FLORA Bluefruit LE (Bluetooth LE) 로 안드로이드와 데이터 통신하기

PRO HYEON 2016. 9. 14. 03:29

안녕하세요


이번에는 FLORA 의 Bluetooth 센서


'Bluefruit LE' 의 작동법에 대해서 알아보고


안드로이드의 앱 부분에 대해서 잠깐 언급을 드리겠습니다.


일단 제가 가지고 있는 FLORA(플로라) Sensor V3 기준으로 설명드리겠습니다.



일단 FLORA(플로라)를 준비해줍시다.



BlueFruit LE 제품입니다.


제품의 특성은 BLE (4.0) 입니다.


현재 연결되어 있는것은 '악어클립' 입니다.


FLORA(플로라) 제품을 연결할 때 굉장히 유용하니 구비해놓으시면 편리하실 겁니다 :)



악어클립 색 순서와 맞게 연결해주시면 됩니다.


FLORA(플로라) - Bluefruit LE(블루투스 센서)


3.3V - 3.3V

RX #0 - TX

TX #1 - RX

GND - GND


이런식으로 연결해주시면 됩니다.


RX 와 TX를 꼭 반대로 연결해주셔야 합니다.


그런다음에 전원을 인가해주시면 블루투스 센서에서는 빨간색으로 깜빡깜빡 점등될 것이고


플로라 센서에서는 초록색으로 계속 점등되어있을 겁니다.


그럼 일단 제품연결까지는 끝났습니다.




저희는 UART 방식을 사용할 겁니다.


UART 말고도 SPI 방식도 있는데, 이 부분의 내용을 여기 담기에는 너무 길어질 것 같아


각자의 검색에 맡기도록 하겠습니다.




위 코드를 아두이노 프로그램에 붙여넣고 업로드 해주시면 되는데


업로드 하실 때 바탕화면에 저장하시면 해당 프로젝트 이름으로 폴더가 생기고, 업로드는 실패할 겁니다.


BluefruitConfig.h

그때 위 파일을 다운로드 해서 같은 폴더안에 넣으시고,


다시 열어주시면



이런식으로 파일이 2개 열리면 성공입니다.


이때 다시 업로드를 해주시면 아마 정상적으로 진행될 겁니다!


아니면, 


https://learn.adafruit.com/adafruit-flora-bluefruit-le/installing-software


이쪽으로 가셔서, 예제코드를 전부 다운로드 받으신 다음 압축을 풀어 폴더 자체를


내문서-Arduino-libraries 폴더에 넣어주시고


아두이노 프로그램을 전부 종료후에 다시 켜주시면


파일-예제-Adafruit BluefruitLE nRF51 에서 bleuart_cmdmode 를 여시고



해당 부분으로 변경해주시면 됩니다.



그다음에 업로드가 성공하셨으면, 아두이노 프로그램에서 시리얼 모니터를 클릭합니다.





 정상적으로 업로드 했는데, 맨 처음에 Couldn't factory reset 이라는 문구가 뜨시는 분들이 있으실겁니다.


그러면 그 상태에서 바로 다시 아두이노 창으로 와서 업로드를 한번 더 눌러주시면





다시 정상적으로 연결이 될겁니다.


Please use Adafruit Bluefruit LE app to connect in UART mode

Then Enter characters to send to Bluefruit


라는 문구가 뜨면 성공입니다.




이제 안드로이드 Play 마켓에 접속합니다.





마켓에 접속하셔서 Adafruit Bluefruit LE Connect 라는 앱을 설치해줍니다.




  

 바로 앱을 실행시키면, Adafruit Bluefruit LE 라는 항목이 보일텐데요.

 

옆에 Connect 를 클릭해줍시다.

   


 


 그다음에 UART 를 클릭합니다.

 


 


 만약 버전이 낮다면 업데이트를 하라고 하는데,


안드로이드 7.0에서 안되는건지, 안드로이드에서 안되는건지


에러가 자꾸나서 INSTALL 하시거나 아니면 ASK LATER 눌러주시면 됩니다.

 


 


 채팅창같은 화면이 반겨주는데 여기에 1을 입력하면


컴퓨터에서 열려있던 Serial 창에 1이 찍힙니다.



 


 보이시나요?


[Recv] 1


안드로이드에서 1이라는 데이터를 받았기 때문입니다.





그러면 Serial 창에


Hello, Bluefruit 라고 입력해보겠습니다.


입력이 완료되면 [Send] Hello, Bluefruit 라고 뜨는군요.

 


 


 그러면 애플리케이션에서는 Hello, Bluefruit 라는 문구를 받습니다.


이런식으로 BLE, Bluetooth 센서를 통해서 UART 방식으로 데이터를 통신하는 법을 알게 되었습니다.


이후에 작성될 주제는


안드로이드 UART 코드 직접 적용해보기


Serial 창에 입력하지 않고 데이터를 보내기


아두이노 코드에서 loop()함수를 이용해 데이터가 들어왔는지 판단하기


등으로 찾아뵙겠습니다.

Comments