
Въведение
Серийната комуникация е основен метод за обмен на данни между Arduino и други устройства, включително компютри, сензори, модули и дори смартфони чрез Bluetooth. В тази статия ще разгледаме две от най-често използваните серийни комуникации с Arduino UNO: чрез USB или Bluetooth HC-05:
- Чрез USB кабела за програмиране.
- Чрез 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. Модулът има два режима на работа:
- Command mode – За конфигуриране на модула, напр. промяна на името, паролата, и други настройки.
- 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”.
Независимо дали искате да предавате данни към компютър или да управлявате устройства от смартфон, серийната комуникация е основен метод за свързване и обмен на данни между различни устройства.