Arduino Bluetooth
Trong bài hướng dẫn này, chúng ta sẽ học:
- Cách sử dụng Bluetooth với Arduino
- Cách gửi dữ liệu từ Arduino tới ứng dụng trên điện thoại thông minh qua Bluetooth
- Cách nhận dữ liệu trên Arduino từ ứng dụng trên điện thoại thông minh qua Bluetooth
- Cách điều khiển Arduino từ ứng dụng trên điện thoại thông minh qua Bluetooth

Phạm vi của hướng dẫn này:
- Arduino trao đổi dữ liệu với ứng dụng trên điện thoại thông minh. Việc giao tiếp giữa hai Arduino thông qua Bluetooth sẽ được trình bày trong một bài hướng dẫn khác.
- Module Bluetooth HC-05 được sử dụng trong bài hướng dẫn này. Mô-đun này được sử dụng rộng rãi và phổ biến.
- Bạn có thể sử dụng bất kỳ ứng dụng Android/iOS nào. Hướng dẫn này sẽ sử dụng Bluetooth Serial Monitor App trên Android để minh họa.
- Bạn có thể điều khiển bất cứ thứ gì được kết nối với Arduino từ ứng dụng trên điện thoại thông minh. Hướng dẫn này sẽ lấy đèn LED và động cơ servo làm ví dụ.
Hướng dẫn này nói về việc sử dụng Bluetooth cổ điển (Bluetooth 2.0). Nếu bạn đang tìm kiếm Bluetooth Low Energy - BLE (Bluetooth 4.0), hãy xem hướng dẫn tương tự này: Arduino - BLE
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | HC-05 Bluetooth Module | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Giới thiệu về mô-đun Bluetooth HC-05
HC-05 là một mô-đun Bluetooth nối tiếp. Nó hoạt động như một bộ chuyển đổi Serial sang Bluetooth. Nó thực hiện:
- Nhận dữ liệu từ chân Serial RX và truyền dữ liệu đó tới thiết bị được ghép nối (chẳng hạn như điện thoại thông minh) qua Bluetooth
- Nhận dữ liệu từ Bluetooth (từ thiết bị được ghép nối) và gửi dữ liệu đó đến chân Serial TX
Cụ thể hơn, trong bối cảnh Arduino giao tiếp với ứng dụng trên điện thoại thông minh (Android/iOS):
- Arduino kết nối với mô-đun Bluetooth HC-05 thông qua các chân Serial/SoftwareSerial
- Mô-đun Bluetooth HC-05 được ghép nối với một ứng dụng trên điện thoại thông minh
- Arduino gửi dữ liệu đến ứng dụng trên điện thoại chỉ bằng cách gửi dữ liệu qua Serial/SoftwareSerial
- Arduino nhận dữ liệu từ ứng dụng trên điện thoại chỉ bằng cách đọc dữ liệu từ Serial/SoftwareSerial
- Không cần mã Bluetooth đặc biệt nào trên Arduino
Sơ đồ chân

