Загрузка эскиза arduino через bluetooth с помощью android

Скетч для Arduino

Мы будем использовать для работы такой скетч:

Хотя nRF8001 является 3.3В устройством, Vcc и контакты данных устойчивы к 5В, так что вы можете использовать и то, и другое. Эскиз для демонстрации проекта основан на примере, представленном в библиотеке в разделе «examples» как «echodemo».

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

Попробуйте набрать какой-нибудь текст и нажмите «send», и он появится в серийном окне. Введите текст в серийное окно и отправьте его, и оно появится на вашем телефоне.

В измененном примере ниже, я добавил красный, зеленый и синий светодиод на плату, и вы можете мигать ими, введя r, или b, или g с телефона. При вводе слова со всеми тремя, например, «grab» будут мигать все три. У меня старый Samsung Galaxy и работало всё просто отлично.

На этом всё. Оставляйте вопросы или комментарии ниже, наше сообщество поможет в любой ситуации.

Написание скетча

Данные, которые принимает Bluetooth-модуль, приходят через UART (он же Serial-соединение) на скорости 9600 бит/с. Настраивать Bluetooth-модуль нет никакой необходимости: он сразу готов к работе. Поэтому скетч должен уметь следующее:

  1. Принять данные по UART
  2. Зажечь нужный светодиод в зависимости от принятого кода
bluetooth.ino
void setup() {
    //Устанавливаем скорость UART
    Serial.begin(9600); 
 
    //Настраиваем нужные пины на выход
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);    
}
 
void loop() {
    //Если данные пришли
    if (Serial.available() > ) {
 
        //Считываем пришедший байт
        byte incomingByte = Serial.read();
 
        //Получаем номер пина путем целочисленного деления значения принятого байта на 10
        //и нужное нам действие за счет получения остатка от деления на 2:
        //(1 - зажечь, 0 - погасить)
        digitalWrite(incomingByte  10, incomingByte % 2);
    }
}

Особенности заливки скетча

Для связи Bluetooth-Bee с контроллером используются те же пины (0 и 1), что и для прошивки. Поэтому при программировании контроллера переключатель «SERIAL SELECT» на «Wireless Shield» должен быть установлен в положение «USB», а после прошивки его надо вернуть в положение «MICRO».

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

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

Шаг 4. Загрузка программы в Arduino

Теперь нам нужно написать программу и загрузить её в наш Arduino. Если вы этого пока еще не умеете делать — скачайте книги здесь. Код ниже именно то, что нам нужно загрузить в Ардуино.

/* Bluetooh Basic: LED ON OFF
* Coder - Mayoogh Girish
* Website - https://bit.do/Avishkar
* Download the App : https://github.com/Mayoogh/Arduino-Bluetooth-Basic
* This program lets you to control a LED on pin 13 of arduino using a bluetooth module
*/
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the baud for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print("\n"); //New line
if(data == '1') // Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == '0') // Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}

Программируем Ардуино используя Ноутбук или PC

Начните с того, что скопируйте код, который приведен ниже. Затем, вставьте его в Arduino IDE. Скомпилируйте. Загрузите.

Этот код содержит несколько функций для изменения параметров модуля Bluetooth HC-05:

AT+NAME=Bluino#00 : Измените имя модуля bluetooth, имя по умолчанию — «HC-05».
AT+BAUD=115200,0,0 : Измените скорость передачи, бод, на 115200 (Arduino Uno, Bluino и Mega2560)
AT+BAUD=57600,0,0 : Измените скорость передачи, бод, на 57600 (Arduino Nano, Leonardo, Micro, Pro Mini 3V3/5V и Duemilanove)
AT+POLAR=1,0 : Изменить состояние пина.

Дополнительно вы можете сменить пароль, чтобы использовать не стандартный пароль при спаривании, AT+PSWD=xxxx.

Имя bluetooth должно быть «Bluino#00-9999», если вы хотите использовать собственное имя, вы должны использовать платную версию Bluino Loader App.

//======================
void setup() {
Serial.begin(38400);
delay(500);
Serial.println("AT+NAME=Bluino#00");
delay(500);

/* Используйте эту скорость при использовании с Arduino Uno, Bluino и Mega2560 */

Serial.println("AT+UART=115200,0,0");

/* Используйте эту скорость при использовании с Arduino Nano, Leonardo, Micro, Pro Mini 3V3/5V и Duemilanove */
//Serial.println("AT+UART=57600,0,0");

delay(500);
Serial.println("AT+POLAR=1,0");
delay(500);
}
void loop() {
}
//======================

