Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Bluetooth HC-05 (Trema-модуль v2.0)

  1. Загальні відомості:
  2. Відео:
  3. підключення:
  4. Спосіб - 1: Використовуючи провідний шлейф і Piranha UNO
  5. Спосіб - 2: Використовуючи Trema Set Shield
  6. Спосіб - 3: Використовуючи провідний шлейф і Shield
  7. Харчування:
  8. Детальніше про модулі:
  9. приклади:
  10. Trema Bluetooth модуль в ролі ведучого (Master) передає дані:
  11. Скетч пошуку будь-яких Bluetooth пристроїв в радіусі дії:
  12. Скетч пошуку будь-яких Bluetooth пристроїв при підключенні модуля до апаратної шині UART1 плати Arduino Mega:
  13. Опис основних функцій бібліотеки:
  14. Масив findName:
  15. Масив findAddr:
  16. ! застосування:

Загальні відомості:

Наша взаимовыгодная связь https://banwar.org/

Trema-модуль Bluetooth HC-05 - це модуль бездротового зв'язку дозволяє передавати і приймати дані по радіоканалу на дозволеному ISM (Industry, Science and Medicine) діапазоні частот, від 2.4 ГГц до 2.5 ГГц, призначеному для використання в індустріальних, наукових і медичних цілях, використовуючи метод AFH (Adaptive Frequency Hopping Feature) - адаптований стрибкоподібної перебудови несучої частоти.

Відео:

Специфікація:

  • Напруга живлення: 3,3 ... 5 В
  • Струм при підключенні: до 40 мА (пошук, пару, підключення до інших Bluetooth пристроїв)
  • Струм при передачі даних: до 8 мА
  • Частотний діапазон: ISM 2,4 ... 2,48 ГГц
  • Потужність передавача: до +4 дБм
  • Чутливість приймача: -80 дБм
  • Дальність зв'язку: 10 м
  • Інтерфейс: UART (з програмованої швидкістю передачі даних)
  • Максимальна напруга на висновках TX і RX не повинно перевищувати напруга живлення модуля.
  • PIN-код за замовчуванням: +1234 (у деяких модулів 0000),
  • Налаштування UART за замовчуванням: Швидкість 38400 біт / сек, 8 біт даних, 1 стоп біт, без перевірки парності, з контролем даних.
  • Підтримувані швидкості UART: 9600,19200,38400,57600,115200,230400,460800 біт / сек.
  • Робоча температура: -25 ... +75 ° C

Всі модулі лінійки "Trema" виконані в одному форматі

підключення:

Trema Bluetooth модуль HC-05 підключається до Arduino по шині UART (можна використовувати як апаратну і програмну шину).

  • Висновок модуля TX підключається до апаратного (фіксованому) або програмного (призначеного) висновку RX Arduino . Це лінія шини UART для передачі даних від модуля до Arduino .
  • Висновок модуля RX підключається до апаратного (фіксованому) або програмного (призначеного) висновку TX Arduino . Це лінія шини UART для передачі даних в модуль від Arduino .
  • Висновок модуля K підключається до будь-якого висновку Arduino номер якого вказується в скетчі. Це лінія перекладу модуля в режим AT-команд. Модуль в звичайному режимі буде сприймати AT-команди, тільки після того як на цей висновок короткочасно подати високий рівень. Модуль перейде в режим AT-команд (на швидкості 38400 біт / с і не буде з'єднуватися з іншими модулями) якщо на ньому буде встановлений високий логічний рівень при подачі живлення або перезавантаження.

Модуль зручно підключати 3 способами, в залежності від ситуації:

Спосіб - 1: Використовуючи провідний шлейф і Piranha UNO

Використовуючи дроти « Тато мама », Підключаємо безпосередньо до контролера Piranha UNO.

Спосіб - 2: Використовуючи Trema Set Shield

Модуль можна підключити до UART входу Trema Set Shield.

Спосіб - 3: Використовуючи провідний шлейф і Shield

Використовуючи 2-х і 3-х провідні шлейфи, до Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO і тд.

Trema Bluetooth модуль HC-05 можна підключити і безпосередньо до комп'ютера (через адаптер USB-UART ), Передаючи AT-команди з програм терміналів, про те як це зробити описано в розділі Wiki AT-команди Bluetooth .

Харчування:

Вхідна напруга живлення 3,3 або 5 В постійного струму, подається на висновки Vcc і GND модуля.

Детальніше про модулі:

У ISM діапазоні частот працюють і радіо модулі nRF24L01 + , Але на відміну від цих модулів, які працюють на певній частоті діапазону, Trema-модуль Bluetooth HC-05 використовують метод AFH (Adaptive Frequency Hopping Feature) адаптивної стрибкоподібної перебудови несучої частоти (він змінює свою частоту 1600 разів в секунду). Несуча частота змінюється псевдовипадковим чином і заздалегідь відома тільки парі «ведучий - ведений», що забезпечує не тільки стійкість до перешкод (зайнятий канал? Не біда, перейдемо на інший) а й збереження конфіденційності даних.

Потужність сигналу Bluetooth модулів перед іншими модулями бездротового передачі даних полягає в простоті роботи (Вам не потрібно знати протоколи, працювати з регістрами, відстежувати сигнали і т.д.) і широкої поширеності даного типу передачі даних (Ви можете управляти Вашими пристроями, або отримувати їх показання , практично з будь-якого телефону, планшета, ноутбука).

Модуль не вимагає підключення антени, тому що вона вбудована (присутній на ПП модуля).

У ролі веденого, Trema Bluetooth модуль HC-05 підтримує метод автоматичного сполучення (створення пари) з іншими Bluetooth пристроями які виступають у ролі ведучих і ініціювали створення пари.

Trema Bluetooth модуль HC-05 підтримує автоматичне перепідключення до останнього пристрою (якщо інформація про сполученні з ним не була стерта користувачем зі списку пар). Якщо Ви встановили підключення до іншого Bluetooth пристрою і зв'язок з ним пропав (відключилася харчування, збільшилася відстань і т.д.), то після усунення причини зникнення зв'язку, пристрої знову будуть готові передавати / приймати дані, без Вашого втручання.

Trema Bluetooth модуль HC-05 , на відміну від Bluetooth модулів HC-06 , Може працювати не тільки в ролі веденого (slave), чекаючи підключення, але і в ролі ведучого (Master), ініціюючи пошук (виявлення), пару і підключення до інших Bluetooth модулями знаходяться в радіусі дії. Модуль здатний приймати і відправляти дані як в ролі ведучого (master), так і в ролі веденого (slave).

Використовуючи Trema Bluetooth модулі HC-05 можна створювати зв'язок між двома Arduino , Або між Arduino і іншими пристроями, як провідними (телефон, планшет, комп'ютер, ...), так і відомими (гарнітури, клавіатури, мишки, ...).

