HC05 как настроить Bluetooth модуль в качестве slave или master и как объединить две Arduino по Bluetooth

Для настройки Bluetooth модулей HC-05 загрузите этот скетч на плату.


//Начало скетча

#include <SoftwareSerial.h>
//                    имя                пароль             скорость           CMODE          получить адрес        записать адрес            роль
//запрос            AT+NAME?            AT+PSWD?            AT+UART?          AT+CMODE?          AT+ADDR?               AT+BIND?            AT+ROLE?
//вариант ответа  +NAME:SLAVE         +PIN:"1234"        +UART:9600,0,0        +CMODE:1                          AT+BIND=18,E4,400006       +ROLE:0                                         
//--------------------------------------------------------------------------------------------------------------------------------------------------
//какие установить (более подробно смотрите видео которое внизу статьи)
//для слейва    | AT+NAME=SLAVE     AT+PSWD="1234"       AT+UART=9600,0,0     AT+CMODE=1    +ADDR:18:E4:400006                             AT+ROLE=0   
//для мастера   | AT+NAME=MASTER    AT+PSWD="1234"       AT+UART=9600,0,0     AT+CMODE=0                          AT+BIND=18,E4,400006     AT+ROLE=1

//сброс настроек  AT+ORGL это для крайнего случая, если что то напутали с настройками, и не можете найти как исправить

const int arduino_rx = 5;
const int arduino_tx = 6;
SoftwareSerial mySerial (arduino_rx, arduino_tx);
 
void setup()  {
  pinMode( arduino_rx,INPUT); pinMode( arduino_tx,OUTPUT);
  Serial.begin(9600);       //в мониторе порта выбрать NL&CR, скорость Arduino с компьютером 9600
  mySerial.begin(38400);    //по умолчанию скорость Bluetooth модуля с Arduino в режиме AT команд 38400 иногда 9600
  Serial.println( "<<< Start! >>>");
  mySerial.println("AT");    
}

void loop() {
  if (mySerial.available()) {
    char c = mySerial.read();      // читаем из программного Serial-порта
    Serial.print(c);   }           // пишем в штатный Serial-порт
  if (Serial.available()) {
    char c = Serial.read();        // читаем из штатного Serial-порта
    mySerial.write(c); }           // пишем в программный Serial-порт
}

//конец скетча




После загрузки скетча соберите все, как показано на этой схеме.

Схема подключения Bluetooth модуля к Arduino для настройки при помощи AT команд.

И следуйте инструкциям на видео, которое я оставил в конце этой статьи.


Ниже представлены два скетча для взаимодействия двух плат Arduino с применение Bluetooth модулей HC-05.


Скетч для платы Arduino Nano (с кнопкой)


const int button = 2;
int button_state = 0;

void setup()  {
  pinMode( button,INPUT_PULLUP);
  Serial.begin(9600);  
}

void loop() {
  button_state = digitalRead(button);
  if (button_state == LOW){ Serial.print("1"); }      
  if (button_state == HIGH){ Serial.print("0"); }    
}


Скетч для платы Arduino Uno которая будет включать светодиод

const int led_Pin = 13;

void setup()  {
  pinMode( led_Pin,OUTPUT);
  Serial.begin(9600); 
}

void loop() {    
  if (Serial.available()) {
    char c = Serial.read(); 

if (c == '1'){ digitalWrite(led_Pin, HIGH);}
if (c == '0'){ digitalWrite(led_Pin, LOW);}
  }
}




После загрузки скетчей соберите все, как показано на этой схеме.

Схема для объединения двух плат Arduino по Bluetooth .

Если все верно, то подключаем питание и проверяем нажатием кнопки. Более подробно, смотрите видео, которое ниже.



Подробное видео по настройке Bluetooth модуля HC-05 при помощи AT команд.


 HC05 как настроить Bluetooth модуль в качестве slave или master и как объединить две Arduino по Bluetooth.