Режим Slave «Ведомый»

Модуль ожидает сопряжение от другого Bluetooth устройства. В качестве примера рассмотрим подключение смартфона к BLE-модулю. Со стороны последовательного порта возьмём USB-UART преобразователь.

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

Для начала необходимо настроить Bluetooth через AT-команды.

AT-команды служат для настройки модуля, например:

  • узнать/изменить имя устройства;
  • узнать/изменить пароль;
  • узнать MAC-адрес устройства и т.д.
  1. Запустите терминал на ПК. Например встроенный в Arduino IDE или Putty.
  2. Выставьте настройки последовательного порта:

    1. скорость: 9600 бод
    2. бит чётности: N
    3. количество бит данных: 8
    4. количество стоповых бит: 1
    5. без возврата каретки «\r»
    6. без новой строки «\n»
  3. В качестве теста отправьте на модуль команду:

    AT

    В ответ вы должны получить:

    OK

    Если ответа нет — проверьте схему, не помогло — .

, а полный список — в документации на модуль HM-10.

Настройка телефона с ОС Android

  1. Запустите приложение.
  2. Зайдите в меню:
    Настройки ≡
    Devices и нажмите кнопку .
  3. Выберите по имени интересующий BLE-модуль. По умолчанию имя модуля — HMSoft.
  4. Вернитесь в главное меню и соединитесь с выбранным девайсом — нажмите на кнопку
  5. При успешном сопряжении:

    1. В окне терминала телефона появится надпись ;
    2. В окне терминала на ПК вернётся команда ;
    3. Светодиод будет гореть непрерывно.

Это значит всё получилось и можно передавать данные в обоих направлениях.

Настройка телефона с ОС iOS

  1. Запустите приложение.
  2. Нажмите на кнопку для поиска новых Bluetooth устройств.
  3. Выберите по имени интересующий BLE-модуль и нажмите кнопку . По умолчанию имя модуля — HMSoft.
  4. При успешном сопряжении:

    1. В окне терминала телефона появится надпись сопряжённого BLE-устройства;
    2. В окне терминала на ПК вернётся команда ;
    3. Светодиод будет гореть непрерывно.

Это значит всё получилось и можно передавать данные в обоих направлениях.

Передача данных

Для примера отправим из телефона сообщение . В ответ в терминале на ПК придёт послание .

И в обратную сторону: отправим из терминала ПК текст . В ответ в терминале телефона увидим сообщение .

Вместо USB-UART адаптера возьмите любую управляющую платформу. Например Arduino Uno или Iskra JS. Для общение используйте интерфейс .

Приложение и скетч для машинки на Ардуино

После сборки схемы загрузите следующий скетч для машинки (не забудьте отключать Bluetooth модуль от Ардуино при загрузке) и установите приложение на смартфоне. Все файлы для проекта (библиотека AFMotor.h, скетч для машинки и приложение для Android) можно скачать одним архивом по прямой ссылке здесь. Работу скетча можно проверить управлением машинки от компьютера через Serial Monitor по USB.

#include <AFMotor.h>  // подключаем библиотеку для шилда
AF_DCMotor motor1(1); // подключаем мотор к клеммнику M1
AF_DCMotor motor2(2); // подключаем мотор к клеммнику M2

int val; // освобождаем память в контроллере

void setup() {

  Serial.begin(9600);
  pinMode(2, OUTPUT);   // Порт для светодиодов
  motor1.setSpeed(250); // задаем максимальную скорость мотора
  motor1.run(RELEASE);  // останавливаем мотор
  motor2.setSpeed(250); // задаем максимальную скорость мотора
  motor2.run(RELEASE);  // останавливаем мотор
}

void loop() {

if (Serial.available()) // проверяем, поступают ли какие-то команды
  {
    val = Serial.read();

    if (val == 'f') { // едем вперед
motor1.run(FORWARD);
motor1.setSpeed(250); 
motor2.run(FORWARD);
motor2.setSpeed(250);
 }

    if (val == 'b') { // едем назад
motor1.run(BACKWARD);
motor1.setSpeed(200); 
motor2.run(BACKWARD);
motor2.setSpeed(200);
 }

    if (val == 's') { // останавливаемся
motor1.run(RELEASE);
motor2.run(RELEASE);
 }

    if (val == 'l') { // поворачиваем налево
motor1.run(FORWARD);
motor1.setSpeed(100); 
motor2.run(BACKWARD);
motor2.setSpeed(250);
 }

    if (val == 'r') { // поворачиваем направо
motor1.run(BACKWARD);
motor1.setSpeed(250); 
motor2.run(FORWARD);
motor2.setSpeed(100);
 }

    if (val == '1') { // включаем светодиоды
digitalWrite(2,HIGH);
 }

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

}
}