Спеціально для Trema Bluetooth модуль HC-05 нами розроблена бібліотека iarduino_Bluetooth_HC05 яка значно спрощує процес пошуку будь-яких Bluetooth пристроїв, створення ролей (master / slave) і сполучення. Пошук і підключення до інших модулів Bluetooth здійснюється за їхніми іменами а не адресами. При використанні бібліотеки для зв'язку двох Trema Bluetooth модулів HC-05 можна передавати рядки, значення і масиви будь-яких типів, при цьому бібліотека здійснює перевірку доставки даних використовуючи циклічно надлишковий код, так що Trema Bluetooth модуль HC-05 який передав дані отримує підтвердження прийому, а Trema Bluetooth модуль HC-05 отримав дані може оперувати інформацією про кількість елементів масиву та її розміру.

Детальніше про установку бібліотеки читайте в нашій інструкції ..

приклади:

Trema Bluetooth модуль в ролі веденого (Slave) приймає дані:

Зв'язок здійснюється між двома Trema Bluetooth модулями HC-05 використовують бібліотеку iarduino_Bluetooth_HC05 . Скетч модуля виконуючого роль master наведено в наступному прикладі.

#include <SoftwareSerial.h> // Підключаємо бібліотеку SoftwareSerial для спілкування з модулем з програмної шині UART #include <iarduino_Bluetooth_HC05.h> // Підключаємо бібліотеку iarduino_Bluetooth_HC05 для роботи з Trema Bluetooth модулем HC-05 SoftwareSerial softSerial (2,3); // Створюємо об'єкт softSerial вказуючи висновки RX, TX (можна вказувати будь-які висновки Arduino UNO). Висновок 2 Arduino підключається до висновку TX модуля, висновок 3 Arduino підключається до висновку RX модуля iarduino_Bluetooth_HC05 hc05 (4); // Створюємо об'єкт hc05 вказуючи будь висновок Arduino, який підключається до висновку K модуля int myArray [3]; // Оголошуємо масив в який будемо отримувати дані, можна створювати масиви або змінні будь-яких типів в .т.ч і char // void setup () {// Serial.begin (9600); // Почнемо передачу даних по апаратної шині UART для виведення результату в монітор послідовного порту Serial.print ( "begin:"); // Виводимо текст "begin:" в монітор послідовного порту if (hc05.begin (softSerial)) {Serial.println ( "Ok");} // Почнемо роботу з Trema модулем hc05, вказуючи об'єкт softSerial через який здійснюється зв'язок по шині UART else {Serial.println ( "Error");} // Якщо робота з модулем не ініціював, то виводимо повідомлення про помилку Serial.print ( "create slave:"); // Виводимо текст "create slave:" в монітор послідовного порту if (hc05.createSlave ( "MyName", "4567")) {Serial.println ( "Ok");} // Створюємо провідну роль модулю, вказуючи його ім'я і pin-код (у прикладі ім'я = "MyName", pin-код = "4567") else {Serial.println ( "Error");} // Якщо роль не створилася - виводимо повідомлення про помилку} // // void loop () {// if (hc05.available ()) {// Якщо є прийняті дані, то ... hc05.read (myArray); // Читаємо отримані дані в раніше оголошений масив myArray Serial.println (myArray [0]); // Виводимо 0 елемент масиву myArray в монітор послідовного порту Serial.println (myArray [1]); // Виводимо 1 елемент масиву myArray в монітор послідовного порту Serial.println (myArray [2]); // Виводимо 2 елемент масиву myArray в монітор послідовного порту} // Функції available () і read () працюють тільки при прийомі даних від зовнішнього Trema Bluetooth модуля використовує дану бібліотеку! } // Якщо передача даних виконується іншим Bluetooth модулем, то прийом даних здійснюється посимвольним читанням даних з UART

