(Khóa học: Lập trình & Điều khiển Động Cơ từ Cơ Bản tới Nâng Cao)
📘 Giới thiệu
Sau khi đã điều khiển xe robot qua WiFi Web Remote, trong bài này bạn sẽ học cách điều khiển robot qua Bluetooth bằng ứng dụng điện thoại.
Bluetooth giúp robot kết nối trực tiếp, không cần WiFi hoặc Internet, dễ sử dụng trong các dự án thực tế như:
- Xe điều khiển bằng tay,
- Tay robot Bluetooth,
- Robot trình diễn, di chuyển biểu cảm.
⚙️ 1. Nguyên lý hoạt động
- ESP32 tích hợp sẵn Bluetooth (Classic và BLE).
- Khi bật ứng dụng trên điện thoại (ví dụ: Bluetooth RC Controller hoặc IoTLabs Remote App), ta kết nối tới ESP32.
- Ứng dụng gửi ký tự lệnh (A, B, L, R, S, …) → ESP32 nhận và thực hiện hành động tương ứng.
| Ký tự lệnh | Hành động |
|---|---|
| F | Tiến (Forward) |
| B | Lùi (Backward) |
| L | Rẽ trái |
| R | Rẽ phải |
| S | Dừng |
🔌 2. Sơ đồ kết nối phần cứng

| ESP32 Pin | L298N Pin | Ghi chú |
|---|---|---|
| GPIO26 | IN1 | Motor trái hướng 1 |
| GPIO27 | IN2 | Motor trái hướng 2 |
| GPIO25 | IN3 | Motor phải hướng 1 |
| GPIO33 | IN4 | Motor phải hướng 2 |
| GPIO14 | ENA | PWM trái |
| GPIO32 | ENB | PWM phải |
| 5V, GND | L298N 5V, GND | Nguồn logic và mass chung |
💡 Không cần module Bluetooth rời — ESP32 đã có sẵn.
💻 3. Code mẫu: Điều khiển xe robot bằng Bluetooth
/*
* Bài 8 - IoTLabs Motor Course
* Điều khiển xe robot bằng Bluetooth qua điện thoại (ESP32)
*/
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
#define IN1 26
#define IN2 27
#define IN3 25
#define IN4 33
#define ENA 14
#define ENB 32
#define PWM_FREQ 5000
#define PWM_RES 8
void setupMotors() {
pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
ledcSetup(0, PWM_FREQ, PWM_RES);
ledcSetup(1, PWM_FREQ, PWM_RES);
ledcAttachPin(ENA, 0);
ledcAttachPin(ENB, 1);
}
void goForward() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
ledcWrite(0, 200); ledcWrite(1, 200);
}
void goBackward() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
ledcWrite(0, 200); ledcWrite(1, 200);
}
void turnLeft() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
ledcWrite(0, 200); ledcWrite(1, 200);
}
void turnRight() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
ledcWrite(0, 200); ledcWrite(1, 200);
}
void stopMotor() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
ledcWrite(0, 0); ledcWrite(1, 0);
}
void setup() {
Serial.begin(115200);
SerialBT.begin("IoTLabs_Robot"); // Tên Bluetooth
setupMotors();
Serial.println("Bluetooth Robot Ready!");
}
void loop() {
if (SerialBT.available()) {
char cmd = SerialBT.read();
Serial.println(cmd);
switch (cmd) {
case 'F': goForward(); break;
case 'B': goBackward(); break;
case 'L': turnLeft(); break;
case 'R': turnRight(); break;
case 'S': stopMotor(); break;
}
}
}
✅ Kết quả: Mở app Bluetooth trên điện thoại, chọn “IoTLabs_Robot” → Kết nối → Nhấn nút điều khiển → Xe di chuyển theo lệnh.
📱 4. Ứng dụng điều khiển Bluetooth
Bạn có thể dùng:
- 🔹 Bluetooth RC Controller (trên CH Play)
- 🔹 Serial Bluetooth Terminal (gửi ký tự F, B, L, R, S)
- 🔹 Hoặc app tùy chỉnh của IoTLabs (tự thiết kế bằng MIT App Inventor)
🎯 5. Mục tiêu học tập
- Hiểu cách dùng Bluetooth tích hợp trong ESP32.
- Lập trình robot nhận và xử lý lệnh điều khiển từ điện thoại.
- Phát triển khả năng mở rộng lên điều khiển qua Internet hoặc giọng nói.
🧩 6. Hoạt động mở rộng
- Thêm thanh trượt tốc độ PWM trong app.
- Kết hợp với buzzer hoặc đèn LED báo hiệu khi xe di chuyển.
- Thiết kế ứng dụng Android riêng cho robot của bạn.
📦 7. Linh kiện cần thiết
| Linh kiện | Số lượng | Ghi chú |
|---|---|---|
| ESP32 DevKit 38 Pin | 1 | Bộ điều khiển chính |
| L298N Motor Driver | 1 | Mạch cầu H kép |
| Motor DC + bánh xe | 2 | |
| Pin 7.4V hoặc 9V | 1 | Nguồn cấp động cơ |
| Điện thoại Android | 1 | Dùng app điều khiển |
🚀 8. Kết luận
Bằng việc kết hợp ESP32 và Bluetooth, bạn đã tạo được một robot điều khiển không dây hoàn chỉnh.Công nghệ này có thể mở rộng sang các sản phẩm thực tế như xe đồ chơi, robot vận chuyển mini, hay tay robot điều khiển từ xa.


Để lại một bình luận