Пояснения к коду:

  1. для тестирования, можно отправлять команды с компьютера через USB;
  2. вращение моторов при подключении к аккумулятору будут отличаться;
  3. вы можете задавать свою скорость вращения моторами.


Управление машинкой на Ардуино через Андроид

Элементы платы

Модуль HM-10

Светодиодная индикация

Имя светодиода Назначение
RX и TX Мигают при обмене данными между BLE модулем и управляющим устройством.
PAIR Горит, если модуль сопряжён с другим устройством;
Мигает — нет сопряжения;

Troyka-контакты

На Bluetooth модуле выведено две пары Troyka-контактов.

Нижняя группа

  • Питание (V) — соедините с рабочим напряжением микроконтроллера.
  • Земля (G) — Соедините с пином микроконтроллера.
  • Сигнальный (TX) — цифровой выход BLE-модуля. Используется для передачи данных из Bluetooth в микроконтроллер. Подключите к пину микроконтроллера.

Верхняя группа

  • Сигнальный (RX) — цифровой вход BLE-модуля. Используется для приёма данных из микроконтроллера в Bluetooth. Подключите к пину микроконтроллера.
  • Сигнальный (K) — пин управления BLE-модулем. Подключите к сигнальному пину микроконтроллера.

Регулятор напряжения

Понижающий регулятор напряжения TPS73033 с выходом 3,3 вольта, обеспечивает питание Bluetooth-модуля. Максимальный выходной ток составляет 200 мА.

На плате так же присутствует необходимая обвязка для сопряжения устройств с разными питающими напряжениями.

В нашем случае это может быть управляющая плата Arduino с 5 вольтовой логикой и BLE-модуль с 3,3 вольтовой логикой.

Характеристики Bluetooth модуля HC-05 / HC-05

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


HC-05/06 Bluetooth модуль распиновка

Оба устройства построены на чипе CSR BC417, который поддерживает радиосигнал по протоколу Bluetooth со скоростью до 3 Мбит/сек. На самой плате находится антенна из дорожки в виде змейки, обеспечивающая дальность связи до 10 метров. Главным преимуществом можно назвать устойчивость к широкополосным помехам, а значит несколько устройств могут общаться между собой, не мешая друг другу.

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

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 .

Как подключить блютуз модуль к Ардуино

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

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

Обратите внимание, что при подключении любого модуля к портам TX и RX на Arduino, скетч загрузить в плату не получится — у вас будет выходить ошибка, что Arduino Nano не доступна. Перед загрузкой скетча — отключайте Bluetooth модуль

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


Схема подключения блютуз модуля к Ардуино

Для начала мы будем дистанционно включать и выключать светодиод, подключенный параллельно к 13 порту на Ардуино и, расположенный на самой плате. После установки приложения на смартфон или планшет и загрузки скетча (скачать архив со скетчем можно далее), подключите блютуз модуль к Ардуино, как изображено на схеме выше. До сопряжения устройств, светодиод на модуле HC-05 начнет быстро мигать.

Скетч для Bluetooth модуля Arduino

int val; // освобождаем память в контроллере для переменой

void setup() {
  Serial.begin(9600);  // подключаем последовательный порт
  pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
  if (Serial.available()) // проверяем, поступают ли какие-то команды
  {

    val = Serial.read(); // переменная val равна полученной команде

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

  }
}

Соединение с телефоном Bluetooth модуля

Для сопряжения смартфона с Bluetooth модулем HC-06 и HC-05 перейдите в настройки телефона и включите блютуз. У вас активируется поиск устройств, кроме названия HC-05 или HC-06, вы увидите адрес устройства. Для подключения потребуется ввести пароль, обычно, это «1234» или «0000». Пароль потребуется ввести только один раз, при последующих подключениях сопряжение будет происходить автоматически.


Соединение между смартфоном и блютуз модулем HC-05

Далее откройте приложение, которое вы установили на смартфон или планшет и нажмите на кнопку «Подключить Блютуз». У вас появится список устройств с адресами — выберите нужное устройство. Если сопряжение прошло успешно, то светодиод на модуле начнет мигать реже — примерно 1 раз в две секунды. Теперь вы можете дистанционно включать/выключать светодиод на Ардуино, используя блютуз модуль.


