ИЗГОТОВЛЕНИЕ BLOETOOTH-АДАПТЕРА ДЛЯ ГАЗОБАЛЛОННОГО ОБОРУДОВАНИЯ Digitronic на базе модуля HC-06

1. Покупка bluetooth-модуля HC-06

Модуль был куплен тут:

https://ru.aliexpress.com/item/hc-06-HC-06-RF-Wireless-Bluetooth-Transceiver-Slave-Module-RS232-TTL-to-UART-converter-and/32342784842.html?spm=a2g0s.9042311.0.0.1f9b33edt3CKDk

Работа с Bluetooth HC-05 и HC-06Bluetooth — это самый распространенный тип связи для коротких дистанций, которым пользуются большинство современных электронных устройств.

Главные достоинства 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 меняются местами.

Делитель напряжения для Bluetooth HC-06

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-порту и проверяем соединение.

После подачи питания на модуль, светодиод начнет бодро мигать:

Работа с Bluetooth HC-05. Индикатор.

Система команд модулей 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, говорят, работаю на более низкой частоте, сам не проверял, но имейте в виду.


Изменено:

 

 

                На главную страницу                     На страницу Мое Авто