Hướng dẫn ESP32 32/55 - Cảnh báo khoảng cách lùi xe bằng LCD và còi | Bộ học IoT của SunFounder
Trong hướng dẫn này, chúng ta sẽ tạo một hệ thống hỗ trợ lùi xe sử dụng vi điều khiển ESP32, cảm biến khoảng cách siêu âm, màn hình LCD và còi báo. Dự án này sẽ cảnh báo bạn về khoảng cách đến chướng ngại vật khi lùi xe, với tần số tiếng bíp của còi thay đổi dựa trên mức độ gần của chướng ngại vật. Bạn sẽ học cách đấu dây các linh kiện, viết mã và dự kiến chức năng của hệ thống hoạt động hiệu quả cho xe của bạn.
Khi triển khai dự án này, ESP32 sẽ xử lý các kết quả đọc từ cảm biến và điều khiển còi báo cũng như màn hình LCD. Cảm biến siêu âm sẽ đo khoảng cách đến bất kỳ chướng ngại vật nào, trong khi còi báo sẽ cung cấp phản hồi âm thanh dựa trên khoảng cách đó. Màn hình LCD sẽ hiển thị khoảng cách đo được, cho phép bạn xem các kết quả đọc theo thời gian thực. Để hiểu rõ hơn về cách thiết lập, hãy xem video (trong video tại 00:00).
Giải thích phần cứng
Các thành phần chính trong dự án này bao gồm vi điều khiển ESP32, cảm biến khoảng cách siêu âm, màn hình LCD và còi báo. ESP32 là một vi điều khiển mạnh mẽ với khả năng Wi-Fi và Bluetooth tích hợp, lý tưởng cho các dự án IoT. Cảm biến siêu âm đo khoảng cách bằng cách phát ra sóng âm và tính toán thời gian để tiếng vang quay trở lại. Màn hình LCD sẽ hiển thị khoảng cách đo được, trong khi còi báo cung cấp cảnh báo âm thanh dựa trên khoảng cách gần.
Mỗi thành phần đóng vai trò quan trọng trong việc đảm bảo thiết bị hỗ trợ lùi xe hoạt động chính xác. Hiểu cách các bộ phận này hoạt động cùng nhau sẽ giúp bạn khắc phục mọi sự cố có thể phát sinh trong quá trình lắp ráp. Dự án tận dụng sức mạnh xử lý của ESP32 để quản lý dữ liệu cảm biến và điều khiển đầu ra một cách hiệu quả.
Chi tiết bảng dữ liệu
| Nhà sản xuất | Espressif Systems |
|---|---|
| Số bộ phận | ESP32 |
| Điện áp logic/IO | 3,3 V |
| Điện áp cung cấp | 5 V (tối đa) |
| Dòng điện đầu ra (mỗi kênh) | 40 mA |
| Dòng điện đỉnh (mỗi kênh) | 160 mA |
| Hướng dẫn tần số PWM | 1 kHz - 40 kHz |
| Ngưỡng logic đầu vào | 0,3 VCC (thấp), 0,7 VCC (cao) |
| Sụt áp / RDS(on) / bão hòa | 0,2 V (điển hình) |
| Giới hạn nhiệt | Nhiệt độ hoạt động: -40°C đến 85°C |
| Đóng gói | QFN48 |
| Ghi chú / biến thể | Có nhiều mô-đun ESP32 khác nhau |
- Đảm bảo nguồn điện phù hợp để tránh hư hỏng.
- Sử dụng điện trở với còi báo để giới hạn dòng điện.
- Giữ dây tín hiệu ngắn để giảm nhiễu.
- Sử dụng điện trở kéo lên nếu cần cho các đầu vào kỹ thuật số.
- Thận trọng với phạm vi tối đa của cảm biến siêu âm.
Hướng dẫn đấu dây

Để đấu dây các linh kiện cho dự án, hãy bắt đầu bằng cách kết nối cảm biến siêu âm. Kết nối chân VCC của cảm biến với đường nguồn 5V và chân GND với đất. Chân Trig nên được kết nối với chân 26 trên ESP32 và chân Echo nên được kết nối với chân 25.
Tiếp theo, đấu dây còi báo bằng cách kết nối chân dương của nó với chân 14 trên ESP32 và chân âm với đất. Đối với màn hình LCD, kết nối chân VCC với đường 5V và chân GND với đất. Các chân SDA và SCL của màn hình LCD nên được kết nối với chân 21 và 22 tương ứng. Đảm bảo tất cả các kết nối được chắc chắn để tránh mất kết nối trong quá trình hoạt động.
Ví dụ mã & hướng dẫn chi tiết
Trong mã, bạn sẽ tìm thấy các định danh chính như distance, lưu trữ khoảng cách đo được từ cảm biến siêu âm. Biến này được cập nhật liên tục trong vòng lặp để phản ánh khoảng cách hiện tại. Chân của còi báo được định nghĩa là buzzerPin, cho phép điều khiển trạng thái của nó một cách dễ dàng.
const int triggerPin = 26; // Chân trigger cho cảm biến siêu âm
const int echoPin = 25; // Chân echo cho cảm biến siêu âm
const int buzzerPin = 14; // Chân còi báo
Các hằng số này được định nghĩa ở đầu mã để rõ ràng và dễ điều chỉnh. Các chân trigger và echo được sử dụng để giao tiếp với cảm biến siêu âm, trong khi chân còi báo điều khiển đầu ra âm thanh.
void setup() {
pinMode(triggerPin, OUTPUT); // Đặt chân trigger làm đầu ra
pinMode(echoPin, INPUT); // Đặt chân echo làm đầu vào
pinMode(buzzerPin, OUTPUT); // Đặt chân còi báo làm đầu ra
}
Trong hàm setup(), chúng ta cấu hình các chế độ chân cho cảm biến siêu âm và còi báo. Điều này đảm bảo ESP32 có thể tương tác chính xác với các linh kiện phần cứng trong quá trình hoạt động.
void loop() {
distance = readDistance(); // Gọi hàm để đọc khoảng cách
if (distance <= 10) {
beep(100); // Tiếng bíp nhanh cho khoảng cách gần
} else if (distance <= 20) {
beep(500); // Tiếng bíp trung bình cho khoảng cách vừa
} else {
beep(2000); // Tiếng bíp chậm cho khoảng cách an toàn
}
}
Hàm loop() liên tục đọc khoảng cách và điều chỉnh tần số phát tiếng kêu của còi dựa trên giá trị đó. Hàm beep() được gọi với các khoảng thời gian khác nhau tùy thuộc vào mức độ gần của vật cản.
Trình diễn / Điều mong đợi
Sau khi mọi thứ được kết nối và mã được tải lên, bạn có thể mong đợi hệ thống phát tiếng kêu ở các khoảng thời gian khác nhau dựa trên khoảng cách đến vật cản. Khi khoảng cách nhỏ hơn 10 cm, còi sẽ phát tiếng kêu nhanh, trong khi khoảng cách lớn hơn 50 cm sẽ dẫn đến tiếng kêu chậm. Hãy đảm bảo kiểm tra hệ thống bằng cách đặt tay trước cảm biến siêu âm để thấy sự thay đổi trong số đo khoảng cách và tốc độ phát tiếng kêu tương ứng (trong video tại 12:30).
Mốc thời gian trong video
- 00:00 Bắt đầu
- 2:08 Giới thiệu và tài liệu
- 4:12 Giải thích về cách nối dây
- 13:17 Mã Arduino
- 21:01 Chọn bo mạch ESP32 và cổng COM trong Arduino IDE
- 22:48 Trình diễn trong phòng thí nghiệm
- 24:54 Trình diễn trên xe
Common Course Links
Common Course Files
Nghĩ bạn có thể cần
-
AmazonBuy LCD1602-I2C from Amazonamzn.to
-
eBayPurchase LCD1602-I2C from eBayebay.us
-
AliExpressPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
-
AliExpressPurchase LCD1602-I2C from AliExpresss.click.aliexpress.com
Tài nguyên & tài liệu tham khảo
-
Tài liệuESP32 Tutorial 32/55 - SunFounder doc page for reversing aiddocs.sunfounder.com
Tập tin📁
Tập tin Fritzing
-
LCD2004-I2C
LCD2004-I2C.fzpz0.02 MB