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

Как настроить и соединить два модуля Bluetooth HC-05 в качестве ведущего и ведомого | АТ-команды

<основной класс="главный сайт" id="главный">

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

Обзор

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

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

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

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

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

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

Подчиненная конфигурация

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

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

Основная конфигурация

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

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

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

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

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

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

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

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

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

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

Мастер-код:

/*
 * 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); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 // Controlling the LED
 if (state == '1') {
  digitalWrite(ledPin, HIGH); // LED ON
  state = 0;
 }
 else if (state == '0') {
  digitalWrite(ledPin, LOW); // LED ON
  state = 0;
 }
 // Reading the potentiometer
 potValue = analogRead(A0);
 int potValueMapped = map(potValue, 0, 1023, 0, 255);
 Serial.write(potValueMapped); // Sends potValue to servo motor
 delay(10);
}Code language: Arduino (arduino)

Подчиненный код:

/*
 * 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); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 // Controlling the servo motor
 myServo.write(state);
 delay(10);
 
 // Reading the button
 buttonState = digitalRead(button);
 if (buttonState == HIGH) {
   Serial.write('1'); // Sends '1' to the master to turn on LED
 }
 else {
   Serial.write('0');
 }  
}Code language: Arduino (arduino)

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


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

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