Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Пошаговое руководство: связывание модулей HC-05 Bluetooth как Master и Slave с помощью AT-команд

В этом уроке Arduino мы научимся настраивать и связывать два модуля Bluetooth HC-05 как устройства Master и Slave. Вы можете посмотреть следующее видео или прочитать письменное руководство ниже.

Обзор

В моих предыдущих двух уроках мы уже научились подключать модуль Bluetooth HC-05 к Arduino и осуществлять связь между смартфоном Android и Arduino. В тех уроках мы использовали модуль Bluetooth HC-05 с настройками по умолчанию, как устройство Slave.

Настройка модуля Bluetooth HC-05 — AT-команды

Для этого урока нам нужно настроить оба модуля. Для этого нужно переключиться в режим AT-команд, и вот как мы это сделаем. Сначала подключим Bluetooth-модуль к Arduino по схеме, описанной в предыдущих уроках. Дополнительно нужно подключить вывод «EN» Bluetooth-модуля к 5 вольтам и также поменять местами выводы TX и RX на плате Arduino.

Пошаговое руководство: связывание модулей HC-05 Bluetooth как Master и Slave с помощью AT-команд

Вывод RX Arduino нужно подключить к выводу RX Bluetooth-модуля через делитель напряжения, а вывод TX Arduino — к выводу TX Bluetooth-модуля. Теперь, удерживая маленькую кнопку над выводом «EN», нужно подать питание на модуль — так мы войдем в режим команд. Если светодиод Bluetooth-модуля мигает каждые 2 секунды, значит, мы успешно вошли в режим AT-команд.

После этого нужно загрузить пустой скетч в Arduino, но не забывайте отключать линии RX и TX во время загрузки. Затем нужно запустить монитор последовательного порта и там выбрать «Both NL and CR», а также скорость «38400 baud», которая является скоростью по умолчанию для Bluetooth-модуля. Теперь мы готовы отправлять команды, и их формат следующий.

Пошаговое руководство: связывание модулей HC-05 Bluetooth как Master и Slave с помощью AT-команд

Все команды начинаются с «AT», за которым следует знак «+», затем <Имя параметра>, и они заканчиваются либо знаком «?», который возвращает текущее значение параметра, либо знаком «=», когда мы хотим ввести новое значение для этого параметра.

Настройка Slave

Например, если ввести просто «AT» — тестовую команду, мы должны получить ответ «OK». Затем, если ввести «AT+UART?», мы должны получить сообщение, показывающее скорость по умолчанию — 38400. Если ввести «AT+ROLE?», получим сообщение «+ROLE=0», что означает, что Bluetooth-устройство в режиме Slave. Если ввести «AT+ADDR?», получим адрес Bluetooth-модуля, который должен выглядеть примерно так: 98d3:34:905d3f.

Пошаговое руководство: связывание модулей HC-05 Bluetooth как Master и Slave с помощью AT-команд

Теперь нужно записать этот адрес, так как он понадобится при настройке Master-устройства. На самом деле, для настройки Slave-устройства достаточно просто получить его адрес, хотя мы можем изменить многие разные параметры, такие как имя, скорость, пароль сопряжения и так далее, но для этого примера мы этого не будем делать.

Настройка Master

Хорошо, теперь перейдем к настройке другого Bluetooth-модуля как Master-устройства. Сначала проверим скорость, чтобы убедиться, что она та же 38400, что и у Slave-устройства. Затем, введя «AT+ROLE=1», установим Bluetooth-модуль как Master-устройство. После этого, используя «AT+CMODE=0», установим режим подключения на «фиксированный адрес», а с помощью команды «AT+BIND=» установим адрес Slave-устройства, который мы ранее записали.

Пошаговое руководство: связывание модулей HC-05 Bluetooth как Master и Slave с помощью AT-команд

Обратите внимание: при записи адреса нужно использовать запятые вместо двоеточий. Также обратите внимание, что мы могли бы пропустить предыдущий шаг, если бы ввели «1» вместо «0» в команде «AT+CMODE», что заставит Master подключаться к любому устройству в зоне его передачи, но это менее безопасная конфигурация. Полный список команд и параметров можно найти здесь: HC-05 AT Commands List

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

Пример связи между двумя модулями Bluetooth HC-05

Хорошо, теперь мы готовы сделать практический пример для этого урока. Вот схема подключения. Мы будем использовать потенциометр на Master для управления сервоприводом на Slave. И наоборот, кнопку на Slave для управления светодиодом на Master.

Пошаговое руководство: связывание модулей HC-05 Bluetooth как Master и Slave с помощью AT-команд

Компоненты, необходимые для этого урока Arduino, можно найти на любом из сайтов ниже:

  • Bluetooth-модуль HC-05 …………….
  • Плата Arduino ……………………………
  • Сервопривод…………………………….….
  • Потенциометр……………..………..…….
  • 3x резисторов 220 Ом…………………
  • Безпаечная макетная плата и перемычки ……….

Исходные коды Arduino

Описание: Сначала определяем выводы и некоторые переменные, необходимые для программы. В разделе setup на Master устанавливаем вывод светодиода как выход и сразу устанавливаем его в низкий уровень, а также запускаем последовательную связь на скорости 38400 бод. Аналогично на Slave устанавливаем вывод кнопки как вход, определяем сервопривод, к какому выводу он подключен, и запускаем последовательную связь с той же скоростью.

В разделе loop в обоих кодах с помощью функции Serial.available() проверяем, есть ли доступные данные в последовательном порту для чтения, и с помощью функции Serial.read() считываем и сохраняем данные в переменную «state». Если Master получает символ '1', который отправляется от Slave при высоком состоянии кнопки (кнопка нажата), светодиод загорится. Иначе, если символ '0', светодиод погаснет.

Что касается управления сервоприводом, сначала на Master считываем значение потенциометра и преобразуем его в подходящий диапазон для сервопривода от 0 до 255. Это значение отправляется на Slave, который использует его для поворота сервопривода соответствующим образом. Это всё, что нужно, и вот демонстрация примера.

Код Master:

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * == MASTER CODE ==
 */
#define ledPin 9
int state = 0;
int potValue = 0;
void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400);
}
void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  if (state == '1') {
    digitalWrite(ledPin, HIGH);
    state = 0;
  } else if (state == '0') {
    digitalWrite(ledPin, LOW);
    state = 0;
  }
  potValue = analogRead(A0);
  int potValueMapped = map(potValue, 0, 1023, 0, 255);
  Serial.write(potValueMapped);
  delay(10);
}Язык кода: Arduino (arduino)

Код Slave:

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * == SLAVE CODE ==
 */
#include <Servo.h>
#define button 8
Servo myServo;
int state = 20;
int buttonState = 0;
void setup() {
  pinMode(button, INPUT);
  myServo.attach(9);
  Serial.begin(38400);
}
void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  myServo.write(state);
  delay(10);
  buttonState = digitalRead(button);
  if (buttonState == HIGH) {
    Serial.write('1');
  } else {
    Serial.write('0');
  }
}Язык кода: Arduino (arduino)

Это всё. Если у вас есть проблемы, не стесняйтесь просить помощи в разделе комментариев ниже.


Производственный процесс

  1. Bluetooth LE против XLE: следующее поколение отслеживания и мониторинга активов
  2. Комбинация Bluetooth и ультразвука для точного, выгодного трекинга в реальном времени
  3. Проверка и калибровка датчика влажности для точных измерений
  4. Создание Bluetooth-управляемой машины на Arduino: полное DIY-руководство
  5. Умная кофемашина на Arduino с Bluetooth-управлением и мониторингом температуры
  6. Bluetooth-робот-манипулятор: Arduino UNO + 2-DOF рука и шасси умной машины
  7. Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство
  8. Отслеживание ориентации с Arduino и акселерометром ADXL345
  9. Инструментальная сталь: состав, производство и промышленные применения
  10. Ленточная пила против дисковой: ключевые различия