Ініціалізація модуля hc05.begin (); і створення відомою ролі hc05.createSlave (); може зайняти кілька секунд.
У цьому прикладі модуль підключається через програмний UART використовуючи бібліотеку SoftwareSerial, а при ініціалізації роботи з модулем hc05.begin () вказується об'єкт softSerial. Але модуль можна підключати і до апаратного UART, тоді при ініціалізації роботи з модулем hc05.begin () потрібно вказати Serial або Serial1, Serial2, Serial3, см. Приклад підключення до Arduino Mega.

При використанні Trema Bluetooth модуля HC-05 в якості веденого можна одноразово викликати функцію createSlave () із зазначенням імені та pin коду, після чого назавжди виключити цю функцію з коду. Тоді, при подачі живлення, Trema Bluetooth модуля HC-05 стартуватиме в режимі веденого і з'єднуватися з першим ведучим який правильно вкаже ім'я та pin веденого.

Функція createSlave () об'єкта hc05 дозволяє створити провідну роль Trema Bluetooth модулю HC-05 при підключенні до будь-яких Bluetooth модулями, але функції available () і read () об'єкта hc05 працюють тільки при організації зв'язку між двома Trema Bluetooth модулями HC-05 використовують бібліотеку iarduino_Bluetooth_HC05 ! Якщо дані приймаються від іншого Bluetooth модуля, то їх потрібно читати посимвольний з UART, тоді код loop буде виглядати так:

... // Якщо зовнішнім Bluetooth пристроєм передавальним дані є не Trema Bluetooth модуль, то ... void loop () {// Дані приймаються посимвольним читанням з UART ... if (softSerial.available ()) {// Якщо є прийняті дані, то ... String str; // Створюємо рядок str while (softSerial.available ()) {// Виконуємо цикл поки є що читати ... str1 + = softSerial.read (); // Читаємо черговий прийнятий символ з UART в рядок str delay (5); // Затримка на 5 мс на випадок повільного прийому} // Цикл завершений, значить читати більше нічого Serial.println (str); // Виводимо прочитані дані одним рядком} //} //

Рядки коду до функції loop залишаються без змін. Всі дані відправлені зовнішнім Bluetooth модулем приймаються як рядки.

Trema Bluetooth модуль в ролі ведучого (Master) передає дані:

Зв'язок здійснюється між двома Trema Bluetooth модулями HC-05 використовують бібліотеку iarduino_Bluetooth_HC05 . Скетч модуля виконуючого роль slave наведено в попередньому прикладі.

#include <SoftwareSerial.h> // Підключаємо бібліотеку SoftwareSerial для спілкування з модулем з програмної шині UART #include <iarduino_Bluetooth_HC05.h> // Підключаємо бібліотеку iarduino_Bluetooth_HC05 для роботи з модулем SoftwareSerial softSerial (2,3); // Створюємо об'єкт softSerial вказуючи висновки RX, TX (можна вказувати будь-які висновки Arduino UNO). Висновок 2 Arduino підключається до висновку TX модуля, висновок 3 Arduino підключається до висновку RX модуля iarduino_Bluetooth_HC05 hc05 (4); // Створюємо об'єкт hc05 вказуючи будь висновок Arduino, який підключається до висновку K модуля int myArray [3] = {123,456,789}; // Визначаємо масив з даними які будемо передавати, можна створювати масиви або змінні будь-яких типів, в т.ч. і char, але не більше 54 байт void setup () {// Serial.begin (9600); // Почнемо передачу даних по апаратної шині UART для виведення результату в монітор послідовного порту Serial.print ( "begin:"); // Виводимо текст "begin:" в монітор послідовного порту if (hc05.begin (softSerial)) {Serial.println ( "Ok");} // Почнемо роботу з Trema модулем hc05, вказуючи об'єкт softSerial через який здійснюється зв'язок по шині UART else {Serial.println ( "Error");} // Якщо робота з модулем не ініціював, то виводимо повідомлення про помилку Serial.print ( "create master:"); // Виводимо текст "create master:" в монітор послідовного порту if (hc05.createMaster ( "MyName", "4567")) {Serial.println ( "Ok");} // Створюємо провідну роль модулю, вказуючи ім'я і pin -код веденого до якого потрібно підключитися (в прикладі ім'я = "MyName", pin-код = "4567") else {Serial.println ( "Error");} // Якщо роль не створилася або не вдалося підключитися до веденого - виводимо повідомлення про помилку} // void loop () {// Serial.print ( "send:"); // Виводимо текст "send:" в монітор послідовного порту if (hc05.send (myArray)) {Serial.println ( "Ok");} // Передаємо дані масиву myArray через Trema-модуль bluetooth з перевіркою доставки else {Serial. println ( "Error");} // Якщо дані не прийняті веденим bluetooth пристроєм - виводимо повідомлення про помилку} // Функція send () призначена для відправки даних тільки для Trema Bluetooth модулів використовують дану бібліотеку!

