Соединение 2 Arduino через Bluetooth с помощью HC-05 и HC-06: простой метод CMODE
Оригинал статьи: Martyn Currey
Подключение HC-05 к HC-06: Метод 1
С помощью команды CMODE можно легко соединить HC-05 и HC-06 (или два HC-05). Когда HC-05 настроен на сопряжение с любым адресом (AT+CMODE=1), он должен автоматически подключиться к ведомому модулю. Привязка и прочее не требуется.
Я использую модули zs-040 с прошивкой 2.0-20100601, и другие модули с той же прошивкой будут работать аналогично. Если у вас возникнут проблемы, проверьте документацию к вашему модулю.
Конфигурация
Я использую две разные версии Arduino IDE: 1.0.5 и 1.6.3. Это даёт мне два отдельных монитора порта. Arduino с HC-05 подключён к COM8, Arduino с HC-06 — к COM17.
На HC-05 я изменил скорость передачи данных в режиме связи на 38400. Это означает, что мне не нужно ничего менять при переключении между AT-режимом и режимом связи.
Я использую скетч HC-05_AT_MODE_01 на Arduino с HC-05 и скетч HC-06_01 на Arduino с HC-06.
Скетч HC-05_AT_MODE_01
// Basic Bluetooth sketch HC-05_AT_MODE_01
// Connect the HC-05 module and communicate using the serial monitor
//
// The HC-05 defaults to commincation mode when first powered on
// you will need to manually enter AT mode
// The default baud rate for AT mode is 38400
// See www.martyncurrey.com for details
//
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX | TX
// Connect the HC-05 TX to Arduino pin 2 RX.
// Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider.
//
char c = ' ';
void setup()
{
Serial.begin(9600);
Serial.println("Arduino is ready");
Serial.println("Remember to select Both NL & CR in the serial monitor");
// HC-05 default serial speed for AT mode is 38400
BTserial.begin(38400);
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTserial.available())
{
c = BTserial.read();
Serial.write(c);
}
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
{
c = Serial.read();
BTserial.write(c);
}
}
Скетч HC-06_01
// Basic bluetooth test sketch. HC-06_01
// HC-06 ZS-040
//
//
// Uses hardware serial to talk to the host computer and software serial
// for communication with the bluetooth module
//
// Pins
// BT VCC to Arduino 5V out.
// BT GND to GND
// BT RX to Arduino pin 3 (through a voltage divider)
// BT TX to Arduino pin 2 (no need voltage divider)
//
// When a command is entered in the serial monitor on the computer
// the Arduino will relay it to the bluetooth module and display the result.
//
// These HC-06 modules require capital letters and no line ending
//
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3); // RX | TX
void setup()
{
Serial.begin(9600);
Serial.println("Enter AT commands:");
// HC-06 default baud rate is 9600
BTSerial.begin(9600);
}
void loop()
{
// Keep reading from HC-06 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-06
if (Serial.available())
BTSerial.write(Serial.read());
}
Подключение
Оба Bluetooth-модуля подключаются одинаково.
Соберите обе схемы и включите питание. Светодиоды на HC-05 и HC-06 должны быстро мигать.
Чтобы HC-05 подключился к HC-06, нужно:
установить HC-05 в режим Master,
настроить сопряжение с любым адресом,
перезагрузить питание модуля.
Переведите HC-05 в AT-режим (удерживайте кнопку при включении питания). Если вы не уверены, как это сделать, смотрите Arduino и HC-05 (ZS-040) — AT-режим. В AT-режиме светодиод на HC-05 должен мигать вкл/выкл каждую секунду.
Сначала убедитесь, что мы в AT-режиме. Введите AT и нажмите Send. Вы должны получить «OK».
Установите HC-05 как ведущее устройство командой AT+ROLE: AT+ROLE=1. Вы должны получить ещё одно «OK».
Настройте HC-05 на сопряжение с любым адресом: AT+CMODE=1. Вы должны получить ещё одно «OK».
Перезагрузите питание HC-05. Светодиод на HC-05 будет мигать дважды в секунду при поиске, а после подключения к HC-06 светодиод будет быстро мигать дважды каждые 2 секунды. Светодиод на HC-06 должен гореть постоянно.
Теперь всё, что вы вводите в одном мониторе порта, будет отправлено по Bluetooth на другой Arduino и отображено в противоположном мониторе порта.
Hello отправлено из HC-06 в HC-05:
Далее
Следующий шаг — связать два модуля, указав конкретное устройство для подключения по MAC-адресу. Соединение 2 Arduino через Bluetooth с помощью HC-05 и HC-06: Pair, Bind и Link