exponenta event banner

Взаимодействие с HC-06 по Bluetooth

®

В этом примере показано взаимодействие с модулем HC-06 Bluetooth с помощью профиля последовательного порта.

Требования к аппаратным средствам

  • Компьютер Windows 10 или macOS со встроенным или внешним адаптером, совместимым с Bluetooth 2.0

  • HC-06 модуль Bluetooth

  • Источник 5 В, например преобразователь FTDI или плата Arduino

  • Несколько проводов

Настройка оборудования

Этот пример использует модуль приемопередатчика Bluetooth HC-06, настроенный в качестве петлевого устройства. В модуле HC-06:

  • Подключите контакт VCC к источнику 5 В.

  • Подключите контакт GND к заземлению.

  • Подключите контакт TXD к контакту RXD.

Мигающий светодиодный индикатор на модуле HC-06 указывает на питание устройства. Затем соедините устройство на хост-компьютере, чтобы разрешить подключение в MATLAB. ПИН-код по умолчанию - 1234, если не указано иное.

Получение информации об устройстве

Определите адрес или имя устройства Bluetooth и номер канала SPP путем вызова bluetoothlist функция. Убедитесь, что устройство находится в состоянии "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"

Подключиться к устройству

Используйте адрес или имя устройства и номер канала SPP для подключения к устройству путем вызова bluetooth. Укажите имя устройства, если оно уникально, или укажите адрес устройства.

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"

Для получения информации об отправке и получении завершенных строковых данных см. readline и writeline.

Асинхронный сбор данных

Функцию обратного вызова можно использовать для считывания данных при их записи в устройство Bluetooth. Звонить configureCallback для считывания и сбора данных каждый раз, когда пять байт посылаются устройством и принимаются в MATLAB.

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