Новичкам        08.04.2024   

Управление по bluetooth. Уроки Arduino: управление устройствами со смартфона для чайников Подключение блютуз модуля к ардуино due

Мы заняты разработкой приложения под Android для управления нагрузками на Arduino. Но, как вы все понимаете, просто там одно к другому не подключишь - нужен канал связи, а какой у нас самый доступный и дешманский канал? Конечно же bluetooth! О нём дальше и пойдёт речь.
Сегодня решаем производственные вопросы - подключаем Bluetooth модуль HC-06. Его главное отличие от HC-05 в том, что он урезан и предоставляет только необходимый минимум возможностей.

В целом, HC-06 можно рассматривать как беспроводной удлинитель UART. Поскольку мы подключаясь к нему с ПК через Bluetooth видим его как COM порт и подключаясь к контактам мы имеем чистый UART. Практически всё, что идёт с одной стороны - выходит с другой. За исключением AT команд со стороны контактов.

AT команды - это наследие старых модемов ещё из 1977 года. Представляют они из себя короткие строковые команды, например «AT», «AT-NAME», «AT-PIN». Обычно ввод команды завершается клавишей Enter. Но в этот раз всё немного иначе, и команда целиком должна быть получена, примерно, в течение одной секунды. По этой причине, для настройки нам не подойдут программы позволяющие писать напрямую с клавиатуры в порт (можно попробовать из буфера обмена, но есть шанс на облом). Нам нужна возможность послать по сигналу строку целиком.

Вооружившись COM Port Toolkit , мы выставляем скорость в 9600 и соответствующий номер порта. Далее готовим первую строку «AT». Отправляем и получаем на неё ответ «OK». Это уже хороший знак. Мы не перепутали RX и TX и не ошиблись со скоростью. Дальше вам наверняка захочется дать своё название модулю. Пишем: «AT-NAMEhome» и получаем в ответ что-то типа «OKhome». Меняем код доступа так: «AT-PIN010203», и получаем: «OKsetpin»
Ну что же. На этом начальная настройка закончена.

Не пропустите обновления! Подписывайтесь на нашу группу

Обзор модуля Bluetooth HC-05

Контроллер Arduino не поддерживают беспроводную связь, а часто это просто необходимо. Например, удаленное управление роботом на Arduino, отправка данных с метеостанции на арудино в Интернет или на домашний сервер, связь нескольких устройств между собой. Здесь в помощь разработчикам устройств множество внешних модулей для организации различных технологий беспроводной связи: модули WiFi, GSM/GPRS, IR, Bluetooth, радиомодули для работы в различных частотных диапазонах.

Технология Bluetooth используется для передачи данных между двумя устройствами, которые находятся в непосредственной близости друг с другом, причем необязательна прямая видимость. Технология Bluetooth обеспечивает хорошую устойчивость к широкополосным помехам, что позволяет множеству устройств, находящихся в одном месте, одновременно общаться между собой, не мешая друг другу. Очень широко данная технология используется в телефонах, планшетах, ноутбуках.

Одно из лучших решений для организации двусторонней связь по Bluetooth вашего Arduino-устройства с планшетом, ноутбуком или другим Bluetooth-устройством – Bluetooth-модуль HC-05 , который может работать как master (осуществлять поиск Bluetooth-устройств и инициировать установку связи), так и slave (ведомое устройство).

Технические характеристики модуля HC05

  • Чип Bluetooth: HC-05(BC417143)
  • Диапазон частот радиосвязи: 2,4–2,48 ГГц
  • Мощность передачи: 0,25–2,5 мВт
  • Чувствительность: –80 dBм
  • Напряжение питания: 3,3–5 В
  • Потребляемый ток: 50 мА
  • Радиус действия: до 10 метров
  • Интерфейс: последовательный порт
  • Режимы: master, slave
  • Температура хранения: –40…85 °C
  • Рабочий диапазон температур: –25…75 °C
  • Габариты: 27 x 13 x 2,2 мм

Подключение

Датчик имеет 6 выводов стандарта 2,54 мм:

  • VCC - (питание 3,6 – 6 В);
  • GND - (земля).
  • TXD, RXD - UART интерфейс;
  • STATE - индикатор состояния;
  • KEY - контакт для входа в режим программирования.

Настройка модуля осуществляется в режиме программирования отправкой AT-команд по последовательному порту. Для входа в режим программирования необходимо подать на контакт KEY сигнал высокого уровня. На некоторых модулях контакт KEY отсутствует, и вместо него контакт EN:

  • EN - включение/выключение модуля;


В этом случае для входа в режим программирования необходимо подать сигнал высокого уровня на контакт 34:


Для модуля к плате Arduino по последовательному порту будем использовать со сторону Arduino программный UART. Схема подключения на рисунке:


Получить должны примерно следующие:


Программирование модуля Bluetooth HC05

Настройка модуля осуществляется в режиме программирования отправкой AT-команд по последовательному порту. Подключим модуль HC05 к плате Arduino по схеме соединений на рисунке 5. На контакт KEY модуля (или вывод 34 платы) подадим 3.3В. AT-команды будем отправлять из монитора последовательного порта Arduino IDE. Загрузим в Arduino скетч из листинга 1. Нам понадобится Arduino-библиотека SoftwareSerial. Скорость UART модуля в режиме программирования 38400 бод, но может и отличаться, в этом случае следует подобрать.

Include SoftwareSerial mySerial(2, 3); // указываем пины rx и tx соответственно void setup() { pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); mySerial.begin(38400); Serial.println("start prg"); } void loop() { if (mySerial.available()) { char c = mySerial.read(); // читаем из software-порта Serial.print(c); // пишем в hardware-порт } if (Serial.available()) { char c = Serial.read(); // читаем из hardware-порта mySerial.write(c); // пишем в software-порт } }

После загрузки скетча откроем монитор последовательного порта Arduino IDE и начнем отправлять AT-команды:


Список основных AT-команд:

  • AT - тестовая команда.

Параметров нет.

Ответ модуля: OK

  • AT+VERSION? - получить версию прошивки модуля.

Параметров нет.

Ответ модуля: +VERSION:

где Версия прошивки Bluetooth-модуля.

  • AT+RESET - сброс настроек.

Параметров нет.

Ответ модуля: OK

  • AT+ORGL - установка пользовательских настроек модуля.

Параметров нет.

Ответ модуля: OK

  • AT+ADDR? - получить адрес модуля.

Параметров нет.

Ответ модуля: +ADDR:

где Адрес Bluetooth-модуля NAP: UAP: LAP.

  • AT+NAME? - получить имя модуля.

Параметров нет.

Ответ модуля: +NAME:

где Имя Bluetooth-модуля.

  • AT+NAME=Установить новое имя модуля.

Параметр: Имя Bluetooth-модуля.

Ответ модуля: +NAME:

OK (или FAIL)

  • AT+PSWD? - получить пин-код доступа к Bluetooth-модулю.

Параметров нет.

Ответ модуля: + PSWD:

где Пин-код. По умолчанию 1234.

  • AT+PSWD=Установить код доступа к Bluetooth-модулю.

Параметр: Код доступа к модулю.

Ответ модуля: OK (или FAIL)

  • AT+CLASS=Установить режим работы модуля Bluetooth-модуля.

Параметр: Класс. В документации модуля не приведены возможные значения данного параметра. По умолчанию он установлен в 0. Если предполагается использовать модуль в режиме master, значение не надо изменять. Если использовать модуль в режиме slave, при значении параметра, равном 0, он невидим для устройств с операционной системой Android. Для видимости необходимо установить значение параметра равным 7936.

Ответ модуля: OK

  • AT+CLASS? - получить класс модуля.

Параметров нет.

Ответ модуля: +CLASS:

где Класс модуля.

  • AT+IAC - получить код доступа к запросу GIAC (General Inquire Access Code).

Различным физическим каналам связи, исполь­зуемым в процессе установления соединения, соответствуют различные коды доступа к каналам. В каналах опроса, за исключением выделенных, используется одинаковый для всех устройств общий код доступа к запросу.

Параметров нет.

Ответ модуля: + IAC:

где Код доступа к запросу.

  • AT+IAC=Установить код доступа к запросу.

Параметр: Код доступа к запросу. Значение по умолчанию 9e8b33.

Ответ модуля: OK (или FAIL)

  • AT+ROLE? - получить режим работы модуля.

Параметров нет.

Ответ модуля: +ROLE:

где Режим работы модуля Bluetooth-модуля:

  • 0 - slave. В этом режиме другой мастер может подключиться к модулю;
  • 1 - master. В этом режиме модуль может сам подключиться к какому-нибудь Bluetooth-устройству;
  • 2 - slave-loop. Модуль отправляет обратно все байты, которые ему прислали.
  • AT+ROLE=Установить режим работы Bluetooth-модуля.

Параметр: Режим работы Bluetooth-модуля:

  • 0 - slave;
  • 1 - master;
  • 2 - slave-

Ответ модуля: OK

  • AT+UART=,,Установить модуль для последовательного порта.

Параметры:

  • Стоп-бит:
  • 0 - нет;
  • 1 - есть;
  • Бит паритета:
  • 0 - нет;
  • 1 - есть.

Ответ модуля: OK (или FAIL).

  • AT+UART? - получить параметры обмена модуля.

Параметров нет.

Ответ модуля: +UART:,,

  • Скорость обмена (9600,19200,38400,57600,115200);
  • Стоп-бит;
  • Бит паритета.
  • AT+CMODE=Установить режим подключения Bluetooth-модуля.

Параметр:

  • 2 - режим slave-loop.

Ответ модуля: OK

  • AT+CMODE? - получить режим подключения модуля.

Параметров нет.

Ответ модуля: +CMODE:

где Режим подключения Bluetooth-модуля:

  • 0 - модуль может подключаться только к определенному командой AT+BIND Bluetooth-устройству;
  • 1 - модуль может подключаться к любому Bluetooth-устройству;
  • 2 - режим slave-loop.
  • AT+INQM=,,Установить параметры для запроса поиска Bluetooth-устройств.

Параметры:

  • :
  • 0 - стандартный режим запроса;
  • 1 - запрос в режиме RSSI;
  • Максимальное количество устройств, отвечающих на запрос;
  • Таймаут ожидания (1–48: от 1,28 сек до 61,44 сек).

Ответ модуля: OK (или FAIL).

  • AT+INQM? - получить параметры для запроса поиска Bluetooth-устройств.

Параметров нет.

Ответ модуля: +UART:,,

  • AT+INQ - запуск поиска Bluetooth-устройств.

Параметров нет.

Ответ модуля - список найденных устройств.

  • AT+BIND=Привязать Bluetooth-модуль к другому модулю.

Ответ модуля: OK (или FAIL).

  • AT+BIND? - получить адрес устройства, привязанного к Bluetooth-модулю.

Параметров нет.