Ініціалізація модуля hc05.begin (); і створення провідної ролі з підключенням до веденого hc05.createMaster (); може зайняти до хвилини.
У цьому прикладі модуль підключається через програмний UART використовуючи бібліотеку SoftwareSerial, а при ініціалізації роботи з модулем hc05.begin () вказується об'єкт softSerial. Але модуль можна підключати і до апаратного UART, тоді при ініціалізації роботи з модулем hc05.begin () потрібно вказати Serial або Serial1, Serial2, Serial3, см. Приклад підключення до Arduino Mega.

Функція createMaster () об'єкта hc05 дозволяє створити провідну роль Trema Bluetooth модулю HC-05 при підключенні до будь-яких Bluetooth модулями, але функція send () об'єкта hc05 працює тільки при організації зв'язку між двома Trema Bluetooth модулями HC-05 використовують бібліотеку iarduino_Bluetooth_HC05 ! Так як функція send () додає 4 службових байта до переданих даним (2 на початку і 2 в кінці), які приймач буде вважати за отримані дані. Якщо потрібно відправити дані на інші Bluetooth модулі, це краще зробити відправкою рядки по шині UART, тоді код loop буде виглядати так:

... // Якщо зовнішнім Bluetooth пристроєм приймають дані є не Trema Bluetooth модуль, то ... void loop () {// Дані передаються рядком або символами через UART ... softSerial.println (myArray [0]); // Відправляємо значення 0 елемента масиву myArray, яке буде прийнято як рядок softSerial.println (myArray [1]); // Відправляємо значення 1 елемента масиву myArray, яке буде прийнято як рядок softSerial.println (myArray [2]); // Відправляємо значення 2 елементи масиву myArray, яке буде прийнято як рядок} //

Рядки коду до функції loop залишаються без змін. Всі дані передаються символами (байтами) або рядками. З цього елементи масиву відправляються окремо.

Скетч пошуку будь-яких Bluetooth пристроїв в радіусі дії:

#include <SoftwareSerial.h> // Підключаємо бібліотеку SoftwareSerial для спілкування з модулем з програмної шині UART #include <iarduino_Bluetooth_HC05.h> // Підключаємо бібліотеку iarduino_Bluetooth_HC05 для роботи з модулем SoftwareSerial softSerial (2,3); // Створюємо об'єкт softSerial вказуючи висновки RX, TX (можна вказувати будь-які висновки Arduino UNO). Висновок 2 Arduino підключається до висновку TX модуля, висновок 3 Arduino підключається до висновку RX модуля iarduino_Bluetooth_HC05 hc05 (4); // Створюємо об'єкт hc05 вказуючи будь висновок Arduino, який підключається до висновку K модуля int myArray [3] = {123,456,789}; // Визначаємо масив з даними які будемо передавати, можна створювати масиви або змінні будь-яких типів, в т.ч. і char, але не більше 54 байт void setup () {// Serial.begin (9600); // Почнемо передачу даних по апаратної шині UART для виведення результату в монітор послідовного порту Serial.print ( "begin:"); // Виводимо текст "begin:" в монітор послідовного порту if (hc05.begin (softSerial)) {Serial.println ( "Ok");} // Почнемо роботу з Trema модулем hc05, вказуючи об'єкт softSerial через який здійснюється зв'язок по шині UART else {Serial.println ( "Error");} // Якщо робота з модулем не ініціював, то виводимо повідомлення про помилку} // void loop () {// int i = hc05.find (10); // Виконуємо пошук пристроїв, не довше 10 секунд: if (i) {Serial.print ( "found"); Serial.print (i); Serial.println ( "devices:"); for (int j = 0; j <i; j ++) {Serial.print ( "Name:"); Serial.print (hc05.findName [j]); Serial.print ( ", Address:"); Serial.print (hc05.findAddr [j]); Serial.println ( ";"); }} Else {Serial.println ( "Device not found.");}}

