Подключение блютуз модуля к ардуино

Подключение и настройка

Bluetooth-модуль общается с управляющей платой по протоколу UART. Дополнительный сигнальный пин служит для перевода модуля в режим AT-команд.

Для работы с модулем удобно использовать Troyka Shield.
Если хотите избавиться от проводов —
возьмите Troyka Slot Shield.

SoftwareSerial

Некоторые платы Arduino прошиваются через пины 0 и 1 (Arduinio Uno, Arduino Mega 2560, Arduino ADK и Iskra Mini). Перед прошивкой таких плат отключите Bluetooth-модуль от пинов RX и TX. Если необходимо одновременно работать с Bluetooth и подключать контроллер к компьютеру, подключите пины TX и RX к другим контактам управляющей платы.

Для примера подключим управляющие пины Bluetooth-модуля и — на и пин Arduino через Troyka Shield.
После включения Bluetooth HС-05 на нём замигает светодиод .

Bluetooth-модуль работает в двух режимах: «прозрачного UART» и управления AT-командами. В первом случае всё предельно просто — включаете модуль, подключаетесь к нему с компьютера или иного устройства и шлёте на этот порт данные. Второй режим предназначен для настройки модуля.

Режим AT-команд

Чтобы получить доступ к настройке модуля, его необходимо перевести в режим приёма AT-команд. Для входа в этот режим можно воспользоваться двумя методами:

Первый метод:

  1. Отключаем модуль от питания.
  2. Подаем на пин высокий уровень.
  3. Включаем модуль.

В этом варианте скорость обмена с модулем устанавливается в бод.

Второй метод

  1. Включаем модуль.
  2. Подаем на пин высокий уровень.

В этом случае скорость обмена с модулем будет равна скорости, установленной настройками. По умолчанию — 9600 бод.

После успешного перехода в режим AT-команд, светодиод начнет мигать раз в две секунды.

Bluetooth-модуль может работать в 3-х режимах:

  • Master — в этом режиме модуль сам инициирует подключение к какому-нибудь Bluetooth-девайсу.
  • Slave — самый распространённый режим. С ним мы можем подключиться к модулю сами. Например с телефона.
  • Slave-loop — здесь модуль отправляет обратно все байты, которые ему прислали.

Программа Bluetooth RC Car — управление роботом-машинкой со смартфона на Android

В свой смартфон я установил программу Bluetooth RC Car. На мой взгляд  — это лучшая софтинка для управления роботом-машинкой.

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

Для работы программы требуется Android версии 2.3.3 или выше. Размер программы 3 мегабайта.

Список команд:

  • F – вперед
  • B – назад
  • L – влево
  • R – вправо
  • G – прямо и влево
  • I – прямо и вправо
  • H – назад и влево
  • J – назад и вправо
  • S – стоп
  • W – передняя фара включена
  • w – передняя фара выключена
  • U – задняя фара включена
  • u – задняя фара выключена
  • V – звуковой сигнал включен
  • v – звуковой сигнал выключен
  • X – сигнал “аварийка” включен
  • x — сигнал “аварийка” выключен
  • 0 – скорость движения 0%
  • 1 – скорость движения 10%
  • 2 – скорость движения 20%
  • 3 – скорость движения 30%
  • 4 – скорость движения 40%
  • 5 – скорость движения 50%
  • 6 – скорость движения 60%
  • 7 – скорость движения 70%
  • 8 – скорость движения 80%
  • 9 – скорость движения 90%
  • q – скорость движения 100%

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

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

Принцип передачи команд: при нажатии на кнопку в программе, команда передается по Bluetooth один раз, а при отпускании кнопки сразу передается команда S-остановка.

Bluetooth в Arduino проектах

Нередко в проектах возникает необходимость дистанционного управления или передачи данных с телефона или другого устройства. Одним из самых популярных и удобных способов является обмен данных через Bluetooth. Для связи платы Ардуино и компьютера используется интерфейс UART (Serial). Так как любая плата Ардуино имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.

Самыми популярными модулями являются устройства на основе чипа BC417. Эта серия называется HC. Модули HC-03 и HC-05 могут быть и сервером соединения, и клиентом, они обладают широким набором АТ команд.

Для подключения к ПК потребуются модуль Bluetooth, плата Ардуино, соединительные провода и компьютер. Скетч для управления платой Ардуино через смартфон и компьютер будет одинаковым, так как в обоих случаях данные в микроконтроллер буду поступать по протоколу UART. Схема подключения Bluetooth-модуля к плате представлена на рисунке. Пин RX на ардуино подключается к TDX, TX – к RDX, GND – к GND, 5V – к VCC.

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


int val;

void setup()

{

Serial.begin(9600);

pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход

}

void loop()

{

if (Serial.available()) // проверка поданных команд

{

val = Serial.read();

if (val == '1') {digitalWrite(13, HIGH);} // при 1 включается светодиод

if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключается светодиод

}

}

Теперь нужно настроить соединение телефона и модуля. Для установки соединения нужно зайти в настройки телефона и включить Bluetooth. Как только устройство будет найдено, нужно ввести пароль – обычно это «1234» или «0000». После этого нужно зайти в приложение, нажать на кнопку «подключить Bluetooth» и выбрать нужное устройство. При успешном сопряжении на модуле светодиод начнет мигать медленнее,  примерно 1 раз в 2 секунды.

В скетче светодиод включается и выключается при получении цифр «1» и «0». Кроме цифр также можно использовать буквы латинского алфавита с учетом регистра.

Аналогичным образом можно подключаться к модулю при помощи компьютера. Для этого существуют различные программы, которые подключатся к COM-порту. При запуске программы запрашивают номер порта, скорость  и тип подключения. При успешном подключении на экране появится поле терминала, в которое нужно ввести с клавиатуры цифры/буквы, включающие светодиод.

Step 5: Receiving Data From Arduino

The last arduino Sketch that i wrote , used to send commands from PC Or android device  to android , Now in this program i will use arduino to Calculate the time since the start of the program in second , and send it Via bluetooth to any pairing device . the code below  // This program shown how to control arduino from PC Via Bluetooth // Connect … // arduino>>bluetooth // D11   >>>  Rx // D10   >>>  Tx //Written By Mohannad Rawashdeh //for http://www.genotronex.com/ // you will need arduino 1.0.1 or higher to run this sketch #include <SoftwareSerial.h>// import the serial library SoftwareSerial Genotronex(10, 11); // RX, TX int ledpin=13; // led on D13 will show blink on / off long previousMillis = 0;        // will store last time LED was updated // the follow variables is a long because the time, measured in miliseconds, // will quickly become a bigger number than can be stored in an int. long interval = 1000;           // interval at which to blink (milliseconds) int ledState = LOW;             // ledState used to set the LED long Counter=0; // counter will increase every 1 second void setup() {   // put your setup code here, to run once:   Genotronex.begin(9600);   Genotronex.println(«Bluetooth On please wait….»);   pinMode(ledpin,OUTPUT); } void loop() {   // put your main code here, to run repeatedly:   unsigned long currentMillis = millis();   if(currentMillis — previousMillis > interval) {     // save the last time you blinked the LED     previousMillis = currentMillis;        Counter+=1;     Genotronex.println(Counter);     // if the LED is off turn it on and vice-versa:     if (ledState == LOW)       ledState = HIGH;     else       ledState = LOW;     // set the LED with the ledState of the variable:     digitalWrite(ledpin, ledState);   } } at the end , You can visit the orginal artical in arabic language on my website Hope my first artical here is useful to you  , thank you for your time , 

Step 3: Arduino Code

As I mentioned before , I will use software serial library to make pin D10 & D11 As Tx & Rx instead of using the default Rx and tx » D0 &D1 On most arduino Board » . this program below allow us to control LED connected to D13 To blink on/off , by press # 1 from PC Keyboard the LED blink on , and if we press 0 LED blink off ! To send the Control commands from Computer to arduino , Go to the tera term , Run it , and choose Serial , and select the bluetooth Serial from the list as Shown on the picture . The code below : // This program shown how to control arduino from PC Via Bluetooth // Connect … // arduino>>bluetooth // D11   >>>  Rx // D10   >>>  Tx //Written By Mohannad Rawashdeh //for http://www.genotronex.com/ // you will need arduino 1.0.1 or higher to run this sketch #include <SoftwareSerial.h>// import the serial library SoftwareSerial Genotronex(10, 11); // RX, TX int ledpin=13; // led on D13 will show blink on / off int BluetoothData; // the data given from Computer void setup() {   // put your setup code here, to run once:   Genotronex.begin(9600);   Genotronex.println(«Bluetooth On please press 1 or 0 blink LED ..»);   pinMode(ledpin,OUTPUT); } void loop() {   // put your main code here, to run repeatedly:    if (Genotronex.available()){ BluetoothData=Genotronex.read();    if(BluetoothData==’1′){   // if number 1 pressed ….    digitalWrite(ledpin,1);    Genotronex.println(«LED  On D13 ON ! «);    }   if (BluetoothData==’0′){// if number 0 pressed ….   digitalWrite(ledpin,0);    Genotronex.println(«LED  On D13 Off ! «);   } } delay(100);// prepare for next data … } After uploading This sketch go to tera term and press 0 or 1 and see the results This Video show the results of this code .

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

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

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

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

Модуль HC-06

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

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

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

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

Создание проекта для ATmega8 в программной среде CodeVision

Аналогичные операции можно произвести и в других программных средах для программирования микроконтроллеров AVR, например, Atmel Studio.

После установки CodeVision вам необходимо выполнить следующие ниже перечисленные шаги чтобы создать проект и написать программу.

Шаг 1. Создайте новый проект в CodeVision, выбрав пункт меню File -> New -> Project. В появившемся диалогом окне нажмите Yes.

Шаг 2. Откроется CodeWizard. Кликните в ней на первой опции, то есть AT90, затем нажмите OK.

Шаг 3. Выберите свой микроконтроллер, в нашем случае им будет Atmega8.

Шаг 4. Кликните на Ports (порты). В нашем проекте мы будем использовать Port C4 и C5 для управления светодиодом. Таким образом, необходимо сконфигурировать биты 4 и 5 как выходные кликнув на них, как показано на рисунке:

Шаг 5. Мы будем использовать универсальный асинхронный последовательный приемопередатчик (USART) для Rx и Tx (приема и передачи данных). Поэтому необходимо выбрать настройки USART, в них кликнуть на настройки приема и оставить их по умолчанию.

Шаг 6. Выберите Program -> Generate, Save and Exit. Теперь более половины вашей работы по программированию микроконтроллера Atmega8 можно считать выполненной.

Шаг 7. Создайте новую папку на рабочем столе чтобы записывать туда наши файлы.

У нас будет 3 диалоговых окна (будут появляться последовательно одно за другим) для сохранения наших файлов.

Сделайте то же самое (что и на представленном рисунке) с двумя другими диалоговыми окнами – то есть сохраните предлагаемые ими файлы.

После этого рабочая область программы будет выглядеть следующим образом:

Теперь большая часть работы по программированию микроконтроллера Atmega8 нами выполнена с использованием такой удобной программной среды как CodeVision. Но ели вы не хотите использовать данную программную среду, то вы можете запрограммировать работу с последовательным портом микроконтроллера вручную по аналогии с последовательностью действий в таких статьях на нашем сайте как:

— взаимодействие двух микроконтроллеров AVR ATmega8 через UART;

—связь AVR ATmega8 и Arduino Uno через универсальный асинхронный приемопередатчик (UART)

Посмотрим схему подключения HC-05 и HC-06

Обратите внимание, что подключение происходит крест-накрест передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, а приёмник (Rx) Ардуино подключается к передатчику (Tx) модуля. Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR – это значит, что он обладает:

Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR – это значит, что он обладает:

  • высокой скоростью до 3 Мбит/сек, 
  • пониженным потреблением энергии, 
  • повышенным уровнем защиты данных, 
  • устойчивостью к широкополосным помехам, а это значит несколько устройств могут общаться между собой, не мешая друг другу.
  • лёгким соединением Bluetooth-устройств.

Устойчивый приём с модулем гарантирован в пределах 10 метров. Это обеспечено антенной из дорожки в виде змейки, нанесённой на плате модуля.

Для связи платы Ардуино и компьютера используется интерфейс UART (универсальный асинхронный приемопередатчик).
Так как любая плата Ардуино имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.

Можно использовать аппаратный или программный UART.

Если вы используете аппаратный UART, то вы должны подключаться к пинам Ардуино TX и RX, но тогда вы не сможете загружать скетч в Ардуино не отключив предварительно модуль Bluetooth от платы. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и тому же порту RX и TX, что и USB.
И вам придётся постоянно подключать и отключать модуль от платы, что не совсем удобно.
Это не касается плат Ардуино МЕГА у которой есть ещё 3 последовательных порта. И не забывайте отключать питание от модуля, иначе он может сгореть.

Так же желательно подключить модуль к Выводам Ардуино через делитель напряжения.

а можно через DC/DC преобразователь 5В/3,3В, но я во всех проектах подключал напрямую и всё работало замечательно. Как будете подключать вы – это ваше дело.
Если использовать программный UART, то можно подключаться к любым цифровым выводам, но для этого надо будет установить библиотеку SoftwareSerial.h
Записывается так
Здесь для работы с Bluetooth создается программный последовательный порт на выводах 2 и 3.
Тогда не нужно будет постоянно отключать модуль при перезаписи скетчей в Arduino.

Если вы подключили всё правильно, то при подаче напряжения на модуль он сразу переходит в режим ожидания подключения, это можно заметить по часто мигающему светодиоду.

  1. Включаем Bluetooth на телефоне и ищем новые устройства
  2. Находим в списке расстройств «HC-06» или «HC-05»  и подключаемся к нему.
  3. Телефон спросит пин-код. необходимо ввести «1234» или «0000»

 Пароль по умолчанию для конкретного модуля может отличаться от «1234». Эту информацию должен предоставить изготовитель (продавец) модуля.

Если не можете войти, то узнать или сменить пароль можно посмотрев 09:21 минута этого видео.

Для работы со смартфоном  вам потребуется установить приложение для отправки данных на блютуз модуль hc-05/06.
Я использовал бесплатную программу Bluetooth Terminal, но можно использовать приложение RemoteXY.

В видео я показал как работать с модулем и смартфоном. На примере кнопки на смартфоне Android и нажатия номера кнопки на индикатор.

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

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

Учитывайте, что это сырые цифры, в которых во внимание не берутся преграды на пути волн

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

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

Introduction: AT Command Mode of HC-05 and HC-06 Bluetooth Module

By sayem2603Shah Saifur RahmanFollow

More by the author:

About: I’m batman.

More About sayem2603 »

UPDATED july 18: You can now enter AT mode of HC-05 using an Arduino board, (arduino uno used in this tutorial)

UPDATED july 7: I had the opportunity to test a HC06 module. This guide now covers HC-06 module too. 🙂

Having multiple bluetooth modules with the same name can be confusing. Sometimes it may require to change the default settings like baud rate, or master/slave role of the module. This guide shows how to enter AT command mode of HC05/HC-06 bluetooth module with the help of USB to TTL converter. Alternatively for HC-05, you can use an arduino board.

Requirements:

1.HC-05/HC-06 Bluetooth module with breakout board.

2.USB to TTL converter : I used PL2303HX usb to ttl converter. Any other usb to ttl converter will do too./Arduino board, arduino uno used in this tutorial, other boards should work to.

Скетч для управления роботом на Arduino по Bluetooth через смартфон на Android

В своём скетче я реализовал следующие функции:

  • Движение вперед
  • Движение назад
  • Разворот влево
  • Разворот вправо
  • Плавный поворот влево при движении вперед
  • Плавный поворот вправо при движении вперед
  • Плавный поворот влево при движении назад
  • Плавный поворот вправо при движении назад
  • Остановка
  • Установка скорости 0%
  • Установка скорости 10%
  • Установка скорости 20%
  • Установка скорости 30%
  • Установка скорости 40%
  • Установка скорости 50%
  • Установка скорости 60%
  • Установка скорости 70%
  • Установка скорости 80%
  • Установка скорости 90%
  • Установка скорости 100%

В скетче использовал функции, чтобы не дублировать код при схожих событиях.

Step 3: Steps to Switch the HC-05 Into Command Mode

For the HC-05 module to switch to AT command mode, the HC-05 pin 34 (often referred to as the Key pin) needs to pulled HIGH but in a certain order of events explained below. When the HC-05 enters the AT command mode, it will communicate at 38400 baud rate. Follow these steps in the stated order to switch to the HC-05 to AT command mode. 

  1. Wire the HC-05 and Arduino Uno per instructions.
  2. BEFORE YOU CONNECT THE ARDUINO TO THE USB remove the VCC (power) red wire from the HC-05 so it’s not getting any power from the Arduino. All other wires are still connected.
  3. Now connect the Arduino Uno to the USB cable extended from your PC.
  4. Make sure the HC-05 module is NOT PAIRED with any other Bluetooth device.
  5. Re-connect the Arduino Uno 5V wire to the HC-05’s VCC (5V power) pin.
  6. The HC-05 LED will blink on and off at about 2 second intervals. Now the HC-05 is in AT command mode ready to accept commands to change configuration and settings.
  7. To test if everything is wired correctly,  open the Serial Monitor from the Arduino IDE and type «AT» and click SEND. You should see an «OK»
  8. If you don’t see an «OK» check your wiring.

2Схема подключенияbluetooth-модуля к Arduino

Подключим bluetooth модуль к Arduino по приведённой схеме

Обратите внимание, что передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, и наоборот

Схема подключения модуля bluetooth к Arduino

На выводе Status появляется высокий уровень, когда модуль сопряжён с другим bluetooth устройством, и низкий – когда не сопряжён. Можно считывать его значение, подключив к пину Arduino и назначив ему режим работы pinMode(pinStatus, INPUT) и таким образом узнавать состояние модуля. Но не на всех модулях индикатор статуса работает корректно, поэтому мы не будем его использовать в данном примере.

В результате должно получиться примерно как на фотографии.

Bluetooth модуль подключён к Arduino

Настройка Bluetooth модуля HC-05/06

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

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • Bluetooth модуль HC-05/06;
  • провода «папа-папа» и «папа-мама».

Настройка Bluetooth модуля с помощью AT-команд

Скетч для прошивки блютуз модуля Arduino

#include <SoftwareSerial.h>    // подключаем библиотеку
SoftwareSerial mySerial(2,3);  // указываем пины tx и rx

void setup() {
  pinMode(2,INPUT);
  pinMode(3,OUTPUT);
  
  Serial.begin(9600);         // включаем hardware-порт
  mySerial.begin(38400);  // включаем software-порт
  
  Serial.println("start setting");
}

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

Итак, чтобы изменить код доступа к Bluetooth-модулю, имя или другие характеристики, следует отправить следующие команды через монитор последовательного порта Arduino IDE (смотри скрин ниже). Также приведем пошаговую инструкцию, какие необходимо использовать AT команды для перепрошивки HC-05. А в конце статьи размещена более полная таблица at команд с небольшими пояснениями.

  1. узнаем версию прошивки модуля: AT+VERSION?
  2. узнаем режим работы модуля: AT+ROLE?
  3. узнаем имя Bluetooth-модуля: AT+NAME?
  4. задаем новое имя модуля: AT+NAME=ROBOT
  5. узнаем имя Bluetooth-модуля: AT+NAME?
  6. узнаем пин-код Bluetooth-модуля: AT+PSWD?
  7. задаем новый пин-код доступа: AT+PSWD=0000
  8. узнаем пин-код Bluetooth-модуля: AT+PSWD?

Обратите внимание, что при настройке модуля, в мониторе последовательного порта IDE Arduino следует выбрать пункт «NL & CR». После программирования модуля отсоедините вывод 34 от 3,3 Вольт и подключитесь к Bluetooth-модулю с телефона или планшета

Если при первом подключении блютуз модуля к Ардуино, у нас были стандартные настройки, то сейчас наш модуль имеет свое имя и новый пин-код.

Настройка bluetooth модуля на Android

Таким образом, мы можем использовать в одном месте сразу несколько bluetooth модулей, а чтобы не запутаться присвоить каждому свое уникальное имя. Также мы можем задать новый пин-код, чтобы защитить модуль от постороннего вмешательства. С помощью данной настройки модуля НС-05/06 мы можем получать данные с датчиков не только на мониторе порта, но и на любом Android — устройстве.

