ESP8266 Bluetooth
Bài hướng dẫn này hướng dẫn bạn cách sử dụng ESP8266 để điều khiển mô-đun Bluetooth HC-05. Cụ thể, chúng ta sẽ tìm hiểu:
- Sử dụng Bluetooth với ESP8266
- Gửi dữ liệu từ ESP8266 đến ứng dụng trên điện thoại thông qua Bluetooth
- Nhận dữ liệu tại ESP8266 từ ứng dụng trên điện thoại qua Bluetooth
- Điều khiển ESP8266 từ ứng dụng trên điện thoại qua Bluetooth

Mục đích của bài hướng dẫn này là:
- Minh họa cách ESP8266 có thể trao đổi dữ liệu với một ứng dụng trên điện thoại thông minh.
- Giải thích cách sử dụng mô-đun Bluetooth HC-05.
- Hướng dẫn cách sử dụng ứng dụng [Bluetooth Serial Monitor] trên Android.
- Minh họa cách điều khiển đèn LED và động cơ servo từ một ứng dụng trên điện thoại.
Bài hướng dẫn này tập trung vào Bluetooth Classic (Bluetooth 2.0). Nếu bạn đang tìm kiếm thông tin về Bluetooth Low Energy - BLE (Bluetooth 4.0), vui lòng tham khảo bài hướng dẫn tương tự này: ESP8266 - BLE
Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | HC-05 Bluetooth Module | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về mô-đun Bluetooth HC-05
HC-05 là một mô-đun Bluetooth nối tiếp hoạt động như một Bộ chuyển đổi nối tiếp sang Bluetooth. Nó có khả năng:
- Lấy dữ liệu từ chân Serial RX và truyền nó tới thiết bị ghép nối (ví dụ như điện thoại thông minh) qua Bluetooth
- Nhận dữ liệu từ Bluetooth (từ thiết bị ghép nối) và chuyển nó tới chân Serial TX
Cụ thể, khi ESP8266 giao tiếp với một ứng dụng trên điện thoại thông minh (Android/iOS):
- Nó kết nối với mô-đun Bluetooth HC-05 thông qua các chân Serial/SoftwareSerial của ESP8266.
- Mô-đun Bluetooth HC-05 được ghép nối với ứng dụng trên điện thoại thông minh.
- Để gửi dữ liệu đến ứng dụng trên điện thoại thông minh, ESP8266 chỉ cần gửi nó đến Serial/SoftwareSerial.
- Để nhận dữ liệu từ ứng dụng trên điện thoại thông minh, ESP8266 đọc dữ liệu từ Serial/SoftwareSerial.
- ESP8266 không cần mã Bluetooth đặc biệt.
Sơ đồ chân của module Bluetooth HC-05

Mô-đun Bluetooth HC-05 có 6 chân:
- Chân Bật/Khóa: Chân này đượ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 nó không được kết nối, nó sẽ ở chế độ Dữ liệu theo mặc định.
- Chân VCC: Chân cấp nguồn, nên được kết nối với +5V của nguồn cấp.
- Chân GND: Chân cấp nguồn, nên được kết nối với GND của nguồn cấp.
- Chân TX: Chân dữ liệu Serial, chân này nên được kết nối với chân RX của ESP8266. Dữ liệu nhận được qua Bluetooth sẽ được gửi đến chân này dưới dạng dữ liệu serial.
- Chân RX: Chân dữ liệu Serial, chân này nên được kết nối với chân TX của ESP8266. Dữ liệu nhận được từ chân này sẽ được gửi tới Bluetooth.
- Chân Trạng thái: Chân trạng thái được kết nối với đèn LED trên bo mạch, có thể được dùng làm phản hồi để kiểm tra xem Bluetooth có hoạt động đúng hay không.
Tuy nhiên, để thực hiện các thao tác cơ bản, chỉ cần kết nối bốn chân của mô-đun Bluetooth HC-05 với ESP8266.
Mô-đun Bluetooth HC-05 có hai thành phần tích hợp:
- 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 hai giây cho biết Mô-đun đã vào Chế độ Lệnh
- Nhấp nháy nhanh cho biết nó đang chờ kết nối ở Chế độ Dữ liệu
- Nhấp nháy hai lần mỗi giây có nghĩa là kết nối ở Chế độ Dữ liệu đã thành công
- Một nút có thể được sử dụng để điều khiển chân Key/Enable nhằm 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 đôi
- Chế độ lệnh được sử dụng để cấu hình các tham số
May mắn thay, mô-đun Bluetooth HC-05 có thể hoạt động với ESP8266 mà không cần bất kỳ cấu hình nào, sử dụng các thiết lập mặc đị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
Bluetooth Serial Monitor Ứng dụng là một ứng dụng di động có giao diện người dùng giống với Serial Monitor của Arduino IDE. Nó có thể được sử dụng để giao tiếp với ESP8266 qua Bluetooth mà không yêu cầu bất kỳ mã đặc biệt nào cho mô-đun Bluetooth trong mã ESP8266. Để thực hiện điều này, các bước sau đây nên được thực hiện:
- Kết nối ESP8266 với mô-đun Bluetooth HC-05
- Cài đặt ứng dụng Bluetooth Serial Monitor trên điện thoại thông minh của bạn
- Mở ứng dụng và ghép nối với mô-đun Bluetooth HC-05
Bây giờ, bạn có thể truyền và nhận dữ liệu từ ESP8266 giống như bạn làm với Serial Monitor của Arduino IDE. Bạn không cần phải thực hiện bất kỳ thay đổi nào đối với mã ESP8266 hiện có của bạn hoặc thêm bất kỳ mã Bluetooth nào vào mã ESP8266 mới của bạn.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
Bảng dây điện. Biểu đồ dây điện. Sơ đồ dây điện
| ESP8266 Pins | HC-05 Bluetooth Pins |
|---|---|
| Pin D7 | TX |
| Pin D6 | 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 ESP8266 khác bằng cách thay đổi đối tượng Serial trong mã ESP8266 sang một đối tượng khác, chẳng hạn như Serial1, Serial2, hoặc SoftwareSerial nếu có sẵn.
Cách Lập Trình Cho Bluetooth
Không cần lập trình đặc thù cho Bluetooth. Chúng ta chỉ cần sử dụng mã Serial.
ESP8266 gửi dữ liệu tới ứng dụng Bluetooth trên điện thoại thông minh
Để truyền dữ liệu từ ESP8266 đến một ứng dụng Bluetooth trên điện thoại thông minh, mã sau đây phải được sử dụng trên Arduino:
Trong trường hợp này, chúng ta sẽ cho ESP8266 truyền “ESP8266 ở đây, hãy ra lệnh cho tôi!” tới Ứng dụng Bluetooth trên điện thoại thông minh với chu kỳ một giây giữa các lần truyền.
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Tham khảo hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
- Nối các thành phần như hình vẽ trong sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng.
- Cài đặt ứng dụng Bluetooth Serial Monitor trên điện thoại thông minh của bạn. Nối dây module Bluetooth HC-05 với ESP8266 theo sơ đồ nối dây. Sao chép mã và mở nó bằng Arduino IDE. Nhấp nút Upload trên Arduino IDE để tải mã lên ESP8266. Nếu bạn gặp sự cố khi tải mã, ngắt kết nối các chân TX và RX từ module Bluetooth, tải mã lên, sau đó kết nối lại chân RX/TX. Mở Serial Monitor trên Arduino IDE. Mở ứng dụng Bluetooth Serial Monitor trên điện thoại và chọn chế độ Classic Bluetooth.

