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

Phạm vi của hướng dẫn này:
- Trao đổi dữ liệu giữa Arduino và một ứng dụng trên điện thoại thông qua BLE. Giao tiếp giữa hai Arduino thông qua BLE sẽ được đề cập trong một bài hướng dẫn khác.
- Sử dụng mô-đun HM-10 Bluetooth Low Energy phổ biến.
- Minh họa ứng dụng Bluetooth Serial Monitor trên Android, nhưng bất kỳ ứng dụng Android/iOS nào cũng có thể được sử dụng.
- Điều khiển nhiều thiết bị kết nối với Arduino thông qua ứng dụng trên điện thoại, với các ví dụ bao gồm một đèn LED và một động cơ servo.
Cần lưu ý rằng hướng dẫn này đặc biệt đề cập đến Bluetooth Low Energy (BLE, Bluetooth 4.0). Nếu bạn đang tìm kiếm thông tin về Bluetooth cổ điển (Bluetooth 2.0), vui lòng tham khảo một hướng dẫn tương tự Arduino - Bluetooth.
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 | × | HM-10 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 HM-10
HM-10 là một mô-đun BLE nối tiếp hoạt động như một bộ chuyển đổi từ Serial sang Bluetooth Low Energy. Nó thực hiện các hành động sau:
- Nhận dữ liệu từ chân Serial RX và truyền nó tới một thiết bị ghép nối như điện thoại thông minh qua BLE
- Nhận dữ liệu từ BLE (từ thiết bị ghép nối) và gửi nó tới chân Serial TX
Cụ thể, khi sử dụng Arduino để giao tiếp với một ứng dụng trên điện thoại thông minh (Android/iOS), điều sau đây xảy ra:
- Arduino kết nối với mô-đun Bluetooth HM-10 thông qua các chân Serial/SoftwareSerial
- Mô-đun Bluetooth HM-10 được ghép đô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 bằng cách gửi qua Serial/SoftwareSerial
- Arduino nhận dữ liệu từ ứng dụng trên điện thoại bằng cách đọc từ Serial/SoftwareSerial
- Không cần thêm mã BLE trên Arduino
Bố trí các chân

Mô-đun BLE HM-10 có 6 chân:
- Chân BKR: để điều khiển hoạt động của mô-đun. Bỏ qua chân này nếu bạn là người mới bắt đầu.
- Chân RX: chân dữ liệu nối tiếp, 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 tới Bluetooth.
- Chân TX: chân dữ liệu nối tiếp, kết nối chân này với chân RX của Arduino. Dữ liệu nhận được qua BLE sẽ được gửi tới chân này ở dạng dữ liệu nối tiế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 VCC: chân cấp nguồn, kết nối chân này với 3.3V của nguồn cấp.
- Chân STATE: cho biết các trạng thái làm việc:
- Nhấp nháy ở chế độ chờ - nhịp 500ms;
- Bật ở trạng thái kết nối - mức cao.
- Chúng ta chỉ cần sử dụng 4 chân: VCC, GND, RX, TX
- Một số nhà sản xuất HM-10 chỉ có bốn chân.
※ Lưu ý:
Về Ứng dụng Bluetooth Serial Monitor
Ứng dụng Bluetooth Serial Monitor là một ứng dụng di động mô phỏng giao diện Serial Monitor trong Arduino IDE. Nó cho phép giao tiếp với bo mạch Arduino qua Bluetooth mà không cần thêm mã vào sketch Arduino. Để sử dụng nó, hãy làm theo các bước sau:
- Kết nối Arduino với mô-đun Bluetooth HM-10
- Tải xuống và 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à kết nối nó với mô-đun Bluetooth HM-10
Khi hoàn tất các bước này, bạn có thể gửi và nhận dữ liệu từ Arduino như thể đang sử dụng Serial Monitor trong Arduino IDE, mà không cần chỉnh sửa mã Arduino hiện có hoặc thêm bất kỳ mã Bluetooth đặc thù nào.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Bảng nối dây
| Arduino Pins | HM-10 Bluetooth Pins |
|---|---|
| RX (Pin 0) | TX |
| TX (Pin 1) | RX |
| 5V | VCC |
| GND | GND |
| BKR (NOT connected) | |
| STATE (NOT connected) |
※ Lưu ý:
Mã Arduino có thể sử dụng các chân khác bằng cách thay thế đối tượng Serial bằng một đối tượng thay thế như Serial1, Serial2 hoặc SoftwareSerial (nếu có).
Cách lập trình cho Bluetooth
Không cần mã Bluetooth chuyên biệt, chỉ cần mã Serial.
Arduino gửi dữ liệu đến Ứng dụng Bluetooth trên điện thoại thông minh
Để truyền dữ liệu từ một bo mạch Arduino tới một ứng dụng Bluetooth trên điện thoại thông minh, có thể sử dụng đoạn mã Arduino sau. Ví dụ này minh họa việc gửi thông điệp “Arduino ở đây, hãy ra lệnh cho tôi!” từ Arduino đến ứng dụng trên điện thoại mỗi giây
Hướng dẫn từng bước
Để sử dụng mã và kết nối bo mạch Arduino với điện thoại thông minh qua BLE, hãy làm theo các bước sau:
- Cài đặt Bluetooth Serial Monitor App trên điện thoại thông minh của bạn.
- Kết nối mô-đun Bluetooth HM-10 với board Arduino theo sơ đồ kết nối được cung cấp.
- Mở Arduino IDE, sao chép mã nguồn được cung cấp ở trên, và tải lên cho board Arduino. Nếu bạn không thể tải mã lên, ngắt kết nối các chân TX và RX từ mô-đun Bluetooth, tải mã lên, rồi kết nối lại các chân RX/TX.
- Mở Trình giám sát nối tiếp trên Arduino IDE.
- Trên điện thoại của bạn, mở Ứng dụng Bluetooth Serial Monitor App và chọn chế độ BLE.

- Ghép đôi điện thoại thông minh với mô-đun Bluetooth HM-10.

- Quan sát kết quả trên ứng dụng Android.

- Quan sát kết quả trên Serial Monitor của Arduino IDE.
Nếu bạn làm theo các bước và chạy mã, dữ liệu hiển thị trên Serial Monitor của Arduino IDE và trên ứng dụng Android sẽ khớp với nhau.
Ứng dụng Bluetooth gửi dữ liệu đến Arduino
Đoạn mã dưới đây thực hiện các hành động sau:
- Gửi dữ liệu từ ứng dụng Bluetooth đến bo mạch Arduino
- Mạch Arduino sẽ đọc dữ liệu nhận được và sau đó gửi phản hồi về cho thiết bị Bluetooth
Hướng dẫn từng bước
Dưới đây là các bước để sử dụng mã với Arduino và một ứng dụng Android:
- Mở Arduino IDE và dán mã được cung cấp ở trên.
- Nhấp vào nút Tải lên để tải mã lên bo mạch Arduino.
- Mở Serial Monitor trong Arduino IDE.
- Mở ứng dụng Android và ghép nối nó với mô-đun Bluetooth HM-10 bằng các hướng dẫn được cung cấp trong ví dụ trước.
- Khi đã kết nối, gõ "LED ON" hoặc "LED OFF" trong ứng dụng Android và nhấn nút "GỬI".

- Bộ mạch Arduino sẽ nhận dữ liệu, xuất ra phản hồi qua cổng Serial. Dữ liệu này sẽ được gửi tới ứng dụng Bluetooth.
- Kiểm tra kết quả trên ứng dụng Android.

- Kiểm tra kết quả trên Serial Monitor của Arduino IDE
Khi bạn hoàn thành các bước ở trên, 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 sẽ 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 BLE
Đoạn mã ví dụ Arduino sau đây sử dụng các lệnh “ON” và “OFF” nhận được thông qua ứng dụng Bluetooth Serial Monitor để bật/tắt đèn LED tích hợp sẵn.
Bạn có thể xem chi tiết hơn trong 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 trên điện thoại thông minh qua BLE
Đoạn mã Arduino dưới đây nhận một giá trị góc từ Ứng dụng Bluetooth Serial Monitor để điều khiển góc quay của một động cơ servo.
Bạn có thể xem chi tiết hướng dẫn trong tutorial Arduino điều khiển động cơ servo qua Bluetooth.
Nếu ứng dụng Bluetooth Serial Monitor hữu ích cho bạn, xin hãy cho nó đá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.