At 09 bluetooth подключение
Часто из-за программного обеспечения эти модули работают не так, как от них ожидают:
- они имеют урезанный функционал;
- AT-команды ограничены, а существующие не всегда работают должным образом;
- но самой большой проблемой, из-за которой написана эта статья, является невозможность подключения со смартфонов Android или IOS.
В этой статье будет описано то, как перепрошить модули на базе CC2541 (MLT-BT05, HM-10, CC41-A, MLT-BT05, AT-09 и т.п.) для последующего беспроблемного использования.
Аппаратные средства
Как правило, вы должны купить «CC отладчик» от TI для прошивки CC2541 чипов, но также можно использовать Arduino в качестве программатора. Для прошивки MLT-BT05, AT-09 на базе CC2541 вам необходимо:
- Arduino (Arduino UNO, Arduino Pro Mini, Arduino Nano и т. д.);
- Преобразователь USB в TTL для подключения Arduino к ПК (в случае Arduino Pro Mini или аналогичного);
- Плата CC2541: HM-10, CC41-A, MLT-BT05, AT-09;
- Несколько проводков;
- Паяльник.
Программные средства
- Arduino IDE;
- CCLoader Arduino sketch;
- Программа CCloader для Windows;
- Прошивка HM-10.
Подготовка CCLoader
После того, как вы скачали архив, вам необходимо распаковать его. Лучше всего это сделать на диске C:\, должно выглядеть так:
Для того, чтобы не возникли проблемы во время прошивки, нужно скопировать содержимое папок Bin и Windows в одну общую. В моём случае это выглядит следующим образом:
Прошивка Arduino Uno
Вам необходимо загрузить скетч CCloader (C:\CCLoader-master\Arduino\CCLoader\CCLoader.ino) на свой Arduino, используя Arduino IDE.
- Откройте скетч с помощью Arduino IDE;
- Проверьте правильность параметров в меню Инструменты: плата, процессор, ком-порт;
- Загрузить скетч на Arduino.
Подключение MLT-BT05/AT-09/HM-10 к Arduino
Теперь вам нужно подключить плату MLT-BT05/AT-09/HM-10 к Arduino следующим образом:
Имя вывода | CC2541 | Arduino |
---|---|---|
DEBUG_CLOCK | Pin 7 (P2_2) | Pin 5 |
DEBUG_DATA | Pin 8 (P2_1) | Pin 6 |
RESET_N | Pin 11 (RSTB) | Pin 4 |
VCC | 3.3 В | 3.3 В |
GND | GND | GND |
Будьте осторожны, чип CC2541 не толерантен к 5 Вольтам, а напряжение на любом из цифровых выводов не должно превышать 3.9 В.
Если присутствует адаптер ZS-040, что содержит в себе стабилизатор напряжения на 3.3В, можете использовать 5 В Arduino для питания платы. Если вы используете 5 В arduino, вам нужен преобразователь уровней для всех трёх линий (DEBUG_CLOCK, DEBUG_DATA и RESET_N) или использовать модель Arduino на 3.3 В.
В моём случае выгладит следующим образом:
всё подключено на прямую, но так делать не рекомендуется.
Прошивка
Теперь все готово, вы можете записать прошивку HM-10 с помощью CCloader.exe или CCLoader_x86_64.exe.
Откройте командную строку и перейдите в папку, где находится CCloader.exe (cd /d C:/CCLoader-master);
Чтобы вывести справочную информацию (о том, как пользоваться), напишите и выполните эту команду в командной строке:
Приобрел на AliExpress модуль Bluetooth AT-09 с целью управления машинкой с iPhone 8.
Bluetooth AT-09 |
Модуль пришел "пустой". Пришлось потратить немало времени в поисках методики прошивки. По ходу работы делал фотографии. Программное обеспечение найдено в Интернете (на авторство не претендую)..
Рассмотрим поэтапно процесс прошивки.
В первую очередь необходимо подготовить сам модуль.
Срезаем защитную пленку
Подпаиваемся к следующим выводам (либо напрямую провода) - я же припаял срезанные ножки от разъемов
Использовал Arduino UNO и для удобства shield под имеющиеся провода (можно подключаться напрямую к Arduino).
Подключаемся к портам 4,5,6 (желтый, синий, зеленый) и питание (белый черный).
Модуль готов для прошивки.
Загрузить с сайта архив с необходимыми файлами iOS BT HM-10 CC2445
В архиве находится три файла:
CCLoader.ino - скетч для Arduino UNO
CCLoader.exe - программа для прошивки
CC2541hm10v540.bin - сама прошивка
Использовал Arduino IDE 1.8.9 (последняя версия на текущий период)
Пользуюсь Total Commander для удобства (можно использовать любые другие программы).
Для удобства (чтобы не переходить командами DOS по папкам) - скопировал необходимые файлы в начальную папку моей учетки
Для запуска командной строки необходимо нажать "Пуск" и набрать в поиске cmd.exe
Далее наберите наименование программы для прошивки CCLoader.exe
Программа выводит подсказку CCLoader.exe <COM порт к которому подключен Arduino> <файл прошивки> <устройство - в нашем случае UNO>
В моем случае Arduino UNO подключен к 6 COM порту. Набираем необходимые данные и ждем .
Модуль готов к работе (мигает светодиод).
Хочу отметить, что сам телефон модуль не видит (в моем случае iPhone 8). Загружаем сторонний софт - сканируем и подключаемся. Например BLE Scanner - если нужно узнать параметры.
Возьмите BLE-модуль и управляйте вашими девайсами с помощью телефона на базе операционной системы Android и iOS. Синезуб также поможет создать псевдо-сеть между своими собратьями. А благодаря технологии Web Bluetooth API работа с модулем доступна прямо из окна браузера.
Видеообзор
Подключение и настройка
Bluetooth LOW Energy (BLE) общается с управляющей электроникой по интерфейсу UART.
Синезуб может работать в двух режимах:
Slave — модуль ожидает подключение от другого Bluetooth устройства. Например телефон или такой же BLE-модуль. Master — модуль сам инициирует подключение к другим устройствам.Рассмотрим оба варианта подробнее.
Режим Slave «Ведомый»
Модуль ожидает сопряжение от другого Bluetooth устройства. В качестве примера рассмотрим подключение смартфона к BLE-модулю. Со стороны последовательного порта возьмём USB-UART преобразователь.
Схема устройства
Подключите BLE-модуль к USB-UART преобразователю.
Настройка модуля
Для начала необходимо настроить Bluetooth через AT-команды.
AT-команды служат для настройки модуля, например:
В ответ вы должны получить:
Если ответа нет — проверьте схему, не помогло — перепрошейте модуль.
Настройка телефона с ОС Android
Это значит всё получилось и можно передавать данные в обоих направлениях.
Настройка телефона с ОС iOS
Это значит всё получилось и можно передавать данные в обоих направлениях.
Передача данных
Вместо USB-UART адаптера возьмите любую управляющую платформу. Например Arduino Uno или Iskra JS. Для общение используйте интерфейс UART .
Режим Master «Ведущий»
Модуль сам инициирует подключение к другим устройствам. В качестве примера возьмём два модуля Troyka BLE. Один будет ведущим, а другой ведомым. Со стороны последовательных портов возьмём два USB-UART преобразователя.
Схема устройств
Подключите каждый BLE-модуль к USB-UART преобразователю.
- Рабочая частота: 2.4 GHz
- Интерфейс: UART
- Напряжение питания: 3.6.. 6V
- Ток потребления: 5 мА в режиме поиска,
Официальную документацию на JDY-31 можно открыть по ссылке .
Индикация состояния подключения:
- Ожидание
- Светодиод мигает
- Пин STATE: LOW
- Светодиод горит постоянно
- Пин STATE: HIGH
Подключение
Модуль подключается к питанию и цифровым пинам МК:
- JDY-31 > Arduino
- GND > GND
- VCC > 5V
- RX > Serial TX
- TX > Serial RX
- Опционально можно подключить EN на любой цифровой пин для отслеживания состояния подключения.
При таком подключении:
- Модуль будет мешать загрузке прошивки (она загружается по RX TX), на момент загрузки нужно отключить провода от пинов RX и TX Arduino
- С модулем можно общаться при помощи штатного Serial, фактически он будет дублировать монитор COM порта
На следующих двух схемах я подключил модуль к любым двум цифровым пинам Arduino:
Подключение к Bluetooth
Windows
Для работы на компьютере у вас должен быть Bluetooth адаптер. Заходим в панель управления, добавляем Bluetooth устройство, вводим пин 1234 для сопряжения:
После этого в Arduino IDE появится ещё один COM порт. Загрузим следующий пример, который просто выводит в порт строчку со счётчиком. Модуль подключен к аппаратному UART.
Откроем Bluetooth порт и увидим вывод:
Точно таким же образом можно подключиться к Arduino из своей программы, написанной например на Processing или Python. У меня есть уроки по этой теме:
Android
Для теста на Android я использую приложение Serial Bluetooth Terminal. Сопрягаемся с паролем 1234, заходим в программу, открываем настройки слева, Devices, выбираем JDY-31 и подключаемся (кнопка со штекером в левом правом углу экрана. Модуль подключен к аппаратному Serial, на Arduino прошит код, отправляющий принятые данные обратно в Serial (эхо):
SoftwareSerial
В качестве примера подключим модуль по второй схеме (на пины D2 и D3) и загрузим простую программу, которая будет пересылать данные с программного Serial (на пинах D2 и D3, Bluetooth) на аппаратный (который мы можем смотреть через монитор порта в Arduino IDE):
Откроем терминал и монитор порта и можем общаться с компьютером, Arduino выступает в роли посредника и перекидывает данные с Bluetooth на USB и наоборот:
Точно так же можно использовать SoftwareSerial для программ и приложений, если аппаратный UART на Arduino нужен для других целей.
Настройка JDY-31, AT команды
Рассмотрим также настройку самого JDY-31, делается это при помощи AT-команд:
- Чтобы модуль отвечал на команды, он должен находиться в режиме ожидания подключения (светодиод мигает)
- Загружаем в Arduino пустую программу (Файл/Новый). Либо любую другую, в которой не задействован Serial. Либо подключаем пин RST к GND, чтобы микроконтроллер не запустился и нам не мешал
- Подключаем JDY-31 на RX TX Arduino (аппаратный Serial) наоборот: TX > TX, RX > RX
- Открываем монитор порта, ставим текущую скорость модуля (по умолчанию 9600 бод), конец строки NL & CR
Какие ещё есть команды? Полный список есть в документации, давайте разберём:
Читайте также: