В этом примере показано взаимодействие с модулем HC-06 Bluetooth с помощью профиля последовательного порта.
Windows 10 или macOS машина со встроенным или внешним Bluetooth 2.0 совместимым адаптером
HC-06 модуль Bluetooth
Источник 5 В, такой как FTDI конвертер или плата Arduino
Несколько проводов
Этот пример использует 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