At 09 bluetooth подключение

Обновлено: 03.07.2024

Часто из-за программного обеспечения эти модули работают не так, как от них ожидают:

  • они имеют урезанный функционал;
  • AT-команды ограничены, а существующие не всегда работают должным образом;
  • но самой большой проблемой, из-за которой написана эта статья, является невозможность подключения со смартфонов Android или IOS.

В этой статье будет описано то, как перепрошить модули на базе CC2541 (MLT-BT05, HM-10, CC41-A, MLT-BT05, AT-09 и т.п.) для последующего беспроблемного использования.

Аппаратные средства

Как правило, вы должны купить «CC отладчик» от TI для прошивки CC2541 чипов, но также можно использовать Arduino в качестве программатора. Для прошивки MLT-BT05, AT-09 на базе CC2541 вам необходимо:

  1. Arduino (Arduino UNO, Arduino Pro Mini, Arduino Nano и т. д.);
  2. Преобразователь USB в TTL для подключения Arduino к ПК (в случае Arduino Pro Mini или аналогичного);
  3. Плата CC2541: HM-10, CC41-A, MLT-BT05, AT-09;
  4. Несколько проводков;
  5. Паяльник.

Программные средства

  1. Arduino IDE;
  2. CCLoader Arduino sketch;
  3. Программа CCloader для Windows;
  4. Прошивка HM-10.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - CCLoader

Подготовка CCLoader

После того, как вы скачали архив, вам необходимо распаковать его. Лучше всего это сделать на диске C:\, должно выглядеть так:

Для того, чтобы не возникли проблемы во время прошивки, нужно скопировать содержимое папок Bin и Windows в одну общую. В моём случае это выглядит следующим образом:

Прошивка Arduino Uno

Вам необходимо загрузить скетч CCloader (C:\CCLoader-master\Arduino\CCLoader\CCLoader.ino) на свой Arduino, используя Arduino IDE.

  1. Откройте скетч с помощью Arduino IDE;
  2. Проверьте правильность параметров в меню Инструменты: плата, процессор, ком-порт;
  3. Загрузить скетч на Arduino.

Подключение MLT-BT05/AT-09/HM-10 к 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 В.

Делитель напряжения

Двунаправленный преобразователь логического уровня (Logic Level Converter)

В моём случае выгладит следующим образом:

Подключение MLT-BT05,AT-09,HM-10 к Arduino

всё подключено на прямую, но так делать не рекомендуется.

Прошивка

Теперь все готово, вы можете записать прошивку HM-10 с помощью CCloader.exe или CCLoader_x86_64.exe.

Откройте командную строку и перейдите в папку, где находится CCloader.exe (cd /d C:/CCLoader-master);

Чтобы вывести справочную информацию (о том, как пользоваться), напишите и выполните эту команду в командной строке:

Приобрел на AliExpress модуль Bluetooth AT-09 с целью управления машинкой с iPhone 8.

Bluetooth AT-09
Bluetooth AT-09

Модуль пришел "пустой". Пришлось потратить немало времени в поисках методики прошивки. По ходу работы делал фотографии. Программное обеспечение найдено в Интернете (на авторство не претендую)..

Рассмотрим поэтапно процесс прошивки.

В первую очередь необходимо подготовить сам модуль.

Bluetooth AT-09

Срезаем защитную пленку

Bluetooth AT-09

Подпаиваемся к следующим выводам (либо напрямую провода) - я же припаял срезанные ножки от разъемов

Bluetooth AT-09

Использовал Arduino UNO и для удобства shield под имеющиеся провода (можно подключаться напрямую к Arduino).

Подключаемся к портам 4,5,6 (желтый, синий, зеленый) и питание (белый черный).

Bluetooth AT-09
Bluetooth AT-09
Bluetooth AT-09

Модуль готов для прошивки.

Загрузить с сайта архив с необходимыми файлами iOS BT HM-10 CC2445

В архиве находится три файла:

CCLoader.ino - скетч для Arduino UNO

CCLoader.exe - программа для прошивки

CC2541hm10v540.bin - сама прошивка

Использовал Arduino IDE 1.8.9 (последняя версия на текущий период)

Arduino IDE 1.8.9

Пользуюсь Total Commander для удобства (можно использовать любые другие программы).

Для удобства (чтобы не переходить командами DOS по папкам) - скопировал необходимые файлы в начальную папку моей учетки

Total Commander

Для запуска командной строки необходимо нажать "Пуск" и набрать в поиске cmd.exe

Далее наберите наименование программы для прошивки CCLoader.exe

CCLoader.exe

Программа выводит подсказку CCLoader.exe <COM порт к которому подключен Arduino> <файл прошивки> <устройство - в нашем случае UNO>

В моем случае Arduino UNO подключен к 6 COM порту. Набираем необходимые данные и ждем .

CCLoader.exe

Модуль готов к работе (мигает светодиод).

Хочу отметить, что сам телефон модуль не видит (в моем случае 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-команды служат для настройки модуля, например:


Запустите терминал на ПК. Например встроенный в Arduino IDE или Putty.


без новой строки «\n»


В ответ вы должны получить:


Если ответа нет — проверьте схему, не помогло — перепрошейте модуль.

Настройка телефона с ОС Android


Скачайте и установите приложение Serial Bluetooth Terminal.


Запустите приложение.


Зайдите в меню: Настройки ≡ Devices и нажмите кнопку SCAN .


Выберите по имени интересующий BLE-модуль. По умолчанию имя модуля — HMSoft. Вернитесь в главное меню и соединитесь с выбранным девайсом — нажмите на кнопку connect


В окне терминала телефона появится надпись Connected ;


В окне терминала на ПК вернётся команда AT+CONN ;

Это значит всё получилось и можно передавать данные в обоих направлениях.

Настройка телефона с ОС iOS


Скачайте и установите приложение HM10 Bluetooth Serial Lite.


Запустите приложение.


Нажмите на кнопку Connect для поиска новых Bluetooth устройств.


Выберите по имени интересующий BLE-модуль и нажмите кнопку Connect . По умолчанию имя модуля — HMSoft.


В окне терминала телефона появится надпись сопряжённого BLE-устройства;


В окне терминала на ПК вернётся команда AT+CONN ;

Это значит всё получилось и можно передавать данные в обоих направлениях.

Передача данных

Вместо 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

    Какие ещё есть команды? Полный список есть в документации, давайте разберём:

    Читайте также: