Arduino UNO R4 WiFi Bluetooth Chat Example Giao Tiếp Hai Chiều qua BLE Tutorial
Tổng Quan
Ví dụ Bluetooth Chat cung cấp giao diện nhắn tin văn bản hai chiều có thể truy cập thông qua ứng dụng DIYables Bluetooth STEM. Được thiết kế cho Arduino UNO R4 WiFi sử dụng BLE (Bluetooth Low Energy) để gửi và nhận tin nhắn văn bản giữa Arduino và điện thoại thông minh của bạn trong thời gian thực. Hoàn hảo cho giao diện dòng lệnh, điều khiển từ xa thông qua lệnh văn bản, cầu nối serial, và gỡ lỗi tương tác.
Lưu ý: Arduino UNO R4 WiFi chỉ hỗ trợ BLE (Bluetooth Low Energy). Nó không hỗ trợ Classic Bluetooth. Ứng dụng DIYables Bluetooth hỗ trợ cả BLE và Classic Bluetooth trên Android, và BLE trên iOS. Vì bo mạch này sử dụng BLE, ứng dụng hoạt động trên cả Android và iOS.

Tính Năng
- Nhắn Tin Hai Chiều: Gửi và nhận tin nhắn văn bản trong thời gian thực
- Xử Lý Lệnh: Xử lý các lệnh văn bản từ ứng dụng di động
- Cầu Nối Serial: Chuyển tiếp tin nhắn giữa Serial Monitor và Bluetooth
- Phản Hồi Tùy Chỉnh: Tự động phản hồi với echo hoặc dữ liệu đã xử lý
- Hoạt Động trên Android & iOS: BLE được hỗ trợ trên cả hai nền tảng
- Không Cần Ghép Nối: BLE tự động kết nối mà không cần ghép nối thủ công
- Tiết Kiệm Năng Lượng: BLE tiêu thụ ít năng lượng hơn Classic Bluetooth
Phần Cứng Cần Thiết
| 1 | × | Arduino UNO R4 WiFi | ||
| 1 | × | Alternatively, DIYables STEM V4 IoT | ||
| 1 | × | (Tùy chọn) DIYables STEM V4 IoT | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Power Splitter for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Code Arduino UNO R4 WiFi
Các Bước Nhanh
Thực hiện theo hướng dẫn từng bước:
- Nếu đây là lần đầu tiên bạn sử dụng Arduino UNO R4 WiFi, hãy tham khảo Arduino UNO R4 - Cài Đặt Phần Mềm.
- Kết nối bo mạch Arduino UNO R4 WiFi với máy tính của bạn bằng cáp USB.
- Khởi động Arduino IDE trên máy tính của bạn.
- Chọn bo mạch Arduino UNO R4 WiFi và cổng COM phù hợp.
- Điều hướng đến biểu tượng Libraries trên thanh bên trái của Arduino IDE.
- Tìm kiếm "DIYables Bluetooth", sau đó tìm thư viện DIYables Bluetooth của DIYables
- Nhấn nút Install để cài đặt thư viện.

- Bạn sẽ được yêu cầu cài đặt một số thư viện phụ thuộc khác
- Nhấn nút Install All để cài đặt tất cả thư viện phụ thuộc.

Code BLE
- Trên Arduino IDE, đi đến File Examples DIYables Bluetooth ArduinoBLE_Chat example, hoặc sao chép code trên và dán vào editor của Arduino IDE
- Nhấn nút Upload trên Arduino IDE để upload code lên Arduino UNO R4 WiFi
- Mở Serial Monitor
- Kiểm tra kết quả trên Serial Monitor. Nó sẽ trông như sau:
Ứng Dụng Di Động
Lưu ý: Ứng dụng DIYables Bluetooth hỗ trợ cả BLE và Classic Bluetooth trên Android, và BLE trên iOS. Vì Arduino UNO R4 WiFi sử dụng BLE, ứng dụng hoạt động trên cả Android và iOS. Không cần ghép nối thủ công cho BLE — chỉ cần quét và kết nối.
- Mở ứng dụng DIYables Bluetooth
- Khi mở ứng dụng lần đầu tiên, nó sẽ yêu cầu quyền. Vui lòng cấp các quyền sau:
- Quyền Nearby Devices (Android 12+) / quyền Bluetooth (iOS) - cần thiết để quét và kết nối với thiết bị Bluetooth
- Quyền Location (chỉ Android 11 và thấp hơn) - cần thiết cho các phiên bản Android cũ để quét thiết bị BLE
- Đảm bảo Bluetooth được bật trên điện thoại của bạn
- Trên màn hình chính, chạm nút Connect. Ứng dụng sẽ quét các thiết bị BLE.

- Tìm và chạm "Arduino_Chat" trong kết quả quét để kết nối.
- Sau khi kết nối, ứng dụng tự động quay lại màn hình chính. Chọn ứng dụng Chat từ menu ứng dụng.

Lưu ý: Bạn có thể chạm biểu tượng cài đặt trên màn hình chính để ẩn/hiện các ứng dụng trên màn hình chính. Để biết thêm chi tiết, hãy xem Hướng Dẫn Sử Dụng Ứng Dụng DIYables Bluetooth.
- Nhập tin nhắn trong ô nhập chat và chạm gửi

