Серийна комуникация с Arduino UNO чрез USB или Bluetooth HC-05

Arduino UNO USB or bluetooth HC-05 serial communication

Въведение

Серийната комуникация е основен метод за обмен на данни между Arduino и други устройства, включително компютри, сензори, модули и дори смартфони чрез Bluetooth. В тази статия ще разгледаме две от най-често използваните серийни комуникации с Arduino UNO: чрез USB или Bluetooth HC-05:

  1. Чрез USB кабела за програмиране.
  2. Чрез Bluetooth HC-05 модул за безжична комуникация.

Серийна комуникация с Arduino чрез USB кабл

Когато използваме Arduino и го свържем към компютър чрез USB кабела, можем да обменяме данни между компютъра и Arduino с помощта на серийния монитор на Arduino IDE. Това е изключително полезно при отстраняване на грешки и мониторинг на данни в реално време. Ако не знаете още основната функционалност на Arduino IDE, може да научите за него в нашата страница Arduino IDE бърз преглед.

Как работи?

Arduino разполага с вграден сериен порт, който комуникира с компютъра чрез USB интерфейса. Това ни позволява да изпращаме и получаваме данни в реално време. Функцията Serial.begin() се използва за инициализиране на серийната комуникация със зададена скорост (baud rate), обикновено 9600.

Примерен код за серийна комуникация през USB кабела

В този пример ще изпращаме съобщение към серийния монитор на Arduino IDE и ще четем данни, изпратени от компютъра към Arduino.

void setup() {
  
  Serial.begin(9600); // Инициализиране на серийната комуникация със скорост 9600 baud
  while (!Serial) { // изчаква, докато не се установи сериен порт
    ; 
  }
  Serial.println("Arduino е готов за комуникация!");
}

void loop() {
  
  if (Serial.available() > 0) { // Проверка дали има входящи данни
    char receivedChar = Serial.read(); // Четене на входящия байт
    
    Serial.print("Получен символ: "); // Показване на получените данни в сериен монитор
    Serial.println(receivedChar);     // Показване на получените данни в сериен монитор
  }
  
  Serial.println("Това е тестово съобщение от Arduino"); // Изпращане на съобщение на всеки 2 секунди
  delay(2000);
}

Обяснение на кода:

  • Serial.begin(9600): стартира серийната комуникация със скорост 9600 бода.
  • while (!Serial): Изчаква докато се вдигне(установи) серийния порт
  • Serial.print() и Serial.println(): изпращат данни към серийния монитор. Разликата между двете е, че Serial.print() изпраща данни и остава на същия ред, докато Serial.println() след изпращането на данни до серийния монитор минава на нов ред (new line).
  • Serial.available() > 0: проверява дали има данни, изпратени от компютъра към Arduino. 
  • Serial.read(): прочита тези данни.

Ако срещате проблеми с разбирането на командите! Офицялния сайт на Arduino, предоставя пълно обяснение на всички функции, библиотеки, променливи и как да ги използваме, както и много други на тяхната страница “www.arduino.cc/reference/

Серийна комуникация с Arduino чрез Bluetooth HC-05

Bluetooth HC-05 е широко разпространен Bluetooth модул, който може да се свърже към Arduino за безжична комуникация. Този модул е идеален за комуникация на къси разстояния (около 10 метра) и често се използва за управление на роботи, светодиоди, релета и други устройства, използвайки смартфон или лаптоп.

Какво представлява Bluetooth модул HC-05?

Bluetooth HC-05 е серийно базиран Bluetooth модул, който използва UART (Universal Asynchronous Receiver/Transmitter) интерфейс за комуникация с Arduino. Модулът има два режима на работа:

  1. Command mode – За конфигуриране на модула, напр. промяна на името, паролата, и други настройки.
  2. Data mode – За безжичен обмен на данни между Arduino и друго Bluetooth устройство.

Модулът HC-05 работи на 3.3V логически нива, така че трябва да внимаваме да използваме резистивен делител за връзка с Arduino, който работи на 5V.

Свързване на Bluetooth HC-05 към Arduino UNO

Свързването на HC-05 към Arduino става чрез следните пинове:

  • VCC -> 5V на Arduino
  • GND -> GND на Arduino
  • TX (Transmit) -> RX (Pin 0) на Arduino
  • RX (Receive) -> TX (Pin 1) на Arduino (през резистивен делител).

Ако търсите необходимата информация за хардуера на Arduino UNO, както и неговата диаграма на пиновете, може да разгледате нашата страница за него.

Примерен код за комуникация чрез Bluetooth HC-05

Този код позволява безжична комуникация между Arduino и Bluetooth-устройство (като смартфон или лаптоп). Можете да използвате приложение като “Serial Bluetooth Terminal”, за да изпращате и получавате данни.

void setup() {
  
  Serial.begin(9600); // Инициализиране на серийната комуникация с Bluetooth HC-05
  Serial.println("Bluetooth е готов за комуникация!");
}

void loop() {
  
  if (Serial.available() > 0) { // Проверка дали има входящи данни от Bluetooth
    
    char receivedChar = Serial.read(); // Четене на входящия байт
    Serial.print("Получен символ чрез Bluetooth: "); // Показване на получените данни в сериен монитор
    Serial.println(receivedChar);

    
    Serial.print("Arduino получи: ");  // Отговор към Bluetooth устройството
    Serial.println(receivedChar);
  }
}

Обяснение на кода:

  • Serial.begin(9600): Инициализира серийната комуникация между Arduino и Bluetooth HC-05.
  • if (Serial.available() > 0): Проверява дали има входящи данни от Bluetooth HC-05.
  • Serial.read(): Изчита данните, изпратени от смартфона или друго Bluetooth устройство.
  • Serial.print(): Изпраща получените данни обратно като отговор през Bluetooth.
  • Arduino: отговаря на всяко получено съобщение, изпращайки обратно потвърждение.

Настройка на Bluetooth модула

Преди да използвате HC-05 в проект, може да искате да промените някои от неговите настройки като:

  • Име на устройството – За да може лесно да бъде открит.
  • Парола – Обикновено по подразбиране е 1234 или 0000.

За да влезете в команден режим и да конфигурирате модула, можете да изпращате AT команди чрез сериен терминал, които ще разгледаме в друга статия.

Как да използваме тези методи за серийна комуникация?

Серийната комуникация чрез USB кабел е изключително удобна за първоначални тестове и програмиране на Arduino. Тя ви позволява да виждате данни в реално време и лесно да променяте програмирания код.

От друга страна, Bluetooth HC-05 осигурява безжична комуникация, което е особено полезно за проекти, където искате да управлявате устройства от разстояние, без да се налага физическо свързване на Arduino към компютър. Bluetooth модулът също така е много популярен в мобилни проекти като роботи, системи за домашна автоматизация и дори в индустриални приложения.

Заключение

Серийната комуникация е изключително мощен инструмент в света на Arduino проектите. Чрез използването на USB комуникация можем да дебъгваме и контролираме проекта, докато Bluetooth HC-05 ни предоставя безжична свързаност за по-сложни и гъвкави проекти. В тази статия ние се постарахме се да ви предоставим основите в “Серийна комуникация с Arduino UNO чрез USB или Bluetooth HC-05”.

Независимо дали искате да предавате данни към компютър или да управлявате устройства от смартфон, серийната комуникация е основен метод за свързване и обмен на данни между различни устройства.