Ініціалізація модуля hc05.begin (); може зайняти кілька секунд.
У цьому прикладі модуль підключається через програмний UART використовуючи бібліотеку SoftwareSerial, а при ініціалізації роботи з модулем hc05.begin () вказується об'єкт softSerial. Але модуль можна підключати і до апаратного UART, тоді при ініціалізації роботи з модулем hc05.begin () потрібно вказати Serial або Serial1, Serial2, Serial3, см. Приклад підключення до Arduino Mega.

Скетч пошуку будь-яких Bluetooth пристроїв при підключенні модуля до апаратної шині UART1 плати Arduino Mega:

#include <iarduino_Bluetooth_HC05.h> // Підключаємо бібліотеку iarduino_Bluetooth_HC05 для роботи з модулем iarduino_Bluetooth_HC05 hc05 (2); // Створюємо об'єкт hc05 вказуючи будь висновок Arduino, який підключається до висновку K модуля int myArray [3] = {123,456,789}; // Визначаємо масив з даними які будемо передавати, можна створювати масиви або змінні будь-яких типів, в т.ч. і char, але не більше 54 байт // Модуль підключається до апаратної шині UART1. Висновок 19 Arduino (RX) підключається до висновку TX модуля, висновок 18 Arduino (TX) підключається до висновку RX модуля void setup () {// Serial.begin (9600); // Почнемо передачу даних по апаратної шині UART для виведення результату в монітор послідовного порту Serial.print ( "begin:"); // Виводимо текст "begin:" в монітор послідовного порту if (hc05.begin (Serial1)) {Serial.println ( "Ok");} // Почнемо роботу з Trema модулем hc05, вказуючи клас Serial1 через який здійснюється зв'язок з модулем else {Serial.println ( "Error");} // Якщо робота з модулем не ініціював, то виводимо повідомлення про помилку} // void loop () {// int i = hc05.find (10); // Виконуємо пошук пристроїв, не довше 10 секунд: if (i) {Serial.print ( "found"); Serial.print (i); Serial.println ( "devices:"); for (int j = 0; j <i; j ++) {Serial.print ( "Name:"); Serial.print (hc05.findName [j]); Serial.print ( ", Address:"); Serial.print (hc05.findAddr [j]); Serial.println ( ";"); }} Else {Serial.println ( "Device not found.");} Delay (1000); }

Ініціалізація модуля hc05.begin (); може зайняти кілька секунд.
У цьому прикладі модуль підключається до Arduino MEGA через апаратний UART1, а при ініціалізації роботи з модулем hc05.begin () вказується об'єкт Serial1. Підключення додаткових бібліотек і ініціалізація шини UART1 не потрібна Serial1.begin (38400) ;. У плати Arduino MEGA є 4 апаратних шини UART з якими працюють класи: Serial, Serial1, Serial2, Serial3, будь-який з них можна використовувати при ініціалізації модуля для роботи з ним.

Опис основних функцій бібліотеки:

Підключення бібліотеки:

#include <iarduino_Bluetooth_HC05.h> // Підключаємо бібліотеку для роботи з модулем iarduino_Bluetooth_HC05 hc05 (4); // Створюємо об'єкт hc05 вказуючі будь Висновок Arduino Який підключається до висновка K модуля