Ответ модуля: Адрес устройства, привязанного к Bluetooth-модулю.

  • AT+FSAD=

    Ответ модуля: OK (или FAIL).

    • AT+RMSAD=

      Ответ модуля: OK (или FAIL).

      • AT+RMAAD - очистить список авторизированных устройств для нашего Bluetooth-модуля.

      Ответ модуля: OK (или FAIL).

      • AT+LINK=Соединиться с Bluetooth-устройством.

      Параметр: Адрес Bluetooth-устройства.

      Ответ модуля: OK (или FAIL).

      Полный список AT-команд можно найти .

      Пример использования

      Рассмотрим пример получения на Android-устройстве (телефон, смартфон, планшет) данных влажности воздуха и температуры с датчика DHT11, подключенного к Arduino. Arduino каждые 10 секунд получает данные с датчика DHT11 и отправляет их через модуль HC05 на Android-устройство.

      Нам понадобятся следующие детали:

      • плата Arduino
      • плата прототипирования
      • датчик DHT11
      • модуль Bluetooth HC05
      • соединительные провода
      • Телефон или планшет но ОС Android

      Соберем схему, показанную на рисунке:


      Получаем:


      Загрузим на плату Arduino скетч (смотрите ниже) – получение данных влажности и температуры с датчика DHT11 и выдача данных в последовательный порт (hardware) через модуль HC05 на Android-устройство.

      H" // константы #define DHTPIN 8 // пин подключения контакта DATA #define DHTTYPE DHT11 // датчик DHT 11 #define INTERVAL_GET_DATA 2000 // интервала измерений, мс // создание экземпляра объекта DHT DHT dht(DHTPIN,DHTTYPE); // переменная для интервала измерений unsigned long millis_int1=0; int pos=0; // подключение библиотеки SoftwareSerial.h #include SoftwareSerial mySerial(2, 3); // указываем пины rx и tx соответственно void setup() { Serial.begin(9600); // запуск последовательного порта mySerial.begin(9600); dht.begin(); // запуск DHT Serial.println("start prg"); } void loop() { if(millis()-millis_int1 >= INTERVAL_GET_DATA) { pos=1-pos; if(pos==0) { // получение данных влажности c DHT11 int humidity = dht.readHumidity(); // вывод в монитор последовательного порта Serial.print("humidity=");Serial.println(humidity); mySerial.print("H=");mySerial.println(humidity); } else { // получение данных влажности c DHT11 int temp = dht.readTemperature(); // вывод в монитор последовательного порта Serial.print("temperature=");Serial.println(temp); mySerial.print("T=");mySerial.println(temp); } // старт интервала отсчета millis_int1=millis(); } }

      Проверим на Android-устройстве получение данных, отправляемых Arduino через bluetooth-модуль HC05. На Android-устройчстве установим программу Bluetooth Terminal. В программе установим соединение с модулем HC05:


      И наблюдаем прием данных, поступающих из Arduino через модуль HC05:


      И выдача данных в монитор последовательного порта Arduino IDE:


      Часто задаваемые вопросы FAQ

      1. На AT-команды нет ответа модуля
      • Проверьте правильность подключения модуля;
      • Проверьте подключения контакта KEY модуля (или вывода 34) к 3,3В;
      • Проверьте установленные параметры для последовательного порта (скорость 38400 бод, может у модулей разных производителей отключаться).
      2. Android-устройство не может подключиться к bluetooth-модулю HC05
      • Проверьте подключение модуля к питанию, должно быть быстрое мигание светодиода на модуле (поиск сети);
      • Проверьте отключение контакта KEY модуля (или вывода 34) от 3,3В;
      • Установите AT-командами роль slave (AT+ROLE=0).
      3. Не передаются данные на Android-устройство
      • Проверьте правильность подключения bluetooth-модулю HC05 к плате Arduino;
      • Скорость обмена данными Arduino и HC05 должна соответствовать установленной с помощью AT-команды AT+UART.

      В настоящее время в зарубежных и отечественных магазинах можно найти большое количество различных Bluetooth Serial модулей для DIY-устройств. Цена на них не сильно высока: 5-10$ за модуль (с учетом бесплатной доставки в любую страну). Их легко можно найти на широко известной площадке AliExpress введя в поисковую строку одно из словосочетаний: Bluetooth RS232, Bluetooth Serial, HC-03, HC-04, HC-05, HC-06 или нажать на эту ссылку .

      В большинстве модулей используется чип BC417, плюс Flash-память. Чип поддерживает спецификацию Bluetooth v2.0 + EDR, AT-команды, может работать в режиме Master или Slave (модули HC-03/HC-5, может устанавливаться AT-командой), поддерживает скорость обмена от 2400 до 1382400.
      Напряжение питание модуля составляет 3.3В, ток потребления ~50мА.
      Модули HC-03/HC-05 более функциональные, чем HC-04/HC-06.

      Основные выводы модулей HC-04/HC-06:
      UART_TX (pin 1), UART_RX (pin 2), UART_CTS (pin 3), UART_RTS (pin 4) - пины UART.
      3,3V (pin 12) - питание 3.3В.
      GND (pin 13) - общий.
      PIO1 (pin 24) - индикатор рабочего режима. Если соединение не установлено - то светодиод мигает, если установлено, то постоянно горит.

      Для модулей HC-03/HC-05 есть некоторые отличия. Линии UART и питания те же самые, но:
      PIO8 (pin 31) - индикатор рабочего режима.
      PIO9 (pin 32) - статус соединения, если соединение установлено, то на выходе будет высокий уровень.
      PIO11 (pin 34) - вход включения режима AT-команд (необходимо подать лог. 1).

      За более подробной документацией обращайтесь к PDF .

      Итак, соберем простую схему для подключения Bluetooth модуля HC-06 к плате Arduino Nano V3.

      Обратите внимание, что выводы TX и RX в плате Arduino Nano поменяны местами в отличии от Ardunio UNO и др. Поэтому внимательно смотрите распиновку своей Arduino платы.

      Шаг между выводами в модуле составляет всего 1.5мм, поэтому придется взяться за паяльник и припаять провода к модулю. Всего необходимо припаять 5 проводов, однако светодиод подключать необязательно, он служит для индикации состояния.

      Итак припаиваем провода и подключаем Bluetooth модуль следующим образом:
      вывод Arduino 3.3В - к 12 пину модуля
      вывод Arduino GND - к 13 пину модуля
      вывод Arduino TX - к 2 пину модуля RX
      вывод Arduino RX - к 1 пину модуля TX

      Передача данных из Arduino по Bluetooth

      Int cnt = 0; // счетчик void setup() { Serial.begin(9600); // инициализация порта } void loop() { cnt++; Serial.print("Hello BB from Arduino! Counter:"); // выводим надпись Serial.println(cnt); // выводим значение счетчика и переводим на новую строку delay(1000); // ждем 1 секунду }

      Как видите скетч довольно простой и хорошо прокомментирован. В цикле, раз в секунду происходит увеличение переменной cnt, которая затем с текстовой надписью выводится в последовательный порт на Bluetooth модуль. Обратите внимание, что скорость порта установлена в значение 9600. При покупке модуля, спрашивайте на какое значение установлена скорость обмена по последовательному интерфейсу. Но в большинстве случаев это 9600. При необходимости, скорость обмена можно изменить АТ-командами.

      Откройте данный скетч в Arduino IDE, скомпилируйте и прошейте ваш Arduino. Если вы подключали светодиод в Bluetooth модулю, то он должен мигать, показывая тем самым, что модуль ожидает соединение.

      Внимание! Если при прошивке платы Arduino ругается прошивальщик, то отключите питание 3.3В с Bluetooth модуля.

      На компьютере, в качестве Bluetooth модуля использовался самый дешевый китайский Bluetooth USB адаптер, стоимостью около 200 руб. После того, как адаптер подключается к компьютеру, установите необходимые драйвера (в Windows 7 x64 у меня все драйвера поставились автоматом).
      Затем щелкаем в трее по иконке Bluetooth модуля и выбираем "Добавить устройство":

      Имя моего модуля BOLUTEK, у вас оно скорее всего будет другим. Нажимаем "Далее" и переходим к окну, где необходимо ввести пароль для устройства:

      Выбираем второй пункт: "Введите код образования пары устройства". С завода, код установлен 1234. Его и вводим. Программа настроит и пропишет в системе виртуальные COM-порты (у меня прописало 2 шт, но может быть и один):

      В дальнейшем, можно посмотреть на какой COM-порт назначилось и его параметры. Для этого щелкаем правой кнопкой мыши по устройству и выбираем "Свойства" и вкладку "Оборудование". Там можно посмотреть и изменить параметры виртуального COM-порта:

      Теперь, для приема и передачи данных на виртуальный COM порт можно использовать любую терминал программу. Я использовал бесплатную . При каждом запуске программы предлагается выбор соединения, переключаем флажок на Serial и выбираем COM порт вашего Bluetooth модуля. У меня это COM4.

      В терминале мы видим данные счетчика с платы Arduino:

      Как видим, данные успешно передаются по Bluetooth соединению. Ниже в статье вы можете посмотреть видео.

      Двунаправленный обмен данными по Bluetooth

      Следующим шагом будет написание простенькой программы двунаправленного обмена данными между Arduino и компьютером. В схему я добавил светодиод, подключив его к 12 пину Arduino, через токоограничительный резистор. Но можно использовать и встроенный LED (обычно 13 пин).

      Char incomingByte; // входящие данные int LED = 12; // LED подключен к 12 пину void setup() { Serial.begin(9600); // инициализация порта pinMode(LED, OUTPUT); Serial.println("Press 1 to LED ON or 0 to LED OFF..."); } void loop() { if (Serial.available() > 0) { //если пришли данные incomingByte = Serial.read(); // считываем байт if(incomingByte == "0") { digitalWrite(LED, LOW); // если 1, то выключаем LED Serial.println("LED OFF. Press 1 to LED ON!"); // и выводим обратно сообщение } if(incomingByte == "1") { digitalWrite(LED, HIGH); // если 0, то включаем LED Serial.println("LED ON. Press 0 to LED OFF!"); } } }

      Программа работает очень просто. После запуска или сброса устройства, в последовательный порт выводится сообщение с предложением нажать 1 или 0. В зависимости от нажатой цифры светодиод будет загораться или гаснуть. А также, от Arduino будет выводиться сообщение загорелся светодиод, или погас.

      Блютуз свисток для компьютера: http://ali.pub/2jfj3y

      Для начала давайте разберемся что такое блютуз.

      Bluetooth (от слов англ. blue - синий и tooth - зуб; произносится /bluːtuːθ/ ), блюту́с - производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN ). Bluetooth обеспечивает обмен информацией между такими устройствами, как персональные компьютеры (настольные, карманные, ноутбуки), мобильные телефоны, принтеры, цифровые фотоаппараты, мышки, клавиатуры, джойстики, наушники, гарнитуры на надёжной, бесплатной, повсеместно доступной радиочастоте для ближней связи. Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10 м друг от друга (дальность сильно зависит от преград и помех), даже в разных помещениях.

      Теперь зная что блютуз служит для построения сетей и обмена данными между устройствами, мы будем его использовать для соединения между собой CNC (ЧПУ) станка и компьютера или телефона или планшета и ноутбука.

      Так как я использую прошивку grbl на платформе arduino для управления ЧПУ, то и подключать будем к станку блютуз модуль подходящий для arduino, а именно блютуз модуль HC-06.

      Перед подключением Блютуз модуля к ардуино, нужно убедиться, на одинаковой ли скорости COM порта работают блютуз модуль и ардуино.

      Если вы используете прошивку grbl 0.8, то ничего менять не нужно, но если grbl 0.9 и выше, то скорость COM порта ардуино станет 115200, а по умолчанию на модуле скорость 9600.

      Вот нам и понадобится на самом блютуз модуле поменять скорость порта.

      Для настройки Bluetooth-модулей существуют специальные АТ-команды , с помощью которых мы можем устанавливать необходимые параметры модуля.

      AT-командами мы можем изменить скорость COM порта или изменить название Bluetooth устройства или узнать или поменять пин код для сопряжения.

      Для того чтоб подключить блютуз модуль к компьютеру для ввода AT-команд нам понадобится программаторFTDI ссылка на него в начале статьи. Схема подключения я думаю тут ненужна. Подключать нужно gnd к gnd, 5в к 5в, rx к tx и tx к rx.

      После подключения нам понадобится программа HMComAssistant для ввода AT команд и программирования нашего модуля. Скачать: https://yadi.sk/d/eVzPmnh63Wab5R

      Ну и здесь я приведу некоторые AT-команды для изменения настроек блютуз модуля:

      АТ-команда Ответ модуля Комментарий
      AT ОК Используется для проверки связи, как правило перед выполнением любых операций сперва используется данная команда для проверки связи.
      AT+BAUD1 OK или OK1200 Устанавливает скорость передачи данных в 1200 бод
      AT+BAUD2 OK или OK2400 Устанавливает скорость передачи данных в 2400 бод
      AT+BAUD3 OK или OK4800 Устанавливает скорость передачи данных в 4800 бод
      AT+BAUD4 OK или OK9600 Устанавливает скорость передачи данных в 9600 бод
      AT+BAUD5 OK или OK19200 Устанавливает скорость передачи данных в 19200 бод
      AT+BAUD6 OK или OK38400 Устанавливает скорость передачи данных в 38400 бод
      AT+BAUD7 OK или OK57600 Устанавливает скорость передачи данных в 57600 бод
      AT+BAUD8 OK или OK115200 Устанавливает скорость передачи данных в 115200 бод
      AT+BAUD9 OK или OK230400 Устанавливает скорость передачи данных в 230400 бод
      AT+BAUDA OK или OK460800 Устанавливает скорость передачи данных в 460800 бод
      AT+BAUDB OK или OK921600 Устанавливает скорость передачи данных в 921600 бод
      AT+BAUDC OK или OK1382400 Устанавливает скорость передачи данных в 1382400 бод
      AT+NAME +NAME=test Возвращает текущее имя модуля
      AT+NAMEiarduino_BLU +NAME=test OK Устанавливает новое имя модуля “test“
      AT+PIN +PIN=000000 Возвращает текущий пароль, в данном случае пароль “000000”
      AT+PIN123456 +PIN=123456 OK Устанавливаем новый пароль, в данном случае пароль “123456”
      AT+VERSION +VERSION=Firmware V3.0.6,Bluetooth V4.0 LE Возвращает версию прошивки, в данном случае пароль “Firmware V3.0.6,Bluetooth V4.0 LE”
      AT+RESET +RESET OK
      AT+HELP ——– Возвращает список всех доступных АТ-команд

      После изменения скорости ком порта и установки пин кода для сопряжения. (по умолчанию пин код для сопряжения “1234”, давайте подключим модуль к ардуино.

      И так как я использую CNC shield v 3.0. То и схему подключения приведу к нему.

      Я не буду создавать свою схему, а возьму с одной статьи. Да простит меня ее создатель.

      Схема конечно не очень ровная, но на мой взгляд довольно понятная.

      Итак для чего в схеме используются резисторы? Ардуино имеет 5 вольтовую логику, это значит, что на все выходы свои ардуино посылает напряжение 5В. Но на модуле написано LEVEL 3.3v это значит что Блютуз требует 3.3В, но никак не 5в. Поэтому и подключаются резисторы, чтобы понизить напряжение и предотвратить выход из строя блютуз модуль.

      Но я решил использовать напрямую без резисторов, посмотрим насколько долго прослужит модуль, некий краш тест устроим.

      Для управления CNC (ЧПУ) станком с телефона или планшета я использовал программу “Grbl controller” она бесплатная и довольно многофункциональная. В видео приведенном ниже я мельком показывал как управляется станочек с этой программы.

      Но если вы будете подключаться с компьютера, то тут есть нюанс, при сопряжении соединения с модулем, в устройствах появится два новых COM порта. У меня это COM6 и COM7. Так вот один из них служит для отправки данных, а другой для приема. Поэтому ненужно пугаться и просто попробовать подключиться к одному если ничего не произойдет то подключитесь к другому.

      Но если что-то непонятно, но наглядно я это показал в видео:

      Ардуино имеет большое количество разнообразных модулей, способных значительно расширить функционал микроконтроллера. В отдельный класс выделяются чипы для передачи данных, как на большом расстоянии, например, для связи по беспроводному интернету, так и на коротком, как bluetooth модуль. Такое устройство предназначено для налаживания двунаправленных радиосвязей по одноимённому протоколу.

      Arduino bluetooth будет удобен для удалённого управления вашим устройством на базе микроконтроллера, но давайте разберём, что это такое и какие характеристики у bluetooth модулей hc 05 и hc 06.

      Что такое bluetooth модуль и его назначение

      Bluetooth протокол необходим для быстрой передачи данных на небольших расстояниях. Но значительно чаще его применяют в проектах, с целью наладить управление микроконтроллером с близких расстояний. Соответственно, он будет удобен для построения тех же умных домов, если дополнить аппаратную составляющую приложением на смартфон.

      Таким образом, первичное и главное назначение Ардуино блютуз – связь с вашим ПК и\или Андроидом по соответствующему протоколу. Это позволяет не только управлять разнообразными датчиками на микроконтроллере, но и, в случае необходимости, обновлять прошивку.

      Полностью перепрошить устройство с его помощью не получится. Помимо этого, Android Arduino bluetooth может обеспечить связь между несколькими МК и приборами. Естественно, для этого на каждом из них должен быть установлен независимый модуль. HC-05 позволяет проложить несколько мостов по типу USAR-bluetooth-USART. При этом само устройство будет восприниматься в качестве ответного на USART. А организовывать связь уже будет аппаратная часть вашего проекта.


      У блютуз модуля под Ардуино, есть несколько преимуществ, перед стандартными дополнениями под другие МК:

      1. Инженеру нет необходимости изучать технологию протокола блютуз, чтобы написать софт или начать использовать уже готовые библиотеки.
      2. Простота использования в целом. Вам не нужно будет паять отдельную плату под распределение мощностей, просто подсоедините устройство к уже готовому МК через пины.
      3. Обширный выбор библиотек. Так как Ардуино имеет низкий порог вхождения, под все его модули можно найти большое количество библиотек, разного назначения. Но стоит отметить, что весомая их часть – бесполезны, ибо не работают или работают крайне плохо. Ведь пишет их сообщество, которое не изучало основы алгоритмизации и, в большинстве своём, в принципе, плохо разбирается в программировании. Из-за этого, во многих ситуациях, просто модифицировать чужой софт – не лучшее решение, и значительно проще написать свой.

      Сфера же применения RC car Arduino bluetooth – огромна и ограничена лишь вашей фантазией. Например, вы можете купить обычную китайскую гарнитуру, припаять к ней пару модулей под Ардуино, так как они могут функционировать и без МК, и загрузить одну из готовых библиотек. После таких манипуляций наушники можно будет использовать в беспроводном режиме и исчезнет проблема с запутывающимися или гнущимися проводами. Это одна из банальных проблем реализации данного протокола в проекте, на деле их тысячи.

      Предназначается bluetooth аудио модуль для бытового и коммерческого применения, чему способствуют его характеристики. Также стоит учитывать, что если вы собираетесь в дальнейшем связываться по одноимённому протоколу с ПК, то на большинстве современных устройств необходимо будет докупить блютуз по USB. Но вы можете также спаять его из МК, создав собственный bluetooth модуль для компьютера. Естественно, это не относится к ноутбукам, где поголовно устанавливаются одноимённые передатчики, и никак модифицировать их уже не требуется.

      Распиновка HC-05 и HC-06

      Выводы на платах отвечают за:

      Характеристики

      Давайте подробнее разберёмся, какие характеристики имеет такой bluetooth модуль для ПК и различных проектов. Сами разработчики заявляют, что выдержали коммерческий стандарт в hc 05. Соответственно, для управления устройством будет достаточно специальной программы на смартфоне или компьютере, которая позволит отправлять и получать данные с датчика. Однако существует ограничение в области применения, ведь устойчивый сигнал, без использования усилителей, можно поймать лишь на 9 метрах от чипа. Учитывайте, что это сырые цифры, в которых во внимание не берутся преграды на пути волн.

      Сами hc чипы полностью совместимы с любыми адаптерами, что поддерживают SPP. На самой плате устройства размещается небольшая антенна, припаянная к верхнему слою в виде дорожки, похожей на змею. Характеристики девайса заявлены следующие:

      1. Активные частоты радиосвязи находятся в диапазоне 2.4-2.48 ГГц.
      2. Канал приспособлен к адаптивному переключению.
      3. Условная дальность связи – 10 метров, но в этой цифре не учитываются преграды и помехи.
      4. Максимальная скорость при обмене информацией – 115300 бод.
      5. Хранить чип можно в температурном диапазоне от - 40 до +85 градусов, а вот использовать – от -20 до +70.
      6. Для работы необходимо будет напряжение в 3.3 В, что мы рассмотрим чуть ниже.

      Подключение

      В печатной плате установлено несколько контактов под пайку, у торцов устройства. Но напрямую подсоединять провода к контактам девайса не стоит, ведь в плате применяется особая технология, позволяющая максимально компактно впихнуть габариты устройства в вашу систему.

      Устанавливать модуль необходимо достаточно плотно, для чего подойдёт стандартный МК или специальные платы, в которых применяются вилки-соединители. Но вы можете приобрести и отдельную плату под девайсы серии hc, или же сделать их самостоятельно, если у вас есть навыки по проектированию и созданию электронных плат.

      В подобном девайсе обязательно должен быть соединительный разъем\специальные отверстия для монтажа проводки, а также светодиоды, которые помогут определить, идёт ли ток и работает ли устройство. Помимо прочего, необходимы стабилизаторы, специальный переключатель для reset’а прошивки и преобразователи интерфейсов, по вашему желанию.

      При первом подключении важно проверить работоспособность, для этого подойдёт смартфон или ПК. Просто подайте ток на модуль и просканируйте его соответствующими устройствами.

      Настройка

      Для настройки чипа потребуется установить сопряжение по USART-bluetooth, где 34 контакт будет подсоединён к общему проводу. После этого вы можете подавать стандартные АТ команды или перепрошить микрочип, по вашему желанию.

      Из «коробки» же пароль для подключения интерфейса – 1234, а вот скорость обмена данными ограничивается до 38400 бод. Готовых библиотек на HC 05 не много, но и направление его применения достаточно узкое, что позволяет адаптировать любой уже имеющийся софт под ваши потребности.