Xe điều khiển từ xa với ESP32
Cơ bản3/6/2026

Xe điều khiển từ xa với ESP32

Chế tạo xe điều khiển từ xa qua Wi-Fi bằng ESP32, nâng cao kiến thức về động cơ và mạch điều khiển.

0 lượt thích1 người đã làm1 giờ7 bước6 linh kiện
← Quay lại dự án
Hướng dẫn chi tiết

Phần 4: Tạo ứng dụng di động để điều khiển xe

1. Giới thiệu về ứng dụng di động và cách thức kết nối với ESP32, 2. Hướng dẫn sử dụng App Inventor hoặc Flutter để tạo ứng dụng, 3. Thiết kế giao diện người dùng đơn giản, 4. Viết mã để gửi lệnh từ ứng dụng đến ESP32, 5. Kiểm tra và sửa lỗi ứng dụng.

Cập nhật 09/06/2026

Phần 4: Tạo ứng dụng di động để điều khiển xe

1. Giới thiệu về ứng dụng di động và cách thức kết nối với ESP32

Ứng dụng di động sẽ được sử dụng để gửi lệnh điều khiển đến xe thông qua Wi-Fi. ESP32 có thể hoạt động như một máy chủ Wi-Fi trong chế độ AP (Access Point) hoặc kết nối đến một mạng Wi-Fi hiện có trong chế độ STA (Station). Để kết nối, bạn cần biết địa chỉ IP của ESP32 sau khi nó được thiết lập trong chế độ tương ứng.

2. Hướng dẫn sử dụng App Inventor hoặc Flutter để tạo ứng dụng

App Inventor là một công cụ trực tuyến dễ sử dụng cho người mới bắt đầu. Flutter cũng là một lựa chọn tốt cho những ai đã có kiến thức lập trình. Dưới đây là hướng dẫn cơ bản cho cả hai công cụ:

  • App Inventor: Truy cập App Inventor, tạo một dự án mới và sử dụng các thành phần như Button, Label để tạo giao diện. Sử dụng thành phần Web để gửi HTTP requests đến ESP32.

  • Flutter: Tạo một ứng dụng Flutter mới và sử dụng Widgets để xây dựng giao diện người dùng. Bạn có thể sử dụng package http để gửi yêu cầu HTTP đến ESP32.

3. Thiết kế giao diện người dùng đơn giản

Giao diện nên bao gồm các nút điều khiển như "Tiến", "Lùi", "Rẽ trái", "Rẽ phải". Ví dụ, trong App Inventor, bạn có thể thêm 4 nút và 1 Label để hiển thị trạng thái.

4. Viết mã để gửi lệnh từ ứng dụng đến ESP32

Dưới đây là mã mẫu để gửi lệnh từ ứng dụng đến ESP32 sử dụng HTTP requests. Nếu bạn sử dụng App Inventor, bạn có thể sử dụng thành phần Web để thực hiện điều này. Đối với Flutter, bạn có thể sử dụng package http để gửi yêu cầu.

import 'package:http/http.dart' as http;

void sendCommand(String command) async {
    String serverIP = "http:///command";
    final response = await http.get(Uri.parse('$serverIP?cmd=$command'));
    if (response.statusCode == 200) {
        // Xử lý phản hồi
    } else {
        // Xử lý lỗi
    }
}

5. Kiểm tra và sửa lỗi ứng dụng

Cảnh báo: Hãy đảm bảo ESP32 và thiết bị di động của bạn được kết nối cùng một mạng Wi-Fi để đảm bảo khả năng giao tiếp. Ngoài ra, hãy lưu ý rằng CORS (Cross-Origin Resource Sharing) có thể chặn yêu cầu nếu không được xử lý đúng cách trên máy chủ ESP32.

Sau khi hoàn thành ứng dụng, hãy kiểm tra các lệnh gửi đến ESP32. Sử dụng Serial Monitor trong Arduino IDE để theo dõi và sửa lỗi nếu cần. Đảm bảo rằng bạn đã cài đặt thư viện HTTPClient trong Arduino IDE để mã có thể biên dịch thành công. Hãy cân nhắc thực hiện xác thực cơ bản hoặc sử dụng mạng Wi-Fi riêng để ngăn chặn truy cập trái phép.