Bluetooth — это самый распространенный тип связи для коротких дистанций, которым пользуются большинство современных электронных устройств.
Главные достоинства BT - хорошая устойчивость к широкополосным помехам и простота реализации. Данный модуль в состоянии поставки передает данные на скорости 9600, нам нужно 57600. На просторах интернета узнал, что для перепрошивки проще всего испольвать Ардуино:
2. Подключение к Ардуино Уно
Ног не так много, так что запутаться не получится. Подключаем к bluetooth к Arduino Uno следующим образом:
Bluetooth | GND | VCC | TXD | RXD |
Ардуино Уно | GND | +5V | 10 | 11 |
TX и RX подключаем к GPIO ногам 10 и 11, так как аппаратный UART на ногах 0 и 1 будет занят общением с компьютером.
3. Сопряжение уровней напряжения
Малая платка Bluetooth модуля имеет напряжение логики 3.3 Вольта. А это значит, что Ардуино Уно может либо вывести ее из строя, либо просто неправильно передавать сигналы.
Поэтому нужно поставить, как минимум, на линию Ардуино TX — BT RX делитель напряжения для согласования (снижения напряжения) логических уровней. Я поставил делители в обеих линиях, т.к. для некоторых моделей ГБО линии Rx и Tx меняются местами.
4. Подготовка Arduino
Для того чтобы начать настройку, нам потребуется зашить в Ардуино вспомогательный скетч. По-сути — программу ретранслятор, которая будет осуществлять обмен данными между терминалом на компьютере и Bluetooth модулем. Программа крайне проста:
#include <SoftwareSerial.h> #include <Time.h> int gLedPin = 13; int gRxPin = 10; int gTxPin = 11; SoftwareSerial BTSerial(gRxPin, gTxPin); void setup() { BTSerial.begin(9600); Serial.begin(9600); delay(500); } void loop() { if (BTSerial.available()) { Serial.write(BTSerial.read()); } if (Serial.available()) { BTSerial.write(Serial.read()); } }
Загружаем скетч на Ардуино и переходим к следующему шагу.
5. Подготовка терминала
В качестве терминала можно использовать встроенный в Arduino IDE монитор порта, а можно любой другой. Я использовал встоенный монитор. Для данного модуля с прошивкой Linvor1.8 в настройках монитора требуется выбрать "без конца строки".
Когда все правильно настроено, подключаемся к COM-порту и проверяем соединение.
После подачи питания на модуль, светодиод начнет бодро мигать:
Система команд модулей HC-06 содержит всего пять AT-команд:
AT, AT+VERSION, AT+BAUDx, AT+NAMEstring, AT+PINxxxx
Теперь открываем монитор и пишем команду: AT
В ответ, модуль нам должен сказать: OK
Следующая наша команда запросит у модуля его версию: AT+VERSION
Получаем что-то вроде такого: OKLinvor1.8
6. Перепрошивка
У данного Bluetooth модуля есть три параметра для настройки:
- команда смены пароля на устройстве: AT+PIN<пароль>
- смена скорости: AT+BAUD<скорость>
- смена имени устройства: AT+NAME<имя>
Например, для смены пароля пишем: AT+PIN4567
А для смены имени пишем, например: AT+NAME DIGITRONIC
Нам необходимо изменить скорость передачи данных, вводим команду:
AT+BAUD7 , в ответ получаем OK
Если попытаться после этого ввести еще какие-либо команды, ответа не будет, ведь модуль уже работает на частоте 57600 , а Ардуино на частоте 9600.
7. Проверка связи
В принципе все, можно полноценно работать с этим адаптером. Я еще, чтобы сразу проверить работоспособность - а именно способность связи на частоте 57600 -
изменил в ардуиновском скетче скорость обмена между Ардуино и модулем HC06 на 57600 и перезалил в Ардуино:.
#include <SoftwareSerial.h> #include <Time.h> int gLedPin = 13; int gRxPin = 10; int gTxPin = 11; SoftwareSerial BTSerial(gRxPin, gTxPin); void setup() { BTSerial.begin(57600); Serial.begin(57600); delay(500); } void loop() { if (BTSerial.available()) { Serial.write(BTSerial.read()); } if (Serial.available()) { BTSerial.write(Serial.read()); } }
Теперь открываем монитор и пишем команду: AT
В ответ, модуль нам должен сказать: OK
Готово! Теперь можно соединиться с модулем, например, со смартфона, проверить связь на радиочастоте.
8. Собственно сборка
Если связь со смартфоном в норме, паяем адаптер как на схеме ниже:
Я использовал кусок макетной платы и потом сверху термоусадочную трубку:
Проверена работоспособность с ГБО Digitronic Maxi2 - работает хорошо. Старые модели ГБО Digitronic, говорят, работаю на более низкой частоте, сам не проверял, но имейте в виду.
Изменено: