====== Bluetooth Low Energy (Troyka-модуль) ======
Возьмите [[amp>product/troyka-ble?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|BLE-модуль]] и управляйте вашими девайсами с помощью телефона на базе операционной системы Android и iOS. Синезуб также поможет создать псевдо-сеть между своими собратьями. А благодаря технологии Web Bluetooth API работа с модулем доступна прямо из окна браузера.
{{ :продукты:troyka-ble:troyka-ble.4.jpg |}}
Используйте модуль с медиаустройствами, которые поддерживают работу с Bluetooth Low Energy (BLE). Если вам нужно просто обмениваться данными по Bluetooth и не нужно низкое энергопотребление, используйте [[amp>product/troyka-bluetooth-hc-05?utm_source=man&utm_campaign=troyka-bluetooth-hc-05&utm_medium=wiki|Bluetooth HC-05 (Troyka-модуль)]].
===== Видеообзор =====
{{youtube>NKjXgCVevLg?large}}
===== Подключение и настройка =====
Bluetooth Low Energy (BLE) общается с управляющей электроникой по интерфейсу [[видеоуроки:6-serial-и-processing|UART]].
Синезуб может работать в двух режимах:
* Slave — модуль ожидает подключение от другого Bluetooth-устройства. Например, от телефона или такого же BLE-модуля.
* Master — модуль сам инициирует подключение к другим устройствам.
Рассмотрим оба варианта подробнее.
===== Режим Slave «Ведомый» =====
Модуль ожидает сопряжение от другого Bluetooth устройства. В качестве примера рассмотрим подключение смартфона к BLE-модулю. Со стороны последовательного порта возьмём [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|USB-UART преобразователь]].
{{ :продукты:troyka-ble:troyka-ble_slave_mode.png?nolink |}}
==== Схема устройства ====
Подключите BLE-модуль к [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|USB-UART преобразователю]].
{{ :продукты:troyka-ble:troyka-ble_scheme_slave_troyka-usb-uart.png?nolink |}}
==== Настройка модуля ====
Для начала необходимо настроить Bluetooth через AT-команды.
AT-команды служат для настройки модуля, например:
* узнать/изменить имя устройства;
* узнать/изменить пароль;
* узнать MAC-адрес устройства и т.д.
- Запустите терминал на ПК. Например встроенный в Arduino IDE или Putty.{{ :продукты:troyka-ble:troyka-ble_setup.1.png?nolink |}}
- Выставьте настройки последовательного порта:
- скорость: 9600 бод
- бит чётности: N
- количество бит данных: 8
- количество стоповых бит: 1
- без возврата каретки «\r»
- без новой строки «\n»{{ :продукты:troyka-ble:troyka-ble_setup.2.png?nolink |}}
- В качестве теста отправьте на модуль команду:AT
{{ :продукты:troyka-ble:troyka-ble_setup.3.png?nolink |}}В ответ вы должны получить:OK
{{ :продукты:troyka-ble:troyka-ble_setup.4.png?nolink |}}
Если ответа нет — проверьте схему, не помогло — [[#обновление_прошивки|перепрошейте модуль]].
[[#список_at-команд|Базовые AT-команды читайте в описании на вики]], а полный список — {{:продукты:troyka-ble:hm-10_datasheet.pdf|в документации на модуль HM-10.}}
==== Настройка телефона с ОС Android ====
- Скачайте и установите приложение [[https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal|Serial Bluetooth Terminal]].{{ :продукты:troyka-ble:android_setup.1x.png?nolink |}}
- Запустите приложение.{{ :продукты:troyka-ble:android_setup.2x.png?nolink |}}
- Зайдите в меню:
Настройки **≡**
Devices и нажмите кнопку ''SCAN''.{{ :продукты:troyka-ble:android_setup.3x.png?nolink |}}
- Выберите по имени интересующий BLE-модуль. По умолчанию имя модуля — HMSoft.{{ :продукты:troyka-ble:android_setup.4x.png?nolink |}}
- Вернитесь в главное меню и соединитесь с выбранным девайсом — нажмите на кнопку ''connect'' {{:продукты:troyka-ble:troyka-ble_connect.png?nolink|}}{{ :продукты:troyka-ble:android_setup.5x.png?nolink |}}
- При успешном сопряжении:
- В окне терминала телефона появится надпись ''Connected'';{{ :продукты:troyka-ble:android_setup.6x.png?nolink |}}
- В окне терминала на ПК вернётся команда ''AT+CONN'';{{ :продукты:troyka-ble:android_setup.7x.png?nolink |}}
- Светодиод ''PAIR'' будет гореть непрерывно.
Это значит всё получилось и можно передавать данные в обоих направлениях.
==== Настройка телефона с ОС iOS ====
- Скачайте и установите приложение [[https://itunes.apple.com/ru/app/hm10-bluetooth-serial-lite/id1030454675?platform=iphone&preserveScrollPosition=true#platform/iphone|HM10 Bluetooth Serial Lite]] (если приложение не достуно для загрузки, то можете установить [[https://apps.apple.com/us/app/ble-tools-with-terminal/id1585495917?platform=iphone|BLE tools with terminal]]). {{ :продукты:troyka-ble:ios_setup.1x.png?nolink |}}
- Запустите приложение.{{ :продукты:troyka-ble:ios_setup.2x.png?nolink |}}
- Нажмите на кнопку ''Connect'' для поиска новых Bluetooth устройств.{{ :продукты:troyka-ble:ios_setup.3x.png?nolink |}}
- Выберите по имени интересующий BLE-модуль и нажмите кнопку ''Connect''. По умолчанию имя модуля — HMSoft.{{ :продукты:troyka-ble:ios_setup.4x.png?nolink |}}
- При успешном сопряжении:
- В окне терминала телефона появится надпись сопряжённого BLE-устройства;{{ :продукты:troyka-ble:ios_setup.5x.png?nolink |}}
- В окне терминала на ПК вернётся команда ''AT+CONN'';{{ :продукты:troyka-ble:ios_setup.6x.png?nolink |}}
- Светодиод ''PAIR'' будет гореть непрерывно.
Это значит всё получилось и можно передавать данные в обоих направлениях.
==== Передача данных ====
Для примера отправим из телефона сообщение ''Hi, Arduino!''.{{ :продукты:troyka-ble:data-transfer.1.png?nolink |}} В ответ в терминале на ПК придёт послание ''Hi, Arduino!''.{{ :продукты:troyka-ble:data-transfer.2.png?nolink |}}
И в обратную сторону: отправим из терминала ПК текст ''Hi, Smartphone!''.{{ :продукты:troyka-ble:data-transfer.3x.png?nolink |}} В ответ в терминале телефона увидим сообщение ''Hi, Smartphone!''.{{ :продукты:troyka-ble:data-transfer.4.png?nolink |}}
Вместо USB-UART адаптера возьмите любую управляющую платформу. Например [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|Arduino Uno]] или [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|Iskra JS]]. Для общение используйте интерфейс ''UART''.
===== Режим Master «Ведущий» =====
Модуль сам инициирует подключение к другим устройствам. В качестве примера возьмём два модуля Troyka BLE. Один будет ведущим, а другой ведомым. Со стороны последовательных портов возьмём два [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|USB-UART преобразователя]].
{{ :продукты:troyka-ble:troyka-ble_master_mode.png?nolink |}}
==== Схема устройств ====
Подключите каждый BLE-модуль к [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|USB-UART преобразователю]].
{{ :продукты:troyka-ble:troyka-ble_scheme_master_troyka-usb-uart.png?nolink |}}
==== Настройка Slave ====
- [[#настройка_модуля|Сделайте базовую настройку модуля]].
==== Настройка Master ====
- [[#настройка_модуля|Сделайте базовую настройку модуля]].
===== Обновление прошивки =====
- Подключите BLE-модуль к [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|USB-UART преобразователю]]. {{ :продукты:troyka-ble:troyka-ble_scheme_slave_troyka-usb-uart.png?nolink |}}
- Запустите терминал на ПК. Например встроенный в Arduino IDE.{{ :продукты:troyka-ble:troyka-ble_setup.1.png?nolink |}}
- Выставьте настройки последовательного порта:
- скорость: 9600 бод
- без возврата каретки «\r»
- без новой строки «\n»{{ :продукты:troyka-ble:troyka-ble_setup.2.png?nolink |}}
- В качестве теста отправьте на модуль команду:AT
{{ :продукты:troyka-ble:troyka-ble_setup.3.png?nolink |}}В ответ вы должны получить:OK
{{ :продукты:troyka-ble:troyka-ble_setup.4.png?nolink |}}Если ответа нет — проверьте схему, не помогло — измените скорость порта на 115200 бод.
- Переведите модуль в режим ожидания прошивки. Для этого отправьте команду:AT+SBLUP
Войдя в режим ожидания прошивки светодиод PAIR на BLE-модуле должен начать светиться тусклым светом.
- Скачайте {{ :продукты:troyka-ble:hmsoft608.zip |прошивку для BLE-модуля}}.
- Запустите программу {{ :продукты:troyka-ble:hmsoft.zip |HMSoft.exe.}}{{ :продукты:troyka-ble:hmsoft.png?nolink |}}
- В окне программы
* 1. Выберите путь к файлу прошивки ''.bin'';
* 2. Введите номер COM-порта к которому подсоединен USB-UART преобразователь;
* 3. Нажмите кнопку ''Load Image''.{{ :продукты:troyka-ble:hmsoftannotation.png?nolink |}}
- Появившееся после загрузки диалоговое окно сообщает об успешной прошивке модуля{{ :продукты:troyka-ble:hmsoftcompleted.png?nolink |}}
===== Список AT-команд =====
Тестовая команда проверка связи.
^ Команда ^ Ответ ^ Параметры ^
| AT | OK | Нет |
Запросить/установить имя модуля.
^ Команда ^ Ответ ^ Параметры ^
| AT+NAME? | AT+NAME[P1] | P1: имя модуля |
| AT+NAME | OK+SET[P1] | ::: |
Запросить/установить пароль модуля.
^ Команда ^ Ответ ^ Параметры ^
| AT+PASS? | AT+PASS[P1] | P1: пароль модуля |
| AT+PASS | OK+SET[P1] | ::: |
Запросить версию прошивки модуля.
^ Команда ^ Ответ ^ Параметры ^
| AT+VERR? | HMSoft [P1] | P1: версия прошивки |
[[#Ресурсы|Перечень AT-команд]]
===== Элементы платы =====
{{ :продукты:troyka-ble:troyka-ble_annotation.png?nolink |}}
==== Мозг модуля ====
Troyka BLE основан на модуле {{:продукты:troyka-ble:hm-10_datasheet.pdf|HM-10}} с чипом {{:продукты:troyka-ble:cc2541_datasheet.pdf|CC2541}} от компании [[http://www.ti.com/|Texas Instruments]].
{{ :продукты:troyka-ble:troyka-ble_composed.png?nolink |}}
=== Чип CC2541 ===
Чип {{:продукты:troyka-ble:cc2541_datasheet.pdf|CC2541}} выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле).
=== Модуль HM-10 ===
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| RX и TX |Мигают при обмене данными между BLE модулем и управляющим устройством.|
| PAIR |Горит, если модуль сопряжён с другим устройством;\\ Мигает — нет сопряжения;|
==== Troyka-контакты ====
На Bluetooth модуле выведено две пары Troyka-контактов.
//Нижняя группа//
* Питание (V) — соедините с рабочим напряжением микроконтроллера.
* Земля (G) — Соедините с пином ''GND'' микроконтроллера.
* Сигнальный (TX) — цифровой выход BLE-модуля. Используется для передачи данных из Bluetooth в микроконтроллер. Подключите к пину ''RX'' микроконтроллера.
//Верхняя группа//
* Сигнальный (RX) — цифровой вход BLE-модуля. Используется для приёма данных из микроконтроллера в Bluetooth. Подключите к пину ''TX'' микроконтроллера.
* Сигнальный (K) — пин управления BLE-модулем. Подключите к сигнальному пину микроконтроллера.
==== Регулятор напряжения ====
Понижающий регулятор напряжения {{:продукты:troyka-ble:tps73033_datasheet.pdf|TPS73033}} с выходом 3,3 вольта, обеспечивает питание Bluetooth-модуля. Максимальный выходной ток составляет 200 мА.
На плате так же присутствует необходимая обвязка для сопряжения устройств с разными питающими напряжениями.
В нашем случае это может быть управляющая плата Arduino с 5 вольтовой логикой и BLE-модуль с 3,3 вольтовой логикой.
===== Принципиальная и монтажная схемы =====
{{:продукты:troyka-ble:troyka-ble_schematic.png?direct&460 |}}
{{:продукты:troyka-ble:troyka-ble_layout_top.png?direct&170 |}}
{{:продукты:troyka-ble:troyka-ble_layout_bottom.png?direct&170 |}}
===== Характеристики =====
* Модуль: HM-10 с чипом CC2541
* Версия Bluetooth: 4.0
* Рабочая частота: 2.4 ГГц ISM
* RF мощность: -23 dbm, -6 dbm, 0 dbm, 6 dbm
* Радиус действия: до 10 метров
* Выходной интерфейс: UART
* Настройки по умолчанию:
* имя: HMSoft
* пароль: 000000
* скорость: 9600 бод
* бит чётности: N
* количество бит данных: 8
* количество стоповых бит: 1
* без возврата каретки «\r»
* без новой строки «\n»
* Напряжение питания: 3,3–5 В
* Потребляемый ток:
* в активном режиме: до 10 мА
* в спящем режиме: до 200 мкА
* Габариты: 25,4×25,4 мм
===== Ресурсы =====
* [[amp>product/troyka-ble?utm_source=man&utm_campaign=troyka-ble&utm_medium=wiki|BLE модуль]] в магазине
* [[https://github.com/amperka/hardware-drawings/blob/master/troyka-ble_top.svg|Векторное изображение модуля (TOP)]]
* [[https://github.com/amperka/hardware-drawings/blob/master/troyka-ble_bottom.svg|Векторное изображение модуля (BOTTOM)]]
* {{:продукты:troyka-ble:hm-10_datasheet.pdf|Datasheet и список AT-команд Version V605 на BLE-модуль HM-10}}
* {{ :продукты:troyka-ble:bluetooth40_en_version_v606.pdf |Datasheet и список AT-команд Version V606 на BLE-модуль HM-10}}
* {{:продукты:troyka-ble:cc2541_datasheet.pdf|Datasheet на чип CC2541}}