Main Content

Bluetooth를 통해 HC-06과 통신하기

이 예제에서는 Serial Port Profile을 사용하여 HC-06 Bluetooth® 모듈과 통신하는 방법을 보여줍니다.

하드웨어 요구 사항

  • 내장 또는 외장 Bluetooth 2.0 호환 어댑터가 있는 Windows® 10 또는 macOS 컴퓨터

  • HC-06 Bluetooth 모듈

  • FTDI 컨버터 또는 Arduino® 보드 같은 5V 전원 공급원

  • 몇 개의 전선

하드웨어 설정

이 예제에서는 루프백 장치로 구성된 HC-06 Bluetooth 트랜시버 모듈을 사용합니다. HC-06 모듈에서 다음을 수행합니다.

  • VCC 핀을 5V 전원 공급원에 연결합니다.

  • GND 핀을 접지에 연결합니다.

  • TXD 핀을 RXD 핀에 연결합니다.

HC-06 모듈의 LED가 깜빡이며 기기에 전원이 공급되었음을 나타냅니다. 그다음, 호스트 컴퓨터에 기기를 페어링하여 MATLAB®에 연결되도록 허용합니다. 달리 구성하지 않는 한, 디폴트 PIN 코드는 1234입니다.

기기 정보 가져오기

bluetoothlist 함수를 호출하여 Bluetooth 기기 주소 또는 이름과 SPP 채널 번호를 식별합니다. 기기 상태가 "Ready to connect"인지 확인하십시오. 이는 기기에 전원이 공급되고 페이링되었음을 나타냅니다. 기기 정보를 이미 알고 있다면 이 단계를 건너뛰어도 됩니다.

bluetoothlist
Run blelist to search for nearby Bluetooth Low Energy peripheral devices.
ans=4×4 table
       Name           Address        Channel          Status      
    ___________    ______________    _______    __________________

    "HanaBTDev"    "CC78AB79656F"    Unknown    "Unknown"         
    "EUCLID"       "0016530CE4AC"    Unknown    "Unknown"         
    "HC-06"        "98D331FB3B77"    1          "Ready to connect"
    "DMTDevice"    "B0B448F47A4C"    1          "Requires pairing"

기기에 연결하기

bluetooth를 호출하여 기기 주소 또는 이름과 SPP 채널 번호를 사용해 기기에 연결합니다. 고유한 경우 기기 이름을 지정하거나, 기기 주소를 지정하십시오.

hc06 = bluetooth("HC-06", 1)
hc06 = 
  bluetooth with properties:

                 Name: "HC-06"
              Address: "98D331FB3B77"
              Channel: 1
    NumBytesAvailable: 0
      NumBytesWritten: 0

  Show all properties

데이터 쓰기와 읽기

HC-06을 MATLAB에 연결했으면 write를 호출하여 바이트 데이터 또는 문자열 데이터를 기기에 씁니다.

write(hc06, 1:10);
write(hc06, "helloworld");

기기가 루프백으로 구성되었으므로, 기기에 수신되는 데이터는 즉시 MATLAB에 반환됩니다. read를 호출하여 데이터를 읽어옵니다.

read(hc06, 10)
ans = 1×10

     1     2     3     4     5     6     7     8     9    10

read(hc06, 10, "string")
ans = 
"helloworld"

종료된 문자열 데이터를 보내고 받는 방법에 대한 자세한 내용은 readlinewriteline 항목을 참조하십시오.

비동기식으로 데이터 수집하기

데이터를 Bluetooth 기기에 쓴 경우 콜백 함수를 사용하여 데이터를 읽어올 수 있습니다. 5바이트를 기기에서 보내고 MATLAB에서 수신할 때마다 데이터를 읽어오고 수집하도록 configureCallback을 호출합니다.

function collectData(src, evt)
    % Read received data and store it in the UserData property on the bluetooth object
    src.UserData = [src.UserData; read(src,src.BytesAvailableFcnCount)];
end
configureCallback(hc06, "byte", 5, @collectData);

데이터를 기기에 씁니다. 데이터가 즉시 MATLAB에 다시 전송되고, 콜백 함수가 트리거되어 데이터를 읽어오고 표시합니다.

write(hc06, 1:20);
% Wait for all callbacks to be processed
pause(1);
disp(hc06.UserData);
     1     2     3     4     5
     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20

기기와의 연결 끊기

기기 객체를 다 사용했으면 이 객체를 지웁니다.

clear hc06