Q. 

안드로이드 폰과 CLE110 간의 데이터 통신을 목표로 하고 있습니다.

현재 상황은 다음과 같습니다.

  • GATT를 이용하여, 안드로이드 폰에서 CLE110으로 접속 성공
  • GATT에서 Write(UUID=0xFFF2)를 이용하여, 데이터 전송 성공

그런데, 다음 문제가 안됩니다.


  • GATT에서 Read/Notification(UUID=0xFFF1)를 이용하여, 데이터 수신 실패



현재 시스템에서 동작하는 절차가 어떻게 되냐면,

처음에 안드로이드 폰이 CLE110과 연결한 뒤, 데이터를 보냅니다. (1바이트 데이터)

그러면, CLE110은 그 데이터를 보고, 적절한 데이터를 보냅니다.


  • 현재 이 부분 구현 방식은 이렇습니다. CLE110에 관해서 Serial3을 사용하고 있는 상태로,
  • Serial3.print("data"); 이런식으로 구현되어 있습니다.

그런 다음, 안드로이드 폰에서 UUID=0xFFF1을 이용하여 아두이노에서 Serial3(CLE110)을 통해 송출한 데이터를 읽어오는 것입니다.



그런데 그 데이터가 아예 없습니다...

도무지 어떻게 해야 좋을 지 모르겠습니다.

AT command 에서도 데이터 전송이 없는 것 같은데... 어떻게 해야 되나요?



A. 

우선 패어링 및 서비스 접근 통신까지 성공하신것으로 봐선

단순한 실수가 있는것 아닐까 합니다. 아래 사항에 대해 검토 바랍니다.



  1. 우선 BoT-CLE110에서는 데이터를 상대 단말기로 전송하려면 데이터패킷 +<CR>을
       입력받아야 합니다. 간혹 <CR> 인 0x0D를 안보내고 테스트 하는 경우가 있습니다.
  2. 아두이노와의 UART결선이 3.3v TTL레벨로 되어있는지 확인바랍니다. 아두이노가 5v UART를 사용하기 때문에 아두이노 Txd에 저항을 연결하여 3.3v레벨로 맞춰야 합니다.
  3. 안드로이드에서 속성 중 Read/Notification 을 잘 선택했는지 확인바랍니다. Notification의 경우 연속읽기 이기 때문에 아두이노에서 지속적으로 데이터를 송출해야 테스트상 데이터 확인이 가능합니다