@amperka/bluetooth

Технология беспроводной связи bluetooth предназначена для связи различных устройств на расстоянии до 100 метров. Стек bluetooth поддерживает различные типы соединений: передача голоса, устройства ввода, эмуляция последовательного порта.

Последний тип реализован в модулях HC-05. Вы можете установить соединение с модулем как с компьютера, смартфона, так и между двумя модулями. Для взаимодействия с модулем используются три пина: два пина последовательного порта — TX и RX, а так же пин K, для перевода модуля в режим управления. Когда на пин K подано напряжение, модуль принимает команды и отвечает на них. Когда на пин K напряжение не подается, модуль находится в режиме обмена данными. Все данные, отправленные по последовательному порту, будут переданы по радио на спаренное устройство, а данные со спаренного устройства — возвращены в последовательный порт.

Bluetooth.connect(opts)

Возвращает объект bluetooth. Параметр opts — объект со следующими свойствами:

  • serial — объект последовательного порта, по умолчанию Serial3;
  • speed — скорость обмена между портами контроллера и модуля bluetooth, по умолчанию 9600;
  • kPin — пин перевода модуля в режим управления, по умолчанию не назначен;
  • lineEnding — признак окончания строки, по умолчанию не назначен;
Serial3.setup(9600);
var bt = require('@amperka/bluetooth').connect({
  serial: Serial3,
  speed: 9600,
  kPin: P3,
  lineEnding: '\r\n'
});

Bluetooth

Объект, реализует взаимодействие с модулем bluetooth.

Отправляет данные на спаренное устройство.

println(data)

Отправляет данные на спаренное устройство, дополняя их символом окончания строки, указанном в свойстве lineEnding при создании объекта Bluetooth. Если эта настройка не выполнена, данные будут дополнены символами \r\n.

command(cmd, callback)

Выполняет AT-команду управления модулем bluetooth, после чего выполняет функцию callback передавая результат в ее первый параметр. В случае ошибки, результат может быть объектом [Error]. Следует учитывать, что данный метод выполняется не мгновенно, а спустя секунду, после приема последних данных.

on('data', callback)

При получении данных со спаренного устройства, вызывает функцию callback, передавая в ее первый параметр полученные данные. При этом, если при создании объекта символ окончания строк не указан в свойстве lineEnding — данные будут поступать в чистом виде из буфера последовательного порта. Если символ окончания строк указан — данные будут накапливаться и функция будет вызвана по достижению конца строки. При этом символ окончания строк передан не будет.

on('error', callback)

При возникновении ошибки,вызывает функцию callback, передавая ошибку в ее первый параметр. Возможные варианты ошибок:

  • speed — возникает, если скорость последовательного порта не соответствует скорости модуля bluetooth;
  • parity — возникает, если настройка режима проверки четности последовательного порта не соответствует настройкам модуля bluetooth;

firmware(callback)

Вызывает функцию callback, передавая в нее первым параметром номер версии прошивки.

speed(baud, callback)

Устанавливает скорость взаимодействия по последовательному порту. Необходимо передать одно из допустимых значений скоростей: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200. Необходимо учитывать, что изменения записываются в модуль и не забыть изменить настройки последовательного порта контроллера на новую скорость после перезапуска контроллера.

name(name, callback)

Устанавливает имя модуля name, которое отображается при поиске устройств. Если параметр name не передан, имя модуля не меняется. По окончанию вызывает функцию callback, передавая первым параметром текущее имя модуля.

password(pinCode, callback)

Устанавливает код доступа к модулю, необходимый для установления с ним соединения. Если pinCode равен undefined, новый код не устанавливается. По окончанию вызывает функцию callback, передавая первым параметром текущий (или новый установленный) код.

mode(role, callback)

Изменяет режим работы модуля, если role не равно undefined. Возвращает текущий режим работы модуля, в качестве параметра функции callback. Параметр role и параметр функции callback может быть:

  • slave — ведомое устройство, к которому можно подключиться (по умолчанию);
  • master — ведущее устройство, которое подключается к другим;
  • loop — тестовый режим, входящие данные отдаются отправителю;

connect(address, pinCode, callback)

Соединяет модуль с другим устройством, имеющим адрес address и кодом pinCode, после чего вызывает функцию callback. Адрес должен иметь вид XXXX:XX:XXXXXX, где X — шестнадцатиричное число. Например, 1234:56:abcdef.

disconnect(callback)

Разрывает текущее соединение с другим устройством.