Arduino UNO R4 WiFi Bluetooth Ứng Dụng Đa Chức Năng Hướng Dẫn BLE Tất-Cả-Trong-Một
Tổng Quan
Ví dụ Bluetooth Ứng Dụng Đa Chức Năng minh họa việc chạy đồng thời 9 ứng dụng Bluetooth trên một Arduino UNO R4 WiFi sử dụng BLE. Được thiết kế cho Arduino UNO R4 WiFi sử dụng BLE (Bluetooth Low Energy) để kết hợp Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, và Rotator thành một sketch mạnh mẽ. Tất cả ứng dụng chia sẻ một kết nối BLE duy nhất và có thể tương tác với nhau. Hoàn hảo cho dashboard toàn diện, dự án IoT phức tạp, và học nhiều loại ứng dụng cùng lú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
9 Ứng Dụng Trong Một: Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, Rotator
Tương Tác Giữa Các Ứng Dụng: Giá trị slider cập nhật gauge và table, joystick cập nhật table, v.v.
Kết Nối BLE Duy Nhất: Tất cả ứng dụng chia sẻ một kết nối một cách hiệu quả
Cập Nhật Thời Gian Thực: Mỗi ứng dụng cập nhật theo khoảng thời gian riêng
Dashboard Toàn Diện: Xem tất cả dữ liệu từ một thiết bị
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 Đôi: BLE tự động kết nối mà không cần ghép đôi thủ công
Nhấp 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ẽ như thế này:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Multiple Apps Example
Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
Ứng Dụng Di Động
Cài đặt ứng dụng DIYables Bluetooth trên smartphone của bạn: Android | iOS
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 đô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 trở xuống) - 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, nhấn nút Connect. Ứng dụng sẽ quét các thiết bị BLE.
Tìm và nhấn "DIYables Multi-App" 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. Màn hình chính hiển thị tất cả các ứng dụng có sẵn. 9 ứng dụng được khởi tạo trong code Arduino sẽ phản hồi và hoạt động — các ứng dụng khác trên màn hình chính sẽ hiển thị nhưng không hoạt động với sketch này.
Lưu ý: Bạn có thể nhấn 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, xem Hướng Dẫn Sử Dụng Ứng Dụng DIYables Bluetooth.
Nhấn một số ứng dụng sau để mở và tương tác với Arduino: Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, Rotator
Chuyển đổi giữa các ứng dụng tự do — tất cả đều chia sẻ cùng một kết nối BLE
Bây giờ hãy nhìn lại Serial Monitor trên Arduino IDE. Bạn sẽ thấy:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Bluetooth connected!
Monitor: System running, uptime: 5s
Chat message: Hello
Slider value: 128
Joystick: X=0.50, Y=-0.30
Temperature: 22.50 °C
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
Cách Thức Hoạt Động
Khởi Tạo Ứng Dụng
Mỗi ứng dụng được tạo với cấu hình và callback riêng:
// Tất cả ứng dụng chia sẻ cùng một Bluetooth serverDIYables_BluetoothServer bluetoothServer(bluetooth);// Tạo các ứng dụng riêng lẻDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothChat bluetoothChat(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 255, 1);DIYables_BluetoothJoystick bluetoothJoystick(bluetoothServer, false, 5);DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -10.0, 50.0, "°C");DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer);DIYables_BluetoothTable bluetoothTable(bluetoothServer);DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%");DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_CONTINUOUS);
Tương Tác Giữa Các Ứng Dụng
Các ứng dụng có thể tương tác với nhau — khi một ứng dụng nhận được đầu vào, nó có thể cập nhật các ứng dụng khác:
// Slider cập nhật gauge và tablebluetoothSlider.onSliderValue([](int value) {float percent = value * 100.0 / 255.0; bluetoothGauge.send(percent); bluetoothTable.sendValueUpdate("Slider 1", String(value));});// Joystick cập nhật tablebluetoothJoystick.onJoystickValue([](float x, float y) { bluetoothTable.sendValueUpdate("Joystick X", String(x, 2)); bluetoothTable.sendValueUpdate("Joystick Y", String(y, 2));});// Rotator cập nhật tablebluetoothRotator.onRotatorAngle([](float angle) { bluetoothTable.sendValueUpdate("Rotator Angle", String(angle, 1) + "°");});
Thời Gian Cập Nhật
Mỗi ứng dụng có khoảng thời gian cập nhật riêng để cân bằng giữa khả năng phản hồi và băng thông:
Ví dụ này tạo một bảng với 10 hàng hiển thị dữ liệu từ tất cả các ứng dụng:
Hàng
Nhãn
Mô Tả
0
Status
Trạng thái kết nối/chạy
1
Uptime
Thời gian từ khi khởi động
2
Slider 1
Giá trị slider hiện tại
3
Slider 2
Giá trị slider thứ hai
4
Joystick X
Vị trí X của joystick
5
Joystick Y
Vị trí Y của joystick
6
Temperature
Nhiệt độ hiện tại
7
Gauge Value
Phần trăm gauge hiện tại
8
Rotator Angle
Góc quay hiện tại
9
Messages
Số lượng tin nhắn chat
Tùy Chỉnh Sáng Tạo - Điều Chỉnh Code Cho Dự Án Của Bạn
Thêm hoặc Bớt Ứng Dụng
Bạn không cần tất cả 9 ứng dụng. Chỉ cần bao gồm những gì bạn cần:
// Thiết lập tối thiểu: chỉ Monitor và SliderDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 100, 1);// Thế thôi! Ứng dụng sẽ chỉ hiển thị hai ứng dụng này
Logic Tương Tác Tùy Chỉnh
// Ví dụ: Cảnh báo nhiệt độ qua Monitorvoid checkTemperatureAlarm(float temp) {if (temp > 40.0) { bluetoothMonitor.send("⚠️ CẢNH BÁO NHIỆT ĐỘ CAO: " + String(temp, 1) + "°C"); bluetoothChat.send("Cảnh báo nhiệt độ được kích hoạt!"); }}
Khắc Phục Sự Cố
Cá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 của điện thoại đã được bật
Trên Android 11 trở xuống, cũng bật dịch vụ Location
2. Một số ứng dụng không hiển thị trong menu
Tất cả ứng dụng được khởi tạo sẽ hiển thị tự động
Kiểm tra rằng mỗi đối tượng ứng dụng được tạo đúng cách
Ứng dụng khám phá các ứng dụng có sẵn từ Arduino
3. Cập nhật có vẻ chậm
Mỗi ứng dụng có khoảng thời gian cập nhật khác nhau — đây là thiết kế có chủ ý
BLE có băng thông hạn chế; quá nhiều cập nhật nhanh có thể gây tắc nghẽn
Giảm tần suất cập nhật cho các ứng dụng không cần dữ liệu thời gian thực
4. Cập nhật giữa các ứng dụng không hoạt động
Xác minh các hàm callback được thiết lập đúng cách
Kiểm tra rằng tên hàng trong bảng khớp chính xác (phân biệt chữ hoa chữ thường)
Đảm bảo đối tượng ứng dụng đích có thể truy cập trong phạm vi callback
5. Vấn đề bộ nhớ hoặc crash
Chạy 9 ứng dụng sử dụng nhiều bộ nhớ
Loại bỏ các ứng dụng không sử dụng để giải phóng tài nguyên
Giảm số lượng hàng trong bảng nếu cần
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
Ý Tưởng Dự Án
Dashboard IoT toàn diện
Bảng điều khiển robot (joystick + monitor + sliders)
Trạm thời tiết (temperature + gauge + plotter + table)
Hub tự động hóa nhà (sliders + pins + monitor + chat)
Nền tảng học STEM (tất cả ứng dụng để thí nghiệm)
Bước Tiếp Theo
Sau khi thành thạo ví dụ Ứng Dụng Đa Chức Năng, khám phá các hướng dẫn ứng dụng riêng lẻ để hiểu sâu hơn:
Bluetooth Chat - Cho chi tiết về nhắn tin
Bluetooth Slider - Cho chi tiết điều khiển giá trị
Bluetooth Plotter - Cho chi tiết trực quan hóa dữ liệu
Bluetooth RTC - Cho đồng bộ hóa thời gian (sử dụng RTC phần cứng tích hợp)