В этом примере показано взаимодействие с модулем 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