Керування Bluetooth Модулем HC-05 через телефон Android

WIFI, Bluetooth, RF, Кодові дистанційні замки. Використання Інтернету та управління СМС повідомленнями, створення систем управління через інтернет
Відповісти
Аватар користувача
Arduino
Site Admin
Повідомлень: 99
З нами з: 16 травня 2017 18:18

Керування Bluetooth Модулем HC-05 через телефон Android

Повідомлення Arduino »

Як проводити Керування Bluetooth Модулем через телефон Android розглянемо з використанням готового модуля для макетування без пайки
HC-05.
Частково тема розпочата в статті про програму термінала http://forum.arduinka.biz.ua/viewtopic.php?f=25&t=38
В цьому прикладі показана робота модуля Bluetooth HC-05, що дозволяє платі Arduino встановити бездротовий зв'язок і обмінюватися даними з іншими пристроями по протоколу Bluetooth.
Необхідні компоненти:
• контролер Arduino UNO R3;
• плата для прототипування;
• модуль Bluetooth HC-05;
• дроти для макетування "тато-тато".
• телефон або планшет з OS Android.

Bluetooth - одна з технологій бездротової передачі даних. Специфікація була розроблена ще в 1998 р дозволяє об'єднувати в локальні мережі будь-яку техніку: від мобільного телефону і комп'ютера до холодильника. При цьому одним з важливих параметрів нової технології є низька вартість пристрою зв'язку (в межах 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-команди. Схема підключення показана нижче:
uno-hc-05.jpg

Код: Виділити все

#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:

1. Підключаємо модуль HC-05 до плати Arduino за схемою на малюнку. Відключаємо провід, що веде до виводу 34 модуля (PIO11), від 3,3 В.
2. Завантажуємо на плату Arduino скетч з лістингу вище.
3. Світлодіод на платі повинен швидко блимати. Якщо не блимає або блимає інакше, відключаємо живлення модуля від 3,3 В, потім знову підключаємо живлення.
4. Підключаємо провід, що веде до виводів 34 модуля (PIO11), до 3,3 В.
5. Відкриваємо монітор послідовного порту Arduino і набираємо AT-команди з таблиці.
Дивимося результат виконання команд. При правильній взємодії модуля мають бути наступні відгукки на команди:
uno-hc-05-2.jpg
Наступний крок - двостороння передача даних між телефоном з OS Android і платою Arduino та модулем Bluetooth HC-05.
  • Від'єднати контакт 34 Bluetooth-модуля від 3,3 В.
  • Запустимо програму і встановимо з'єднання з нашим модулем
  • Передаємо на Arduino і отримуємо (через монітор послідовного порту) з Arduino повідомлення (див.фото).
uno-hc-05-3.jpg
Результати виконання команд залежать від телефону, версії ОС та прошивки модуля Bluetooth
uno-hc-05-4.jpg
Cb4y
Повідомлень: 2
З нами з: 28 лютого 2019 18:52

Re: Керування Bluetooth Модулем HC-05 через телефон Android

Повідомлення Cb4y »

Доброго часу доби. Склалась тека ситуація, коли потрібно зробити одну річ не зовсім по спеціальності а проконсультуватись поблизу нема в кого. Тому прошу допомоги тут.
Суть проблеми така: потрібно прив'язати GPS модуль (поки що таку антену https://ru.aliexpress.com/item/Free-shi ... 965a9bcca2) надалі буде модуль NEO-M8N?, через блютус модуль, в даному випадку НС-05, до Андроіда 4+ Програма стоїть в даному випадку Агрібус Наві https://ru.aliexpress.com/item/Free-shi ... 965a9bcca2 але можливо далі буде якась інша.
Проблема в тому, що ніяк не можу їх всіх подружити. Антена через ЮСБ працює та налаштовується через Ю-центр. Блютус модуль теж привязується до телефона по блютусу, індикатор реагує на з'єднання, починає мигати два рази а потім пауза близько 2 сек. Через конвертор теж програмується АТ командами, все працює і адекватно відповідає а координати телефон не отримує. Під'єднував RX на TX, TX на RX, вже навіть понижувач сигналу робив на двох резисторах 10кОм. Швидкість і там і там виставлена на 9600. Що йому ще треба?
Допоможіть будь ласка вирішити дану проблему.
Cb4y
Повідомлень: 2
З нами з: 28 лютого 2019 18:52

Re: Керування Bluetooth Модулем HC-05 через телефон Android

Повідомлення Cb4y »

Неправильно дав посилання на Агрібус Наві. Ще не розібрався як тут повідомлення редагувати.
https://play.google.com/store/apps/deta ... Navi&hl=uk
Аватар користувача
Arduino
Site Admin
Повідомлень: 99
З нами з: 16 травня 2017 18:18

Re: Керування Bluetooth Модулем HC-05 через телефон Android

Повідомлення Arduino »

Cb4y писав: 28 лютого 2019 19:19 Доброго часу доби. Склалась тека ситуація, коли потрібно зробити одну річ не зовсім по спеціальності а проконсультуватись поблизу нема в кого. Тому прошу допомоги тут.
Суть проблеми така: потрібно прив'язати GPS модуль (поки що таку антену https://ru.aliexpress.com/item/Free-shi ... 965a9bcca2) надалі буде модуль NEO-M8N?, через блютус модуль, в даному випадку НС-05, до Андроіда 4+ Програма стоїть в даному випадку Агрібус Наві https://ru.aliexpress.com/item/Free-shi ... 965a9bcca2 але можливо далі буде якась інша.
Проблема в тому, що ніяк не можу їх всіх подружити. Антена через ЮСБ працює та налаштовується через Ю-центр. Блютус модуль теж привязується до телефона по блютусу, індикатор реагує на з'єднання, починає мигати два рази а потім пауза близько 2 сек. Через конвертор теж програмується АТ командами, все працює і адекватно відповідає а координати телефон не отримує. Під'єднував RX на TX, TX на RX, вже навіть понижувач сигналу робив на двох резисторах 10кОм. Швидкість і там і там виставлена на 9600. Що йому ще треба?
Допоможіть будь ласка вирішити дану проблему.
Чи не замала швидкість роботи обрана для Блютус? 9600 - це мізер. Рівень сигналу точно не має значення для обміну, якщо обмін принципово не йде.
Відповісти

Повернутись до “Передача даних та Інтернет”