행복한 하루

Arduino nano 33 iot Bluetooth와 SoftwareSerial.h 문제관련 본문

IoT

Arduino nano 33 iot Bluetooth와 SoftwareSerial.h 문제관련

변화의 물결 2020. 7. 7. 19:26

 

 

안녕하세요.

 Arduino nano 33 iot를 가지고 몇 가지 테스트 한 부분 나누어 보아요.
다들 아시는 것처럼 33 IOT 버전은 WIFI와 bluetooth 버전이 가능하다 보니 괜찮은 제품이라고 생각했는데, 블루투스에 설정하는 것에 어려움이 있는 듯합니다.

 우선 WIFI는 아래 참조1 사이트와 같이 따라 하시면 문제없이 작동되는 것을 확인할 수 있었습니다.
소스 코드상에 문제가 있어 댓글 남겨 놓았는데, 수정되었는지 모르겠네요. ^^

참조1) https://fishpoint.tistory.com/4433

 

 

 

1)  블루투스 관련 

 그런데 블루투스는 연결을 BLE 가 지원되는 여러 핸드폰으로 페어링을 해도 되지 않았습니다.
nRF Connect 앱으로만 연결과 값이 전송되었습니다.  이런 부분들이 아두이노 포럼과 기타 글에도 남겨져 있어 해결되어야 할 부분으로 생각됩니다. (참고 2) 제가 잘못 알고 있는 부분이라 답글 부탁드립니다.


  참고2) www.arrow.com/en/research-and-events/articles/hands-on-with-the-arduino-nano-33-iot

 

 

 

2) softwareSerial. h  파일을 못 찾는다는 경우

 그렇다면 시리얼 통신으로 별도의 블루투스 모듈(HC-06)로 정보를 보내야겠다 하고 소프트웨어로 구현된 시리얼 통신을 사용하려고 했는데, 헉, 컴파일 시에 softwareSerial.h 못 찾는다고 나왔습니다. 이건 뭐지 라고 하고 구글링 하는 중에 될 거라는 분도 계시던데, 쉽게 보니 보드에서 라이브러리를 지원하지 않고 있지 않은가 라고 답글을 보게 되었습니다. (참고 3) 그래서 직접 구현하던지, 편하게 물리적 시리얼 포트를 사용해야 할 것으로 보입니다. 

 

참고 3)  forum.arduino.cc/index.php?topic=493212.0

 

 

기타 참고)

 다들 아실 내용이지만, 아두이노 시리얼 포트에 Bluetooth.write() 를 이용하여 데이터를 보낼 경우 받는 쪽에서 끝 문자(\n) 이 없으면 화면에 출력되지 않습니다. 수신 쪽 버퍼에 쌓여있을 수 있습니다.

 그래서 끝 문자("\r\n")를 붙여 주셔야 될 겁니다. 아니면 println() 함수를 사용하면 그냥 아래 소스 코드처럼 보내시면 됩니다. write와 println과 같다고 하시는 분이 계셔서 남겨보아요.

#include <SoftwareSerial.h>
#define RX 2
#define TX 3

SoftwareSerial Bluetooth(RX,TX); 

void setup(){
  Serial.begin(9600);
  Bluetooth.begin(9600);
}

void loop(){

  Bluetooth.println("TEST");
  Serial.println("APPLE");
  delay(1000);
} 

 

 

Comments