Работа с Bluetooth модулем HC05

Недавно прислали этот модуль, решил попробовать его проверить.
Под катом небольшое описание, даташит, программа-терминалка и плата в формате .lay
Напряжение питания модуля: 3.3 В
Потребляяемый ток: 50 мА
Этот модуль может работать в 3-х режимах:
1) Master (или сервер) — в этом режиме модуль может сам подключиться к какому-нибудь Bluetooth девайсу.


2) Slave — в этом режиме другой мастер может подключиться к модулю.
3) Slave-loop — здесь модуль отправляет обратно все байты, которые ему прислали.

1. Режим MasterДля того, чтобы переключить BT модуль в этот режим, нужно:
1) Перевести модуль в режим приема AT команд, замкнув PIO11 на +3.3 V
2) Подключиться к UART’у модуля, настроить COM порт вот так:
Baudrate = 38400
StopBits = 1
DataBits = 8
Parity = none
Handshaking = none
И отправить ему команду:
AT+ROLE=1rn
После каждой успешно выполненной команды модуль отвечает:
OKrn
3) Подключить PIO11 к GND (автоматический режим). Модуль в режиме мастера.

1.1 Настройка автоматического подключения к BT девайсу по фиксированному адресуДля этого нужно:
1) Перевести модуль в режим приема AT команд (см. пункт 1)
2) Переключить модуль в режим подключения к устройству с фиксированным адресом при помощи команды:
AT+CMODE=0rn
Задать фиксированный адрес устройства, к которому хотим подключиться, при помощи команды:
AT+BIND=27,13,bd95e4rn
«27,13,bd95e4» — для примера, это BT адрес моего ноута.

А теперь маленькая хитрость, как наиболее простым способом узнать этот адрес?
Отправляем модулю:
AT+RMAADrn
Переключаемся в автоматический режим (см. пункт 1), модуль должен быть в режиме Slave, подключаемся к модулю тем устройством, BT адрес которого нужно узнать, отключаемся, переходим в режим АТ команд, отправляем команду:
AT+MRAD?rn
Получаем на выходе искомый адрес в виде: 27:13:bd95e4.

3) Снова возвращаемся в автоматический режим. Теперь модуль сам попытается подключиться к устройству по адресу 27:13:bd95e4.

2. SlaveДля переключения в этот режим отправим:
AT+ROLE=0rn
Если CMODE!=1, то
AT+CMODE=1rn

3. Slave LoopAT+ROLE=2rn
Если CMODE!=1, то
AT+CMODE=1rn

4. ПрочееТестовая команда:
AT
Перезагрузка:
AT+RESET
Версия:
AT+VERSION?
Сброс настроек:
AT+ORGL
Адрес модуля:
AT+ADDR?
Имя модуля:
AT+NAME=ElektroHabrrn
Получить имя BT девайса:
AT+RNAME?<АДРЕС>rn
Чтобы поменять пароль, делаем так:
AT+PSWD=1235
Настройки UART’a:
AT+UART=Baudrate,StopBit,Parity,rn
Baudrate может быть: 9600,19200,38400,57600,115200,230400,460800.
Parity == 0 == none
PIO порты:
AT+PIO=<номер порта>,<состояние 1/0>
Управлять этими портами через BT нельзя!
BT модуль запоминает адреса устройств, которые к нему когда-либо подключались, чтобы удалить какой-нибудь адрес, делаем так:
AT+PMSAD =1234,56,abcdefrn
Чтобы удалить все адреса, делаем так:
AT+RMAADrn
Чтобы посмотреть адрес наиболее часто подключаемого устройства, шлем модулю:
AT+MRAD?rn
Чтобы посмотреть, есть ли по близости девайс который модуль «запомнил», шлем модулю:
AT+FSAD=<adress>rn
Количество устройств в памяти:
AT+ADCN?rn
Состояние модуля:
AT+STATE?rn
Подключиться к какому-нибудь девайсу:
AT+LINK=1234,56,abcdefrn
Отключиться:
AT+DISC=<adress>rn

Это не все команды, я еще не разобрался с остальными.

В прикрепленном архиве программа для отправки AT команд и даташит на модуль.
Программа написана на C#, поэтому может заработает на linux с установленным Mono.

Печатку обязательно нужно отзеркалить!
Метализированные отверстия — переходные, на другой стороне платы земляная дорожка.
Резисторы и керамические конденсаторы размера 1206.
PS: Почему TL431 и 2N3904?
Потому что очень хотелось испытать этот модуль 🙂

Библиотека HC04 для Diptrace
Источник

Оставить комментарий

Вы можете использовать следующие теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>