Mô-đun Bluetooth HC-05 có 6 chân:
- Chân Enable/Key được dùng để chuyển giữa Chế độ dữ liệu (đặt ở mức LOW) và Chế độ lệnh (đặt ở mức HIGH). Nếu không được kết nối, nó sẽ ở chế độ dữ liệu mặc định
- Chân VCC: Chân cấp nguồn, kết nối chân này với +5V của nguồn cấp
- Chân GND: Chân cấp nguồn, kết nối chân này với GND của nguồn cấp
- Chân TX: Chân dữ liệu nối serial, kết nối chân này với chân RX của Arduino. Dữ liệu nhận được qua Bluetooth sẽ được gửi tới chân này dưới dạng dữ liệu serial.
- Chân RX: Chân dữ liệu nối serial, kết nối chân này với chân TX của Arduino. Dữ liệu nhận được từ chân này sẽ được gửi đến Bluetooth
- Chân trạng thái: Chân này được kết nối với đèn LED trên bo mạch, có thể dùng làm phản hồi để kiểm tra Bluetooth có hoạt động đúng hay không.
Tuy nhiên, đối với các chức năng cơ bản, chúng ta chỉ cần sử dụng 4 chân của module Bluetooth HC-05 để kết nối với Arduino.
Mô-đun Bluetooth HC-05 cũng có hai thành phần tích hợp sẵn:
- Một đèn LED: cho biết trạng thái của mô-đun
- Nhấp nháy một lần mỗi 2 giây: Mô-đun đã vào Chế độ Lệnh
- Nhấp nháy liên tục: Đang chờ kết nối trong Chế độ Dữ liệu
- Nhấp nháy hai lần mỗi giây: Kết nối thành công trong Chế độ Dữ liệu
- Nút: có thể được dùng để điều khiển chân Key/Enable để chọn chế độ vận hành (Chế độ Dữ liệu hoặc Chế độ Lệnh)
Cách hoạt động
Mô-đun Bluetooth HC-05 có hai chế độ hoạt động:
- Chế độ dữ liệu: được sử dụng để trao đổi dữ liệu với thiết bị ghép nối
- Chế độ lệnh: được sử dụng để cấu hình tham số.
May mắn thay, mô-đun Bluetooth HC-05 có thể hoạt động với Arduino bằng cách sử dụng thiết lập mặc định mà không cần cấu hình.
Cài đặt mặc định của HC-05
| Default Bluetooth Name | “HC-05” |
|---|---|
| Default Password | 1234 or 0000 |
| Default Communication | Slave |
| Default Mode | Data Mode |
| Default Data Mode Baud Rate | 9600, 8, N, 1 |
| Default Command Mode Baud Rate | 38400, 8, N, 1 |
Về Ứng dụng Bluetooth Serial Monitor
Ứng dụng Bluetooth Serial Monitor là một ứng dụng di động có giao diện người dùng trông giống như Serial Monitor của Arduino IDE. Nó giao tiếp với Arduino qua Bluetooth. Bạn có thể tương tác với Arduino thông qua ứng dụng này như thể đang dùng Serial Monitor trên máy tính của bạn, mà không cần thêm bất kỳ mã đặc biệt nào cho mô-đun Bluetooth trong mã Arduino của bạn, bằng cách thực hiện bước sau:
- Kết nối Arduino với module Bluetooth HC-05
- Cài đặt Bluetooth Serial Monitor App trên điện thoại thông minh của bạn
- Mở ứng dụng và ghép nối với module Bluetooth HC-05
Và bây giờ bạn có thể gửi và nhận dữ liệu từ Arduino giống như Serial Monitor của Arduino IDE. Bạn không cần chỉnh sửa mã Arduino hiện có hoặc thêm bất kỳ mã Bluetooth nào vào mã Arduino mới.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Bảng đấu dây
| Arduino Pins | HC-05 Bluetooth Pins |
|---|---|
| RX (Pin 0) | TX |
| TX (Pin 1) | RX |
| 5V | VCC |
| GND | GND |
| Enable/Key (NOT connected) | |
| State (NOT connected) |
※ Lưu ý:
Bạn có thể sử dụng các chân Arduino khác bằng cách thay đổi đối tượng Serial trong mã Arduino sang Serial1, Serial2, ..., hoặc SoftwareSerial nếu có.
Cách Lập Trình Cho Bluetooth
Không cần mã riêng dành cho Bluetooth. Chúng ta chỉ cần sử dụng mã Serial.
Arduino gửi dữ liệu đến Ứng dụng Bluetooth trên điện thoại thông minh
Để gửi dữ liệu từ Arduino đến ứng dụng Bluetooth trên điện thoại thông minh, chúng ta cần dùng đoạn mã Arduino sau đây:
Trong ví dụ này, chúng ta sẽ gửi “Arduino ở đây, hãy ra lệnh cho tôi!” từ Arduino đến Ứng dụng Bluetooth trên điện thoại thông minh mỗi giây
Hướng dẫn từng bước
- Cài đặt Bluetooth Serial Monitor App trên điện thoại thông minh của bạn
- Nối module Bluetooth HC-05 với Arduino theo sơ đồ kết nối ở trên
- Sao chép mã ở trên và mở nó bằng Arduino IDE
- Nhấp vào Tải lên nút trên Arduino IDE để tải mã lên Arduino. Bạn có thể gặp lỗi khi tải mã lên Arduino. Nếu vậy, ngắt kết nối các chân TX và RX khỏi module Bluetooth, tải mã lên, và sau đó kết nối lại các chân RX/TX.
- Mở Serial Monitor trên Arduino IDE
- Mở ứng dụng Bluetooth Serial Monitor trên điện thoại thông minh của bạn
- Chọn chế độ Bluetooth Classic

- Ghép cặp với mô-đun Bluetooth HC-05

- Xem kết quả trên ứng dụng Android.

- Xem kết quả trên Serial Monitor của Arduino IDE.
Bạn sẽ thấy dữ liệu trên Serial Monitor của Arduino IDE và trên ứng dụng Android là giống nhau.
Ứng dụng Bluetooth gửi dữ liệu đến Arduino
Đoạn mã dưới đây làm gì:
- Ứng dụng Bluetooth gửi dữ liệu đến Arduino
- Arduino đọc dữ liệu và gửi phản hồi lại cho Bluetooth:
Hướng dẫn từng bước
- Sao chép mã ở trên và mở nó bằng Arduino IDE
- Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên Arduino
- Mở Serial Monitor trên Arduino IDE
- Mở ứng dụng Android và ghép nối với mô-đun Bluetooth HC-05 (tương tự như ví dụ trước)
- Sau khi kết nối, gõ "LED BẬT" hoặc "LED TẮT" trên ứng dụng Android và nhấp nút "GỬI"

- Arduino nhận dữ liệu và in ra phản hồi qua cổng Serial. Dữ liệu này sẽ được gửi đến ứng dụng Bluetooth
- Xem kết quả trên Ứng dụng Android

- Xem kết quả trên Serial Monitor của Arduino IDE
Bạn sẽ thấy dữ liệu trên Serial Monitor của Arduino IDE và trên ứng dụng Android là hoàn toàn giống nhau.
Mã Arduino - Điều khiển LED bằng ứng dụng trên điện thoại thông minh qua Bluetooth
Đoạn mã Arduino ví dụ dưới đây chấp nhận hai lệnh (“ON” và “OFF”) từ ứng dụng Bluetooth Serial Monitor để bật/tắt một đèn LED tích hợp sẵn.
Bạn có thể xem các chỉ dẫn chi tiết hơn tại bài hướng dẫn Arduino điều khiển đèn LED qua Bluetooth.
Mã Arduino - Điều khiển động cơ servo bằng ứng dụng điện thoại thông minh qua Bluetooth
Mã Arduino dưới đây nhận giá trị góc từ ứng dụng Bluetooth Serial Monitor để điều khiển góc của động cơ servo.
Bạn có thể xem chi tiết các hướng dẫn tại bài hướng dẫn Arduino điều khiển động cơ servo qua Bluetooth.
Nếu ứng dụng Bluetooth Serial Monitor hữu ích với bạn, vui lòng đánh giá 5 sao trên Play Store. Cảm ơn bạn!
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.