====== 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]]