AT OK Тестовая команда
AT+VERSION? +VERSION: … Узнать версию прошивки модуля
AT+RESET OK Сброс настроек
AT+ADDR? +ADDR: … Узнать адрес модуля
AT+NAME? +NAME:«name» Узнать имя модуля, где «name» — имя Bluetooth-модуля
AT+NAME=«name» OK Установить новое имя, где «name» — имя Bluetooth-модуля
AT+PSWD? + PSWD:«pin» Узнать код доступа, где «pin» — код, по умолчанию 1234
AT+PSWD=«pin» «pin»
OK
Установить новый код доступа к модулю, где «pin» — код доступа к Bluetooth-модулю
AT+ROLE? +ROLE:«param» Узнать режим работы модуля, где «param» — режим:
0 — slave. К модулю может подключиться мастер;
1 — master. Модуль сам подключается к устройству.
AT+ROLE=«param» OK Установить режим работы модуля, где «param» — режим

Подключение Bluetooth JY-MCU к Arduino Mega 2560

Подключение довольно простое.

Официальная схема подключения:

  • VCC на JY-MCU подключаем к +5В Arduino
  • GND на JY-MCU подключаем к GND Arduino
  • TXT на JY-MCU подключаем к RX (0) на Arduino
  • RXD на JY-MCU подключаем к TX (1) на Arduino

При таком варианте подключения придется каждый раз отключать питание модуля Bluetooth перед загрузкой скетча. Не забывайте про это.

Меня такой вариант не устраивает, поэтому я решил использовать дискретные порты с поддержкой Serial.

Неофициальная схема подключения:

  • VCC на JY-MCU подключаем к +5В Arduino
  • GND на JY-MCU подключаем к GND Arduino
  • TXT на JY-MCU подключаем к дискретному PIN 50 на Arduino
  • RXD на JY-MCU подключаем к дискретному PIN 51 на Arduino

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

Чтобы закрепить Bluetooth, я решил использовать плату Proto Shield и миниатюрную беспаечную макетную плату. К ней в будущем и буду подключать остальное оборудование, элементы управления и индикации.

5Подключаемся к bluetooth-модулю по bluetooth с компьютера

Для подключения к bluetooth модулю можно использовать различные программы, которые могут подключаться к COM-порту. Например, такие как HyperTerminal, PuTTY, Tera Term, Termite и другие. Они все бесплатные и свободно распространяются в интернете.

Удобство программы TeraTerm в том, что она автоматически выводит список COM-портов, которые назначены модулю bluetooth вашего компьютера. Запускаем программу, выбираем подключение Serial, из списка выбираем соответствующий bluetooth COM-порт, нажимаем OK.

Подключение к bluetooth-модулю с помощью программы TeraTerm

Программа PuTTY при запуске также спрашивает номер порта (COM4, у вас будет свой), скорость подключения (9600), тип соединения (Serial). Затем нажимаем кнопку Соединиться.

Подключение к bluetooth-модулю с помощью программы PuTTY

В случае ошибки при подключении программа выведет соответствующее оповещение. Если соединение вашего компьютера с bluetooth-модулем произошло успешно, то вы увидите перед собой поле терминала. Введите с клавиатуры в это поле число 1 – и светодиод на 13 выводе Arduino загорится, введите 0 – погаснет.

Если не подключается…

Если нет подключения то вы скорее всего получите ошибку:

Это означает, что либо команды запроса не доходят до контроллера, либо ответы контроллера не возвращаются в смартфон/планшет.

Если вы получили именно эту ошибку, проверьте себя по списку, переходя к следующему пункту только проверив предыдущий:

  • ваша Arduino не включена;
  • нужный скетч не был загружен в Arduino;
  • не обновлена библиотека RemoteXY, используется старая версия библиотеки;
  • на модуль Bluetooth не подано питание, возможно перепутаны контакты питания;
  • контакты RX и TX модуля Bluetooth или один из них не подключены к контроллеру, плохой контакт;
  • контакты RX и TX модуля Bluetooth подключены не верно, возможно они перепутаны местами, проверьте по схеме (шаг 4);
  • неверно указаны настройки конфигурации или настройки подключения (шаг 2) перед формированием исходного кода;
  • скорость передачи данных, на которую настроен модуль HC-05(06), не соответствует выбранной при настройке конфигурации (по умолчанию 9600);
  • модуль Bluetooth неисправен.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector