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