Модуль Bluetooth HC-05(06)
Модуль связи HC-05 или HC-06 позволяет реализовать дистанционное управление микроконтроллерным устройством по Bluetooth. Реализована поддержка модуля всеми контроллерами Arduino. Исходный код графического интерфейса можно получить для сред разработки Arduino IDE или FLProg IDE.
Модуль представляет собой чип Bluetooth HC-05(06), распаянный на плате, содержащей DC-DC преобразователь напряжения питания и схему преобразования уровней сигналов RX и TX. Сам модуль HC-05(06) питается напряжением 3.3 вольта, но благодаря преобразователям, вы можете эту сборку подключить к устройству, работающему от напряжения 5 вольт.
Модуль имеет 4-е (иногда 6) контакта для подключения: два контакта для подачи питания: земля(GND) и +5 вольт, и два контакта интерфейса последовательного порта: RX и TX.
Напряжение питания: 5 В (может быть запитан от платы Arduino);
Подключение: Serial (UART), SoftwareSerial, скорость по умолчанию 9600 бит/сек.
Для использования модуля HC-05(06) выберите этот модуль в настройках конфигурации проекта.
Модуль подключается к плате микроконтроллера по последовательному интерфейсу. Можно на выбор использовать SoftwareSerial или аппаратный Serial. Вариант подключения модуля выбирается в панели настроек подключения модуля.
Подключение через Software Serial
Позволяет подключить модуль к произвольным контактам микроконтроллера. Какие контакты использовать, необходимо указать в панели настроек подключения модуля. Так же в панели настроек указывается скорость передачи данных для порта. Модуль HC-05(06) по умолчанию настроен на скорость 9600 бит/сек. Скорость работы модуля может быть изменена при помощи AT команд (требует специальных знаний), но если вы не изменяли скорость, установите значение по умолчанию, т.е. 9600 бит/сек.
Есть некоторые ограничения на использование контакта RX для плат Arduino. Ограничения связаны с поддержкой прерываний на соответствующих контактах микроконтроллера.
- Arduino UNO и Nano для RX нельзя использовать контакт 13(LED);
- Arduino Mega и Mega2560 для RX можно использовать только следующие контакты: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69);
- Arduino Leonardo и Micro для RX можно использовать только следующие контакты: 8, 9, 10, 11, 14, 15, 16;
Так же при использовании SoftwareSerial вы должны принять следующие ограничения:
- Нет возможности работы на больших скоростях передачи данных. Не рекомендуем использовать скорость соединения более 38400 бит/сек.
- Некоторые библиотеки, которые так же используют прерывания, могут работать не корректно, или же их использование может сделать неработоспособным данный способ подключения. Например библиотека Servo будет подергивать сервоприводы.
Пример подключения модуля HC-05(06) для SoftwareSerial к контактам 2(RX) и 3(TX) на рисунке. Обратите внимание, что необходимо контакты подключить перекрестием, т.е. контакт Arduino 2(RX) к контакту TX модуля, и контакт 3(TX) к контакту RX модуля.
Подключение через Hardware Serial (аппаратный)
Позволяет подключить модуль к контактам микроконтроллера, поддерживающим один из аппаратных портов последовательного интерфейса. Для разных плат Arduino это разные порты и контакты.
- Arduino UNO и Nano: Serial (RX-0, TX-1);
- Arduino MEGA и MEGA2560: Serial (RX-0, TX-1), Serial1 (RX-19 и TX-18), Serial2 (RX-17 и TX-16), Serial3 (RX-15 и TX-14);
Какой порт использовать, а следовательно к каким контактам следует подключать модуль, необходимо указать в панели настроек подключения модуля. Следует так же иметь в виду, что для плат Arduino порт Serial задействован для программирования микроконтроллера, и если вы приняли решение использовать этот порт, при программировании необходимо отсоединять модуль HC-05(06). Хорошим решением будет использовать на платах Arduino MEGA любой порт, отличный от Serial.
Так же в панели настроек указывается скорость передачи данных для порта. Модуль HC-05(06) по умолчанию настроен на скорость 9600 бит/сек. Скорость работы модуля может быть изменена при помощи AT команд (требует специальных знаний), но если вы не изменяли скорость, установите значение по умолчанию, т.е. 9600 бит/сек.
Пример подключения модуля HC-05(06) для аппаратного Serial к контактам 0(RX) и 1(TX) на рисунке. Обратите внимание, что необходимо контакты подключить перекрестием, т.е. контакт Arduino 0(RX) к контакту TX модуля, и контакт 1(TX) к контакту RX модуля.
Arduino и модули Bluetooth HC-05/06
Bluetooth — один из самых распространённых протоколов беспроводной связи на малом расстоянии для персональных электронных устройств. С его помощью работают различные устройства ввода и управления, аудиоустройства.
На фоне остальных протоколов Bluetooth выделяется прежде всего помехоустойчивостью и простотой. От не менее распространённого Wi-Fi Bluetooth отличается в первую очередь низким энергопотреблением, что делает его доступным для автономных устройств. Благодаря этому BT получил повсеместное распространение.
Чаще всего для самоделок используются BT-модули HC-05 и HC-06. Их легко найти в продаже. HC-05 отличается от HC-06 тем, что ему доступны оба режима работы: ведомый (master) и ведущий (slave). А вот HC-06 работает только ведомым, то есть он не способен находить другие устройства и самостоятельно устанавливать с ними связь (но это можно исправить).
Оба модуля основаны на одинаковом чипе и поддерживают BT версии 2.0. Их максимальная скорость работы – 3 Мегабита в секунду.
Небольшой обзор модулей HC-05 и HC-06
Чаще всего HC-05 и HC-06 представляют собой две спаянные платы. Верхняя – заводская плата с микросхемой BC417. Нижняя – специальная плата для самодельных устройств, содержащая самые нужные ножки GPIO с шагом 2.54 мм, стабилизатор напряжения и кнопку сброса. На фотографии ниже плата с BC417:
А это — модули HC-05 и HC-06 вместе с подложкой:
HC-05 не намного дороже HC-06. Но при этом он может работать в обоих режимах прямо “из коробки”. С HC-06 же придётся повозиться, чтобы заставить его работать ведущим.
Также встречаются немного другие версии модулей. Вместо вывода EN на них выведен KEY.
Распиновка модулей
- EN — управление питанием;
- VCC — питание от 3,6 до 6 В;
- GND — земля;
- RX, TX — интерфейс UART;
- STATE — индикация работы;
- KEY — активация режима управления с помощью AT-команд.
Настройка модулей производится при помощи AT-команд. Но пин KEY есть не на всех модулях. И что с этим делать?
Пин KEY конечно же присутствует на малой плате с большим числом контактов, но не разведён на большой. Причины такого странного решения китайцев неизвестны.
Этот контакт находится здесь:
Подключение HC-05 и HC-06 к Arduino
Подключение к Arduino выполняется следующими контактами:
- GND – GND;
- VCC – +5V;
- TXD – 10;
- RXD – 11;
- KEY при обычной работе модуля не используется. Для перехода в режим AT-команд его надо соединить с +3.3V.
TXD и RXD соединены с пинами 10 и 11, потому, что аппаратный UART будет использоваться для связи с компьютером.
Согласование логических уровней
Bluetooth-модули работают с логическими уровнями 3.3 В, и использование пятивольтовой логики может вывести их из строя. Но чаще всего на плате имеется всё необходимое для согласования уровней.
Бывают ситуации, в которых между Arduino TXD — Bluetooth RXD необходимо согласование напряжения. Использование делителя – гарантия надёжной работы.
Справа приведена схема простейшего делителя:
Скетч для подключения к Arduino
Для настройки модулей можно использовать USB-UART конвертер, если вы воспользуетесь им – следующий пункт можно пропустить. Для начала нам потребуется прошить Arduino.
Скетч просто отправляет данные, полученные с компьютера, на настраиваемый модуль.