HC-05 FC-114 и HC-06 FC-114. Часть 3 — Режим Master и автоподключение

Примечание

Обновление 19.09.2015

У плат FC-114, которые есть у автора, установлена прошивка Bolutek. Пользователь DS сообщил, что у него FC-114 с прошивкой linvorV1.8. Если описанное ниже не работает, проверьте, какая прошивка установлена на вашем модуле.

Возможно, автор упускает что-то, но у него не получается перевести модули HC-05 FC-114 в режим Master и подключиться к другим BT-устройствам только с помощью AT-команд. Модули говорят, что приняли команды, например AT+ROLE1, но при попытке подключиться к другим модулям выдают ошибку «Can only be used in Lord Mode» (можно использовать только в режиме Master).

Модули принимают AT+ROLE1 и сообщают, что изменили режим, но на самом деле этого не произошло.

В более ранней публикации автор упоминал, что, похоже, пин 27 или пин 28 должен быть подтянут к HIGH для входа в режим Master, и это действительно так. Все попытки без подтяжки пина(ов) к HIGH не увенчались успехом.

Ответ модуля на AT+ROLE1

Модули отвечают «OK», и при запросе AT+ROLE сообщают +ROLE=1, но на самом деле всё ещё находятся в режиме Slave.

Руководство пользователя показывает распиновку:

Распиновка BLK-MD-BC04-B

Есть 2 варианта входа в режим Master: подтянуть пин 27 к HIGH или подтянуть пин 28 к HIGH. Пин 27 позволяет использовать программное управление, а пин 28 — аппаратный переключатель.

Когда пин 27 в состоянии HIGH, вы используете AT-команды для входа в режим Master. Когда пин 28 в состоянии HIGH (а пин 27 LOW или не подключен), модули автоматически переключаются в режим Master. Оба способа примерно одинаковы, и автор решил использовать пин 27.

Итак, чтобы подтянуть пин 27 к HIGH, автор припаял провод между пином 27 и пином EN на плате-переходнике. Использовался тонкий одножильный монтажный провод, идеально подходящий для такой работы.

Провод между пином 27 и EN

Не лучший пример пайки, но достаточно хороший.

Автор осознал после пайки, что не знал, используется ли пин EN на модулях FC-114. Однако подтяжка EN к HIGH переводит модуль в режим AT-команд и не влияет на работу модуля каким-либо другим образом.

Примечание

Обновление 22.08.2015

Пин EN при подтяжке к LOW отключает модуль, так же как и у модулей zs-040. Поскольку автор вряд ли будет использовать пин EN для отключения модуля, провод остаётся на месте. Возможно, вы не захотите подключать его таким образом.

Помните, что пины на мини-плате BT рассчитаны только на 3.3В. Поэтому для подтяжки пина 27 к HIGH нужно использовать 3.3В, а не 5В.

Вот схема на макетной плате:

Макетная плата HC-05 FC-114 Макетная плата HC-05 FC-114 крупным планом

Пин EN подключён к делителю напряжения (резистор 1 кОм и резистор 2 кОм), а затем к 5В. Делитель напряжения снижает 5В до 3.3В.

Подключение

  • Arduino D2 к BT TX

  • Arduino D3 к делителю напряжения, затем к BT RX

  • Arduino 5V к BT VCC

  • HC-05 пин 27 к делителю напряжения, затем к VCC

  • GND к GND

Схема подключения HC-05 FC-114

Выполните подключение и загрузите следующий скетч на HC-05 FC-114.

Скетч Arduino HC-0x_FC-114_01_9600

// Basic bluetooth test sketch. HC-0x_FC-114_01_9600
//  Uses hardware serial to talk to the host computer and software serial for communication with the bluetooth module
//
//  Pins
//  BT VCC to Arduino 5V out.
//  BT GND to GND
//  Arduino D3 to BT RX through a voltage divider
//  Arduino D2 BT TX (no need voltage divider)
//
//  When a command is entered in the serial monitor on the computer
//  the Arduino will relay it to the bluetooth module and display the result.
//
// The HC-0x FC-114 modules require CR and NL

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3); // RX | TX

char c = ' ';
boolean NL = true;

void setup()
{
      Serial.begin(9600);
      Serial.println("Sketch HC-0x_FC-114_01_9600");
      Serial.println("Arduino with HC-0x FC-114 is ready");
      Serial.println("Make sure Both NL & CR are set");
      Serial.println("");

      // FC-114 default baud rate is 9600
      BTSerial.begin(9600);
      Serial.println("BTserial started at 9600");
      Serial.println("");

}

void loop()
{

    // Read from the Bluetooth module and send to the Arduino Serial Monitor
    if (BTSerial.available())
    {
        c = BTSerial.read();
        Serial.write(c);
    }

    // Read from the Serial Monitor and send to the Bluetooth module
    if (Serial.available())
    {
        c = Serial.read();
        BTSerial.write(c);

        // Echo the user input to the main window. The ">" character indicates the user entered text.
        if (NL) { Serial.print(">");  NL = false; }
        Serial.write(c);
        if (c==10) { NL = true; }
    }

}

Настройка ведомого устройства — HC-06

Автор использует HC-06 на отдельной макетной плате. С ним ничего особого не делается — только подаётся питание и разрешается HC-05 подключаться к нему.

HC-05 FC-114 и HC-06 на макетных платах

Настройка автоподключения на HC-05 FC-114

Откройте монитор порта и перезагрузите HC-05 FC-114. Светодиод на HC-05 должен мигать: 1 секунда включён, 1 секунда выключен.

Монитор порта — начальное состояние

Убедитесь, что выбран режим «Both NL & CR» и введите следующие команды:

AT+ROLE1
AT+CMODE1

AT+ROLE1 переводит модуль в режим Master (ведущий).

AT+CMODE1 разрешает модулю подключаться к любому другому BT-устройству в режиме Slave.

Ввод AT-команд для режима Master

Светодиод должен по-прежнему мигать в том же ритме: 1 секунда включён, 1 секунда выключен.

Светодиод на HC-06 должен мигать примерно 5 раз в секунду.

При открытом мониторе порта перезагрузите HC-05. Приветственное сообщение теперь должно содержать «MASTER mode».

Монитор порта — режим MASTER

При повторном включении HC-05 он будет искать доступные Bluetooth-устройства и автоматически подключится к устройству с самым сильным сигналом. Во время поиска светодиод будет быстро мигать 3 раза каждые пару секунд. Подключение должно занять не более пары секунд.

После подключения светодиод на HC-05 горит постоянно.

Одна из приятных особенностей модулей HC-05 FC-114 заключается в том, что они выводят текущий статус, и вы можете отслеживать процесс подключения.

Модуль, по-видимому, запоминает первое ведомое устройство, к которому он подключился, и будет пытаться подключиться к тому же модулю при перезагрузке. Автор настроил ещё 2 модуля HC-06, и они, похоже, игнорируются, даже когда исходный HC-06 не запитан.

Статус подключения

После настройки модуля вам больше не нужно подтягивать пин 27 к HIGH. Модули HC-05 FC-114 будут автоматически подключаться даже без подачи питания на пин 27.

Примечание

Обновление

Автор экспериментировал с этим в течение нескольких часов, постоянно останавливая и запуская HC-05. Модуль всегда подключается к исходному HC-06, даже когда другие HC-06 и HC-05 (в режиме Slave) доступны.