====== Bluetooth HC-05 (Troyka-модуль) ======
Возьмите [[amp>product/troyka-bluetooth-hc-05?utm_source=man&utm_campaign=troyka-bt&utm_medium=wiki|Bluetooth (Troyka-модуль)]] и создайте целую сеть беспроводных устройств, каждое из которых сможет принимать и отправлять данные.
{{ :продукты:troyka-bluetooth:troyka_bluetooth_overview.jpg?nolink |}}
===== Видеообзор =====
{{youtube>mxtFhEa6nb0?large}}
===== Подключение и настройка =====
Bluetooth-модуль общается с управляющей платой по протоколу [[видеоуроки:6-serial-и-processing|UART]]. Дополнительный сигнальный пин ''K'' служит для перевода модуля в режим AT-команд.
Для работы с модулем удобно использовать [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=troyka-bt&utm_medium=wiki|Troyka Shield]].{{ :продукты:troyka-bluetooth:troyka_bluetooth_scheme_troyka.png?nolink |}}
Если хотите избавиться от проводов —
возьмите [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-bt&utm_medium=wiki|Troyka Slot Shield]].{{ :продукты:troyka-bluetooth:troyka_bluetooth_scheme_troykaslot.png?nolink |}}
==== SoftwareSerial ====
Некоторые платы Arduino прошиваются через пины 0 и 1 ([[amp>product/arduino-uno|Uno]], [[amp>product/arduino-mega-2560|Mega 2560]], [[amp>product/arduino-adk|ADK]] и [[amp>product/iskra-mini|Iskra Mini]]). Перед прошивкой таких плат отключите Bluetooth-модуль от пинов RX и TX. Если необходимо одновременно работать с Bluetooth и подключать контроллер к компьютеру, подключите пины TX и RX к другим контактам управляющей платы.
Для примера подключим управляющие пины Bluetooth-модуля ''RX'' и ''TX'' — на ''8'' и ''9'' пин Arduino через Troyka Shield.{{ :продукты:troyka-bluetooth:troyka_bluetooth_scheme_troykasoft.png?nolink |}}
Прошейте управляющую платформу кодом ниже.
== Код прошивки ==
// библиотека для работы программного Serial
#include
// создаём объект для работы с программным Serial
// и передаём ему пины TX и RX
SoftwareSerial mySerial(8, 9);
// serial-порт к которому подключён Bluetooth модуль
#define HC05_SERIAL mySerial
void setup() {
// открываем последовательный порт для мониторинга действий в программе
// и передаём скорость 9600 бод
Serial.begin(9600);
while (!Serial) {
// ждём, пока не откроется монитор последовательного порта
// для того, чтобы отследить все события в программе
}
Serial.println("Enter AT commands:");
HC05_SERIAL.begin(38400);
}
void loop() {
// если приходят данные из Wi-Fi модуля - отправим их в порт компьютера
if (HC05_SERIAL.available())
Serial.write(HC05_SERIAL.read());
// если приходят данные из компьютера - отправим их в Wi-Fi модуль
if (Serial.available())
HC05_SERIAL.write(Serial.read());
}
После включения Bluetooth HС-05 на нём замигает светодиод ''MODE''.
Bluetooth-модуль работает в двух режимах: «прозрачного UART» и управления AT-командами. В первом случае всё предельно просто — включаете модуль, подключаетесь к нему с компьютера или иного устройства и шлёте на этот порт данные. Второй режим предназначен для настройки модуля.
==== Режим AT-команд ====
Чтобы получить доступ к настройке модуля, его необходимо перевести в режим приёма AT-команд. Для входа в этот режим можно воспользоваться двумя методами:
* **Первый метод:**
- Отключаем модуль от питания.
- Подаем на пин ''K'' высокий уровень.
- Включаем модуль.
В этом варианте скорость обмена с модулем устанавливается в ''38400'' бод.
* **Второй метод**
- Включаем модуль.
- Подаем на пин ''K'' высокий уровень.
В этом случае скорость обмена с модулем будет равна скорости, установленной настройками. По умолчанию — 9600 бод.
После успешного перехода в режим AT-команд, светодиод ''MODE'' начнет мигать раз в две секунды.
Bluetooth-модуль может работать в 3-х режимах:
* **Master** — в этом режиме модуль сам инициирует подключение к какому-нибудь Bluetooth-девайсу.
* **Slave** — самый распространённый режим. С ним мы можем подключиться к модулю сами. Например с телефона.
* **Slave-loop** — здесь модуль отправляет обратно все байты, которые ему прислали.
===== Элементы платы =====
{{ :продукты:troyka-bluetooth:troyka_bluetooth_annotation.png?nolink |}}
==== Bluetooth модуль HC-05 ====
Сердцем модуля является чип BC417 от компании Cambridge Silicon Radio, который обеспечивает аппаратную поддержку стека Bluetooth 2.0 + EDR (Enhaced Data Rate), а также флэш-память ES29LV800DB-70WGI от Excel Semiconductor на 8 Мбит (1 МБ), хранящая прошивку и настройки.
==== Troyka контакты ====
//1 группа//
* Земля (G) — соедините с землёй микроконтроллера.
* Питание (V) — соедините с питанием микроконтроллера.
* Сигнальный (TX) — Подключите к пину ''RX'' микроконтроллера.
//2 группа//
* Сигнальный (K) — Подключите к сигнальному пину микроконтроллера.
* Не используется.
* Сигнальный (RX) — Подключите к пину ''TX'' микроконтроллера.
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| RX и TX |Мигают при обмене данными между Bluetooth и управляющим устройством.|
| PAIR |Горит, если модуль сопряжён с другим устройством|
| MODE |Мигает в зависимости от режима работы (горит/не горит):\\ 64 мс/300 — нет сопряжения; \\ 64 мс/2000 мс — сопряжён с другим устройством; \\ 2000 мс/2000 мс — режим AT-команд.|
==== Обвязка для согласования уровней напряжения ====
Необходима для сопряжения устройств с разными питающими напряжениями.
В нашем случае это может быть управляющее устройство Arduino с 5 вольтовой логикой и Bluetooth модуль ''HC-05'' с 3,3 вольтовой логикой.
===== Принципиальная и монтажная схемы =====
{{:продукты:troyka-bluetooth:troyka-bluetooth_schematic.png?direct&350 |}}
{{ :продукты:troyka-bluetooth:troyka-bluetooth_layout.png?direct&300|}}
===== Характеристики =====
* Напряжение питания: 3,3–5 В
* Потребляемый ток: 50 мА
* Радиус действия: до 10 метров
* Чип Bluetooth: HC-05(BC417143)
* Интерфейс: последовательный порт
* Габариты: 50,8×25,4 мм
===== Ресурсы =====
* {{:продукты:troyka-bluetooth:troyka-bluetooth_datasheet.pdf|Datasheet на модуль HC-05}}
* {{:продукты:troyka-bluetooth:troyka-bluetooth_at_commands.pdf|Полный список АТ-команд}}
* [[https://github.com/RoboCraft/Bluetooth_HC05|Библиотека настройки модуля в режиме AT-команд для Arduino]]
* [[js:bluetooth|Описание библиотеки для Iskra JS]]