Проект 31: Бездротовий зв'язок. Модуль Bluetooth HC-05
В цьому експерименті розглянемо роботу модуля Bluetooth HC-05, що дозволяє платі Arduino встановити бездротовий зв'язок і обмінюватися даними з іншими пристроями по протоколу Bluetooth.
Необхідні компоненти:
- контролер Arduino UNO R3;
- плата для прототипування;
- модуль Bluetooth HC-05;
- дроти тато-тато.
- телефон або планшет з OS Android.
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-порт
}
}
}
Порядок підключення:
- Підключаємо модуль HC-05 до плати Arduino за схемою на рис. 31.1. Відключаємо провід, що веде до виводу 34 модуля (PIO11), від 3,3 В.
- Завантажуємо на плату Arduino скетч з лістингу 31.1.
- Світлодіод на платі повинен швидко блимати. Якщо не блимає або блимає інакше, відключаємо живлення модуля від 3,3 В, потім знову підключаємо пітаніе.
- Підключаємо провід, що веде до виводу 34 модуля (PIO11), до 3,3 В.
- Відкриваємо монітор послідовного порту 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