Приложение для управление Ардуино через блютуз модуль

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

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

#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
Servo servo1;      // объявляем переменную servo типа "servo1"

int val; // освобождаем память в контроллере для переменой

void setup() {
  servo1.attach(11);   // привязываем сервопривод к аналоговому выходу 11
  Serial.begin(9600);  // подключаем последовательный порт
  pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
  if (Serial.available()) // проверяем, поступают ли какие-то команды
  {

    val = Serial.read(); // переменная val равна полученной команде

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

    if (val == '4') {servo1.write(0);}   // ставим угол поворота 0
    if (val == '5') {servo1.write(90);}  // ставим угол поворота 90
    if (val == '6') {servo1.write(180);} // ставим угол поворота 180

  }
}

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 – погаснет.

История

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

В этом процессе принимали участие компании Intel, Ericsson и Nokia, а название Bluetooth было предложено как символ единства, т.к. в 10 веке король Гарольд Блютуз отвечал за объединение Скандинавии. Считается, что данное название не должно было остаться на постоянной основе, но оно так и осталось в дальнейшем.

Bluetooth был создан для обмена данными с близкого расстояния без необходимости использования проводов, таких как наушники, кардиомониторы и датчики. Работает в диапазоне ISM 2,4 ГГц. Данные разделены на один из 79 слотов между 2,4 и 2,4835 ГГц в полосах 1 МГц.

Bluetooth LE (Low Energy) был новой версией. В отличие от более раннего стандарта Bluetooth, LE не требует никаких контрактов или проблем с разработкой приложений, и вы можете распространять их через Play Store; он также требует очень мало энергии, поэтому он очень подходит для работы от батареи.

Загрузка исходного кода

Этот код использует протокол последовательной связи Arduino с модулем Bluetooth. Выводы RX и TX Arduino подключаются к выводам TX и RX модуля HC-06 Bluetooth соответственно.

Модуль Bluetooth получает данные от сопряженного смартфона Android и запускает реле на основе полученных данных.

Код, стоящий за этим, довольно прост. Если принятые данные являются символом «1», то реле включается, а включается если принятыми данными является символ «0» (реле будет отключено).

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

//--------BT app control---------//
//Программа для четырех переключателей, но в нашем случае мы используем вывод pin 11

int switch1=11;
int switch2=12;
int switch3=8;
int switch4=7;

int Received=0;
int switch1_state =0;
int switch2_state =0;
int switch3_state = 0;
int switch4_state = 0;


void setup(){
  
  Serial.begin(9600);
  pinMode(switch1,OUTPUT);
  pinMode(switch2,OUTPUT);
  pinMode(switch3,OUTPUT);
  pinMode(switch4,OUTPUT);
  
}

void loop(){
 
 if(Serial.available()>0)
 { 
    Received = Serial.read();
    
 }

////////////////switch1/////////////////////

if (switch1_state == 0 && Received == '1')
  {
    digitalWrite(switch1,HIGH);
    switch1_state=1;
    Received=0;  
  }
if (switch1_state ==1 && Received == '1')
  {
    digitalWrite(switch1,LOW);
    switch1_state=0;
    Received=0;
  }

////////////////switch2/////////////////////
if (switch2_state == 0 && Received == '2')
  {
    digitalWrite(switch2,HIGH);
    switch2_state=1;
    Received=0;  
  }
if (switch2_state ==1 && Received == '2')
  {
    digitalWrite(switch2,LOW);
    switch2_state=0;
    Received=0;
  }
///////////////////////////////////////////
////////////////switch3/////////////////////
if (switch3_state == 0 && Received == '3')
  {
    digitalWrite(switch3,HIGH);
    switch3_state=1;
    Received=0;  
  }
if (switch3_state ==1 && Received == '3')
  {
    digitalWrite(switch3,LOW);
    switch3_state=0;
    Received=0;
  }
///////////////////////////////////////////
////////////////switch4/////////////////////
if (switch4_state == 0 && Received == '4')
  {
    digitalWrite(switch4,HIGH);
    switch4_state=1;
    Received=0;  
  }
if (switch4_state ==1 && Received == '4')
  {
    digitalWrite(switch4,LOW);
    switch4_state=0;
    Received=0;
  }
}

Посмотрим схему подключения 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 и нажатия номера кнопки на индикатор.

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