Общайтесь со HC-06 по Bluetooth

®

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

Требования к оборудованию

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

  • HC-06 модуль Bluetooth

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

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

Setup оборудования

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

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

  • Соедините контакт GND с землей.

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

Мигающий светодиодный индикатор на HC-06 модуле указывает, что устройство подключено. Затем подключите устройство к хосту-компьютеру, чтобы разрешить подключение в MATLAB. PIN- кода по умолчанию является 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