Bây giờ hãy quay lại Serial Monitor trên Arduino IDE. Bạn sẽ thấy:
- Arduino echo lại tin nhắn của bạn, và bạn có thể thấy phản hồi trong chat ứng dụng
Tùy Chỉnh Sáng Tạo - Điều Chỉnh Code Cho Dự Án Của Bạn
Xử Lý Tin Nhắn Chat
Sử dụng callback onChatMessage() để nhận và xử lý tin nhắn được nhập trong ứng dụng. Bạn có thể định nghĩa bất kỳ từ lệnh tùy chỉnh nào phù hợp với dự án của bạn — Arduino sẽ phản ứng tương ứng:
Bạn có thể thêm nhiều lệnh tùy chỉnh tùy ý bằng cách thêm các khối else if. Ví dụ, thêm LED_ON / LED_OFF để điều khiển một chân, hoặc READ để kích hoạt đọc sensor — bất kỳ từ nào bạn nhập trong ứng dụng đều trở thành lệnh.
Gửi Tin Nhắn từ Arduino
Cầu Nối Serial-to-Bluetooth
Chuyển tiếp tin nhắn giữa Serial Monitor và Bluetooth:
Xử Lý Sự Kiện Kết Nối
Cách Sử Dụng Chat
Giao Diện Ứng Dụng
Giao diện chat trong ứng dụng DIYables Bluetooth cung cấp:
- Danh Sách Tin Nhắn: Hiển thị tin nhắn đã gửi và nhận với dấu thời gian
- Ô Nhập Văn Bản: Nhập tin nhắn để gửi cho Arduino
- Nút Gửi: Chạm để gửi tin nhắn
Luồng Giao Tiếp
- Nhập tin nhắn trong ứng dụng → Arduino nhận qua callback onChatMessage()
- Arduino xử lý tin nhắn và tùy chọn gửi phản hồi qua bluetoothChat.send()
- Phản hồi xuất hiện trong cửa sổ chat ứng dụng
Ví Dụ Lập Trình
Xử Lý Lệnh với Điều Khiển Relay
Hệ Thống Truy Vấn Sensor
Cập Nhật Trạng Thái Định Kỳ
Kỹ Thuật Lập Trình Nâng Cao
Phân Tích Lệnh Nhiều Từ
Chat Logger với Dấu Thời Gian
Khắc Phục Sự Cố
Vấn Đề Thường Gặp
1. Không thể tìm thấy thiết bị trong ứng dụng
- Đảm bảo Arduino UNO R4 WiFi được cấp nguồn và sketch đã được upload
- Đảm bảo Bluetooth trên điện thoại được bật
- Trên Android 11 và thấp hơn, cũng bật dịch vụ Vị trí
- Thử khởi động lại Bluetooth trên điện thoại của bạn
2. Tin nhắn không được Arduino nhận
- Kiểm tra trạng thái kết nối Bluetooth trong ứng dụng
- Xác minh callback onChatMessage được thiết lập đúng
- Kiểm tra Serial Monitor để xem có thông báo lỗi nào không
3. Phản hồi của Arduino không hiển thị trong ứng dụng
- Đảm bảo bluetoothChat.send() đang được gọi
- Kiểm tra rằng bluetoothServer.loop() được gọi trong vòng lặp chính
- Xác minh kết nối vẫn hoạt động với bluetooth.isConnected()
4. Serial Monitor hiển thị văn bản lộn xộn
- Đảm bảo baud rate trong Serial Monitor khớp với Serial.begin(9600)
- Kiểm tra rằng bo mạch đúng đã được chọn trong Arduino IDE
5. Kết nối thường xuyên bị ngắt
- Di chuyển gần Arduino hơn (giảm khoảng cách)
- Kiểm tra nhiễu từ các thiết bị BLE khác
- Đảm bảo nguồn cấp USB ổn định
6. Upload thất bại hoặc bo mạch không được nhận dạng
- Cài đặt gói bo mạch Arduino UNO R4 mới nhất qua Board Manager
- Thử cáp USB hoặc cổng khác
- Nhấn nút reset trên bo mạch trước khi upload
Ý Tưởng Dự Án
Giao Tiếp
- Giao diện lệnh văn bản cho tự động hóa nhà
- Cầu nối Serial-to-Bluetooth cho gỡ lỗi không dây
- Hệ thống truy vấn sensor từ xa
- Trò chơi đố vui hoặc trivia tương tác
Hệ Thống Điều Khiển
- Điều khiển relay qua lệnh voice-to-text
- Bộ định tuyến lệnh đa thiết bị
- Quản lý cấu hình qua lệnh chat
- Báo cáo phiên bản firmware
Logging & Giám Sát
- Event logger với dấu thời gian
- Hệ thống thông báo cảnh báo
- Trình tạo báo cáo trạng thái
- Chat bot chẩn đoán
Tích Hợp với Các Ứng Dụng Bluetooth Khác
Kết Hợp với Bluetooth Monitor
Sử dụng chat cho lệnh và monitor cho đầu ra liên tục:
Kết Hợp với Bluetooth Table
Lệnh chat để điều khiển dữ liệu hiển thị trong bảng:
Các Bước Tiếp Theo
Sau khi thành thạo ví dụ Bluetooth Chat, hãy thử:
- Bluetooth Monitor - Để truyền trạng thái một chiều
- Bluetooth Slider - Để điều khiển giá trị analog
- Bluetooth Table - Để hiển thị dữ liệu có cấu trúc
- Multiple Bluetooth Apps - Kết hợp chat với các ứng dụng khác
Hỗ Trợ
Để được trợ giúp thêm:
- Kiểm tra tài liệu API Reference
- Truy cập DIYables tutorials
- Diễn đàn cộng đồng Arduino