- Kết nối nó 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 Môi trường Phát triển Tích hợp ESP8266.
Bạn sẽ nhận thấy thông tin được hiển thị trên Serial Monitor của Arduino IDE và Ứng dụng Android là giống nhau.
Ứng dụng Bluetooth Gửi dữ liệu tới ESP8266
Đoạn mã dưới đây cho phép:
- Gửi dữ liệu từ ứng dụng Bluetooth đến ESP8266
- ESP8266 đọc dữ liệu, sau đó gửi phản hồi lại cho ứng dụng Bluetooth
Hướng dẫn từng bước
- Nối các thành phần như trong sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, chẳng hạn NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
- Sao chép mã và mở nó bằng Arduino IDE.
- Nhấn vào nút Tải lên trên Arduino IDE để biên dịch và tải mã lên ESP8266.
- Mở Serial Monitor trên Arduino IDE.
- Kết nối ứng dụng Android với mô-đun Bluetooth HC-05, như đã thực hiện ở ví dụ trước.
- Sau khi đã kết nối, nhập một trong hai chuỗi "LED ON" hoặc "LED OFF" trên ứng dụng Android và nhấn nút "SEND".

- ESP8266 nhận dữ liệu và in ra phản hồi trên cổng Serial. Dữ liệu này sau đó được gửi tới ứng dụng Bluetooth, và kết quả có thể xem được trên ứng dụng Android.

- Xem kết quả trong cửa sổ Serial Monitor của Môi trường Phát triển Tích hợp ESP8266.
Bạn sẽ nhận ra thông tin được hiển thị trên Serial Monitor của Arduino IDE và ứng dụng Android là giống nhau.
Mã ESP8266 - Điều khiển LED bằng ứng dụng trên điện thoại thông minh qua Bluetooth
Đoạn mã ví dụ ESP8266 này sẽ phản hồi hai lệnh: “ON” và “OFF”. Khi nhận được, các lệnh này sẽ được dùng để bật hoặc tắt đèn LED tích hợp thông qua ứng dụng Bluetooth Serial Monitor.
Bạn có thể tìm thấy một giải thích chi tiết hơn về các hướng dẫn trong bài hướng dẫn ESP8266 Điều khiển đèn LED qua Bluetooth.
Mã ESP8266 - Điều khiển động cơ servo bằng ứng dụng trên điện thoại thông qua Bluetooth
Đoạn mã ESP8266 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 hướng dẫn trong bài hướng dẫn Điều khiển động cơ servo bằng ESP8266 qua Bluetooth. Để xem hướng dẫn kỹ hơn, hãy xem bài hướng dẫn Điều khiển động cơ servo bằng ESP8266 qua Bluetooth. Nếu bạn cần xem hướng dẫn sâu hơn, tham khảo bài hướng dẫn Điều khiển động cơ servo bằng ESP8266 qua Bluetooth. Để có cái nhìn tổng thể hơn về hướng dẫn, hãy truy cập bài hướng dẫn Điều khiển động cơ servo bằng ESP8266 qua Bluetooth.
Nếu bạn thấy ứng dụng Bluetooth Serial Monitor hữu ích, vui lòng đánh giá 5 sao trên Cửa hàng Play. Xin cảm ơn sự ủng hộ của 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.