Функція begin ();

  • Призначення: Ініціалізація роботи з модулем по шіні UART.
  • Синтаксис: begin (ОБ'ЕКТ_UART);
  • Параметри:
    • Об'єкт - клас або об'єкт Який вікорістовується для роботи з шиною UART до якої підключеній модуль.
  • Значення, что повертаються: bool - результат ініціалізації (true або false).
  • Примітка:
    • Функція викликається 1 раз в коді setup.
    • Використовуваний ОБ'ЕКТ_UART не потребує попередньої ініціалізації (Serial.begin (ШВИДКІСТЬ);)
    • Можна вказати об'єкт програмної шини UART або клас Serial, Serial1, Serial2, Serial3 і т.д. в залежності від використовуваної плати Arduino. Якщо вказати клас Serial, то при завантаженні скетчу потрібно відключати модуль від Arduino, а всі висновки даних в монітор послідовного порту будуть сприйматися модулем як команди.
  • приклад:
hc05.begin (Serial1); // Почнемо роботу модуля по апаратної шині UART використовуючи клас Serial1 #include <SoftwareSerial.h> // Підключаємо бібліотеку SoftwareSerial для роботи з програмної шиною UART SoftwareSerial softSerial (2,3); // Створюємо об'єкт softSerial призначаючи висновки RX, TX (можна вказувати будь-які висновки Arduino UNO) ... hc05.begin (softSerial); // Почнемо роботу модуля з програмної шині UART використовуючи об'єкт softSerial

Функція createSlave ();

  • Призначення: Створення веденого Bluetooth пристрою (Slave) очікує підключення.
  • Синтаксис: createSlave (ІМ'Я, PIN-КОД);
  • параметри:
    • ІМ'Я - рядок містить ім'я призначається даному Bluetooth модулю.
    • PIN-КОД - рядок містить код доступу до даного Bluetooth модулю.
  • Значення, що повертаються: bool - результат створення відомого пристрою (true або false).
  • Примітка:
    • ІМ'Я не повинно перевищувати 32 символу.
    • PIN-КОД не повинен перевищувати 16 символів.
    • Раніше встановлені з'єднання (якщо вони були) будуть розірвані.
    • Якщо функція повернула true, то її подальший виклик не обов'язковий (навіть після відключення живлення).
      Модуль буде з'єднуватися з будь-якими провідними (Master) Bluetooth пристроями, які правильно введуть Ім'я та PIN.
  • приклад:
hc05.createSlave ( "MyName", "4567"); // Створення веденого з ім'ям "MyName" і PIN-кодом "4567"

Функція createMaster ();

  • Призначення: Створення провідного Bluetooth пристрою (Master) з підключенням до веденого пристрою.
  • Синтаксис: createMaster (ІМ'Я, PIN-КОД);
  • параметри:
    • ІМ'Я - рядок містить ім'я відомого Bluetooth пристрою до якого потрібно підключитися.
    • PIN-КОД - рядок містить код доступу веденого Bluetooth пристрою до якого потрібно підключитися.
  • Значення, що повертаються: bool - результат створення провідного пристрою і підключення до веденого (true або false).
  • Примітка:
    • ІМ'Я не повинно перевищувати 32 символу.
    • PIN-КОД не повинен перевищувати 16 символів.
    • Раніше встановлені з'єднання (якщо вони були) будуть розірвані.
    • Ведене пристрій (Slave) має перебувати в радіусі дії і чекати підключення.
    • Якщо функція повернула true, то її подальший виклик не обов'язковий (навіть після відключення живлення).
      Модуль буде автоматично з'єднуватися з зазначеним веденим (Slave) Bluetooth пристроєм, поки не буде викликана функція бібліотеки розриває дане з'єднання, як на провідному (Master), так і на підпорядкованому (Slave) Bluetooth пристрої.
  • приклад:
hc05.createMaster ( "MyName", "4567"); // Створення провідного з підключенням до веденого пристрою "MyName" по PIN-коду "4567"

Функція find ();

  • Призначення: Пошук будь-яких пристроїв Bluetooth в радіусі дії.
  • Синтаксис: find (ЧАС, [ПРАПОР]);
  • параметри:
    • ЧАС - число від 1 до 48 визначальне максимальний час пошуку Bluetooth пристроїв.
    • ПРАПОР - значення (true або false) дозволяє пошук за рівнем сигналу.
  • Значення, що повертаються: uint8_t - кількість знайдених Bluetooth пристроїв.
  • Примітка:
    • Час пошуку розраховується множенням числа ЧАС на 1,28 секунд.
    • Необов'язковий параметр ПРАПОР за замовчуванням скинутий (пошук ведеться в стандартному режимі).
    • Функція припиняє пошук при виявленні 5 пристроїв або після досягнення зазначеного часу.
    • Раніше встановлені з'єднання (якщо вони були) будуть розірвані.
    • Функція тільки знаходить Bluetooth пристрої, але не сполучає і не з'єднує модуль з ними.
    • Імена та адреси знайдених пристроїв доступні в строкових масивах findName і findAddr.
  • приклад:
i = hc05.find (10); // Шукаємо Bluetooth пристрої, але не більше ніж 10 * 1,28 секунд if (i) {// Якщо знайдено хоч одне Bluetooth пристрій, то ... for (int j = 0; j <i; j ++) {// проходимо по всіх знайдених пристроїв і виводимо результат в монітор послідовного порту Serial.print ( ") Name:"); Serial.print (hc05.findName [j]); Serial.print ( ", Address:"); Serial.println (hc05.findAddr [j]); }}

Функція end ();

  • Призначення: Розрив підключення до зовнішнього Bluetooth пристрою.
  • Синтаксис: end ();
  • Параметри: Ні.
  • Значення, що повертаються: Ні.
  • Примітка:
    • Функція працює незалежно від ролі модуля і того було підключення чи ні.
    • Після виконання функції, роль модуля зберігається.
    • Після виконання функції, автоматичне перепідключення до останнього Bluetooth пристрою буде недоступно.
  • приклад:
hc05.end (); // Розірвати з'єднання з зовнішнім Bluetooth пристроєм

Функція checkConnect ();

  • Призначення: Перевірка підключення до зовнішнього Bluetooth пристрою.
  • Синтаксис: checkConnect ();
  • Параметри: Ні.
  • Значення, що повертаються: bool - наявність з'єднання (true або false).
  • Примітка: Функція працює незалежно від ролі модуля.
  • приклад:
bool f = hc05.checkConnect (); // Отримуємо результат наявності з'єднання з зовнішнім Bluetooth пристроєм в змінну-прапор f

Функція send ();

  • Призначення: Відправка даних зовнішньому Trema Bluetooth модулю, так само використовує цю бібліотеку.
  • Синтаксис: send (ДАНІ);
  • параметри:
    • ДАНІ - рядок, змінна або масив будь-якого типу, який потрібно надіслати.
  • Значення, що повертаються: bool - підтвердження прийому даних зовнішнім Bluetooth пристроєм (true або false).
  • Примітка:
    • Функція працює тільки при організації зв'язку між двома Trema Bluetooth модулями використовують цю бібліотеку.
    • Розмір даних, що не повинен перевищувати 54 байта.
    • До передачі даних необхідно встановити з'єднання функціями createMaster () або createSlave ().
    • Відправляти дані модуль може незалежно від встановленої ролі (як Master, так і Slave).
    • Функція поверне true тільки якщо зовнішнє Trema Bluetooth пристрій використовує дану бібліотеку і воно отримало відправлені дані повністю, і без помилок (бібліотека перевіряє помилки звіряючи CRC16 на приймаючій стороні.
    • Функція здатна відправляти тільки ті масиви, розмір яких був явно вказаний при їх оголошенні.
    • Якщо цією функцією відправити дані на Bluetooth пристрій що не використовує цю бібліотеку, то воно отримає дані у вигляді рядка з двома додатковими символами на початку і кінці рядка.
  • приклад:
int a = тисяча двісті тридцять чотири; // Визначаємо змінну типу int (цілочисельні значення) long b [2] = {1234,5678}; // Визначаємо масив даних типу long (цілочисельні довгі значення) double c = 12.34; // Визначаємо змінну типу double (значення з плаваючою точкою) char d [12] = "iArduino.ru" // Визначаємо рядок з 12 символів (11 значущих символів + символ кінця рядка) ... hc05.send (a); // Відправляємо змінну «a» (без перевірки доставки) if (hc05.send (a)) {...} // Відправляємо змінну «a» (якщо дані доставлені, то виконається код в тілі оператора if) if (hc05. send (b)) {...} // Відправляємо змінну «b» (якщо дані доставлені, то виконається код в тілі оператора if) if (hc05.send (c)) {...} // Відправляємо змінну «c »(якщо дані доставлені, то виконається код в тілі оператора if) if (hc05.send (d)) {...} // Відправляємо змінну« d »(якщо дані доставлені, то виконається код в тілі оператора if) hc05. send ( "Prosto stroka"); // Відправляємо рядок (без перевірки доставки)

Функція available ();

  • Призначення: Перевірка наявності прийнятих даних від зовнішнього Trema Bluetooth модуля, так само використовує цю бібліотеку.
  • Синтаксис: available ([& ЕЛЕМЕНТИ [, & байт]);
  • параметри:
    • ЕЛЕМЕНТИ - необов'язкова посилання на змінну в яку повернеться кількість елементів в прийнятому масиві. Якщо прийнята змінна, а не масив, то повернеться 0.
    • Байт - необов'язкова посилання на змінну в яку повернеться кількість байт в прийнятому масиві або змінною.
  • Значення, що повертаються: bool - наявність або відсутність прийнятих даних доступних для читання (true або false).
  • Примітка:
    • Функція працює тільки при організації зв'язку між двома Trema Bluetooth модулями використовують цю бібліотеку.
    • Якщо немає прийнятих даних, то функція поверне false, а змінні на які вказують посилання залишаться без змін.
    • Якщо є прийняті дані доступні для читання, то функція поверне true, а самі дані можна прочитати функцією read ().
    • Якщо дані прийняті з помилкою (не співпали CRC16) то функція поведе себе так, як ніби немає прийнятих даних.
    • Приймати дані модуль може незалежно від встановленої ролі (як Master, так і Slave).
    • Функцію можна використовувати для перевірки отримання даних від Bluetooth модулів не використовують цю бібліотеку, так як в їх даних не буде присутній CRC16.
  • приклад:
int a; // Оголошуємо змінну в якій буде зберігатися кількість елементів прийнятого масиву int b; // Оголошуємо змінну в якій буде зберігатися розмір прийнятих даних в байтах if (hc05.available ()) {...} // Якщо є прийняті дані, то виконається код в тілі оператора if if (hc05.available (& a)) { ...} // Теж саме, тільки в змінної «а» буде знаходитися число дорівнює кількості елементів в прийнятому масиві if (hc05.available (& a, & b)) {...} // Теж саме, тільки в змінної «b »буде знаходитися число дорівнює кількості байт в прийнятому масиві або змінної

Функція read ();

  • Призначення: Читання даних прийшли від зовнішнього Trema Bluetooth модуля, так само використовує цю бібліотеку.
  • Синтаксис: read (ЗМІННА);
  • параметри:
    • ЗМІННА - в яку будуть записані прийняті дані (рядки, числа, масиви).
  • Значення, що повертаються: bool - підтвердження успішного читання (true або false).
  • Примітка:
    • Функція працює тільки при організації зв'язку між двома Trema Bluetooth модулями використовують цю бібліотеку.
    • До прийому даних необхідно перевірити їх наявність функцією available ().
    • Тип змінної в яку читаються дані повинен збігатися з типом даних, що передаються.
      Читання відбудеться навіть якщо типи не збігаються, але прийняті дані можуть відрізнятися від переданих.
    • Приймати дані модуль може незалежно від встановленої ролі (як Master, так і Slave).
    • Якщо після функції available () і до функції read () виконати будь-які інші функції бібліотеки, то прийняті дані будуть втрачені.
    • Функцію можна використовувати для отримання даних від Bluetooth модулів не використовують цю бібліотеку, так як перед цією функцією потрібно звернутися до функції available ().
  • приклад:
int a; // Оголошуємо змінну типу int (цілочисельні значення) if (hc05.available ()) {hc05.read (a);} // Якщо є прийняті дані, то читаємо їх в змінну «a» long b [2]; // Оголошуємо масив даних типу long (цілочисельні довгі значення) if (hc05.available ()) {hc05.read (b);} // Якщо є прийняті дані, то читаємо їх в масив «b»

Функція runAT ();

  • Призначення: Виконання AT-команд і висновок результату.
  • Синтаксис: runAT (КОМАНДА [, ЧАС [, ВИХІД]]);
  • параметри:
    • КОМАНДА - рядок містить AT-команду яку потрібно виконати.
    • ЧАС - позитивне ціле число мілісекунд яке відводиться на виконання команди (за замовчуванням 500 мс).
    • ВИХІД - прапор (true або false) дозволяє достроковий вихід при успішному виконанні команди (за замовчуванням true).
  • Значення, що повертаються: char * - покажчик на рядок з відповіддю модуля.
  • Примітка:
    • Ця функція дозволяє виконувати операції з модулем які не ввійшли в функціонал бібліотеки.
    • Результат виконання AT-команди можна аналізувати як по рядку відповіді модуля, так і за значенням змінної flgResult.
  • приклад:
Serial.println (hc05.runAT ( "AT \ r \ n")); // Виконуємо AT-команду "AT" - тест, результат виводимо в монітор послідовного порту hc05.runAT ( "AT \ r \ n"); // Виконуємо AT-команду "AT" - тест if (hc05.flgResult <0) {...} // Якщо у відповіді зустрілася фраза "ERROR: (x)" - помилка, де x це число if (hc05.flgResult > 0) {...} // Якщо у відповіді зустрілася фраза "OK \ r \ n" - успішне виконання команди if (hc05.flgResult == 0) {...} // Якщо у відповіді немає ні помилки ні успіху - результат виконання AT-команди не визначений

Мінлива flgResult:

Містить результат виконання останньої AT-команди (тип int8_t), -1: Error (*), 0: Невідомо, 1: OK.

Масив findName:

Містить п'ять рядків з іменами (або адресами) знайдених Bluetooth пристроїв (тип char *).

Масив findAddr:

Містить п'ять рядків з адресами знайдених Bluetooth пристроїв (тип char *).

Бібліотека працює тільки з Trema Bluetooth модулями HC-05 .

Якщо потрібно прийняти або передати дані Bluetooth пристрою яке не є Trema-модулем, або не використовує дану бібліотеку, то з'єднання з цим пристроєм виконується функціями createMaster () або createSlave (), а передача і прийом даних здійснюється через стандартні функції об'єкта UART через який здійснюється зв'язок з модулем, см. додаток до перших двох прикладів.

! застосування:

  • Створення зв'язку між двома Arduino .
  • Створення зв'язку між Arduino і іншими провідними Bluetooth пристроями: телефонами, планшетами, комп'ютерами і т.д.
  • Створення зв'язку між Arduino і іншими відомими Bluetooth пристроями: гарнітурами, клавіатурами, мишками і т.д.
  • Дистанційне керування роботами, пристроями, проектами і т.д.
  • Дистанційне отримання даних від датчиків, детекторів, сигналізацій і т.д.
  • Створення Bluetooth ретрансляторів для збільшення дальності бездротового зв'язку.

ПОСИЛАННЯ:

Зайнятий канал?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: