Проект 31: Бездротовий зв'язок. Модуль Bluetooth HC-05

В цьому експерименті розглянемо роботу модуля Bluetooth HC-05, що дозволяє платі Arduino встановити бездротовий зв'язок і обмінюватися даними з іншими пристроями по протоколу Bluetooth.

Необхідні компоненти:

Bluetooth (з англ. - «блакитний зуб») - одна з технологій бездротової передачі даних. Специфікація була розроблена в 1998 р компанією Ericsson, а пізніше оформлена групою Bluetooth Special Interest Group (SIG), офіційно зареєстрована 20 травня 1999 р Bluetooth дозволяє об'єднувати в локальні мережі будь-яку техніку: від мобільного телефону і комп'ютера до холодильника. При цьому одним з важливих параметрів нової технології є низька вартість пристрою зв'язку (в межах 20 доларів), його невеликі розміри (адже мова йде про мобільні пристрої) і, що важливо, сумісність, простота вбудовування в різні пристрої. Ми будемо використовувати недорогий модуль HC-05. У ньому використовується чіп BC417 плюс Flash-пам'ять і виводи GPIO.

Чіп підтримує специфікацію Bluetooth v2.0 + EDR, AT-команди, може працювати в режимі Master або Slave, підтримує швидкість обміну від 2400 до 1 382 400. Напруга живлення модуля становить 3,3 В, струм споживання ~ 50 мА, що дозволяє живити його від виведення Arduino +3,3 В. Для програмування модуля c допомогою AT-команд необхідно на вивід PIO11 подати +3,3 В. Підключимо модуль до плати Arduino і розглянемо найпростіші AT-команди. Схема підключення показана на рис. 31.1.


Рис. 31.1. Схема підключення модуля HC-05 до плати Arduino

Тепер на плату Arduino завантажимо скетч, показаний в лістингу 31.1.


#include <SoftwareSerial.h>
SoftwareSerial mySerial (2, 3); // вказуємо Піни RX і TX
void setup ()
{
pinMode (2, INPUT);
pinMode (3, OUTPUT);
Serial.begin (38400);
mySerial.begin (9600);
}
void loop ()
{
if (mySerial.available ())
{
int c = mySerial.read (); // читаємо з software-порту
Serial.write (c); // пишемо в hardware-порт
}
if (Serial.available ())
{
int c = Serial.read (); // читаємо з hardware-порту
mySerial.write (c); // пишемо в software-порт
}
}
}

Порядок підключення:

  1. Підключаємо модуль HC-05 до плати Arduino за схемою на рис. 31.1. Відключаємо провід, що веде до виводу 34 модуля (PIO11), від 3,3 В.
  2. Завантажуємо на плату Arduino скетч з лістингу 31.1.
  3. Світлодіод на платі повинен швидко блимати. Якщо не блимає або блимає інакше, відключаємо живлення модуля від 3,3 В, потім знову підключаємо пітаніе.
  4. Підключаємо провід, що веде до виводу 34 модуля (PIO11), до 3,3 В.
  5. Відкриваємо монітор послідовного порту Arduino і набираємо AT-команди з табл. 31.1. Дивимося результат виконання команд (рис. 31.2).

Таблиця 31.1

Наступний крок - двунаправленная передача даних між телефоном з OS Android і платою Arduino c модулем HC-05. Від'єднати контакт 34 Bluetooth-модуля від 3,3 В. Завантажимо і встановимо на телефон з Play Market додаток Bluetooth Terminal. Запустимo програму і встановимо з'єднання з нашим модулем (див.рис. 31.2). Передаємо Arduino і отримуємо (через монітор послідовного порту) з Arduino повідомлення (див. Рис. 31.3).


Рис. 31.2. Установка зв'язку з модулем HC-05

Рис. 31.3. Обмін повідомленнями між телефоном і платою Arduino