ESP32 lỗi – Làm sao khắc phục?

Bạn gặp tình trạng ESP32 lỗi và không thể hoạt động, chạy các dự án như mình muốn? Dưới đây là các lỗi phổ biến và cách khắc phục chi tiết.

Không tìm thấy ESP32 trong Arduino IDE

Dù đã cài đặt tiện ích ESP32 trong Arduino IDE, nhưng bạn vẫn không thấy mạch này xuất hiện trong thanh menu Tool của Arduino IDE thì làm sao?

Lúc này, bạn hãy kiểm tra xem đã nhấp vào mũi tên nhỏ trong hình dưới, để xem hết tất cả các bảng mạch hỗ trợ chưa (như hình):

ESP32 lỗi không tìm thấy trong Arduino IDE

Nếu đã nhấp vào mũi tên mà vẫn không thấy mạch ESP32, bạn hãy cài lại tiện ích này theo hướng dẫn trên nhé!

Không nạp chương trình vào ESP32 được

Bạn nạp chương trình vào ESP32 nhưng màn hình liên tục hiển thị các lỗi nghiêm trọng, như “Failed to connect to ESP32: Timed out… Connecting…”, phần mềm không thể kết nối với mạch ESP32.

Điều này có thể do ESP32 đang không ở chế độ Flashing / Uploading.

Cách khắc phục:

  • Chọn đúng tên mạch ESP32 và cổng COM trên phần mềm Arduino IDE
  • Nhấn giữ nút BOOT trên mạch ESP32
Nhấn nút BOOT trên ESP32 lỗi
  • Nhấn vào nút Upload trong Arduino IDE để nạp chương trình
  • Khi màn hình xuất hiện dòng chữ báo đang kết nối (“Connecting…”), bạn thả tay ra khỏi nút BOOT
  • Khi đó, chương trình sẽ nạp vào ESP32 bình thường và màn hình hiển thị dòng chữ “Done uploading” (tải lên xong).

Sau khi chương trình nạp vào ESP32 thành công, bạn hãy nhấn nút ENABLE để khởi động lại ESP32. Sau khi khởi động xong, ESP32 sẽ chạy chương trình vừa được nạp.

Trên thực tế, lỗi ESP32 này không liên quan gì đến mạch của bạn, mà do khi nhấn nút nhạp chương trình thì esptool.py không tự động reset, nên mạch ESP32 không thể đổi sang chế độ Flashing / Uploading để nhận code mà thôi.

ESP32 không nhận port / không tìm thấy cổng COM

Lỗi này xảy ra khi bạn đã cắm ESP32 vào máy tính nhưng máy tính không nhận port, bạn không thể tìm thấy cổng COM ESP32 trong Arduino (phần Port hiển thị màu xám):

Lỗi ESP32 không nhận port

Lỗi ESP32 này xuất hiện có thể do một trong 2 nguyên nhân sau:

  • Trường hợp 1: Thiếu USB driver
  • Trường hợp 2: Cáp USB bạn dùng bị hư hỏng hoặc không hỗ trợ truyền dữ liệu

Cách khắc phục trường hợp 1: Thiếu USB driver

Đầu tiên, bạn cần kiểm tra kỹ con chip trên mạch ESP23 bạn đang dùng. Ví dụ như mạch ESP32 DEVKIT V1 DOIT thì sử dụng chip CP2102:

Cách khắc phục lỗi ESP32 thiếu USB driver
Cách khắc phục lỗi ESP32 thiếu USB driver

Bạn gõ google tên chip kèm theo dòng “Driver download” và cài đặt về máy bình thường:

Cài driver USB để khắc phục lỗi ESP32 không nhận Port
Cài driver USB để khắc phục lỗi ESP32 không nhận Port

Sau khi cài xong, bạn khởi động lại Arduino IDE. Tình trạng ESP32 không nhận Port sẽ được giải quyết.

Cách khắc phục trường hợp 2: Lỗi từ cáp USB

Nếu đã kiểm tra kỹ về USB Driver nhưng vẫn còn tình trạng ESP32 không nhận Port, bạn có thể kiểm tra lại dây cáp USB mình đang dùng xem có bị hư hỏng không, hoặc chúng có hỗ trợ truyền dữ liệu không.

Có một số loại cáp USB chỉ hỗ trợ sạc pin chứ không dùng để truyền dữ liệu. Do đó, máy tính không thể kết nối với ESP32. Bạn hãy đổi sang một dây cáp USB khác để giải quyết vấn đề này.

Serial Monitor Arduino không hoạt động

Nếu màn hình Serial trong Arduino IDE in ra các văn bản lạ vô nghĩa hoặc không in thông tin gì, bạn hãy kiểm tra mình đã chọn đúng cổng COM kết nối với ESP32 chưa, đã chọn đúng tốc độ truyền chưa (đa số thì tốc độ là 115200):

Khắc phục ESP32 lỗi Serial Monitor Arduino không hoạt động
Khắc phục ESP32 lỗi Serial Monitor Arduino không hoạt động

Lỗi phần cứng – “Brownout detector was triggered”

Khi mở Arduino IDE nhưng màn hình liên tục in ra lỗi “Brownout detector was triggered” thì có lẽ một số phần cứng của bạn bị lỗi.

Bạn có thể kiểm tra một số vấn đề sau để giải quyết lỗi ESP32 này:

  • Cáp USB kém chất lượng, dẫn đến bị lỗi
  • Cáp USB quá dài
  • ESP32 bị lỗi, ví dụ như mối hàn kém
  • Cổng USB của máy tính bị lỗi
  • Cổng USB của máy tính cung cấp không đủ nguồn cho ESP32 hoạt động

Cách khắc phục: Thử đổi một dây USB ngắn hơn, đổi qua cổng USB khác của máy tính hoặc dùng thêm một bộ chia USB sử dụng nguồn điện bên ngoài cho ESP32.

ESP32 lỗi Bootloader Won’t Respond

Nếu trên màn hình xuất hiện lỗi ““Failed to connect” thì có nghĩa là con chip của bạn không thể truy cập vào bộ khởi động đúng cách.

Cách khắc phục:

  • Kiểm tra code của bạn có chuyển đúng cổng Serial chưa
  • Kiểm tra bạn có quyền truy cập vào cổng Serial không, các phần mềm khác có tương tác với cổng đó không
  • Mạch ESP32 có nhận được nguồn điện đúng và ổn định không
  • Nếu ESP32 lỗi khi đang kết nối với các ngoại vi khác qua chân GPIO, bạn hãy ngắt các kết nối này xem thử
  • Sử dụng tốc độ truyền chậm hơn, chẳng hạn như 9600 để xem thử ESP32 lỗi có phải do tốc độ truyền quá nhanh không

Lỗi Configuration File

Thông thường, esptool.py đã đưuọc điều chỉnh để hoạt động trong phạm vi rộng nhất có thể. Tuy nhiên, việc không tương thích giữa phần cứng, trình điều khiển, hệ điều hành,… có thể khiến thiết bị gặp phải lỗi như Configuration File.

Nếu bạn nghi ngờ ESP32 lỗi do nguyên nhân này, bạn cần cấu hình tùy chỉnh các biến nội bộ. Đây là các biến được chỉ định sẵn trong file cấu hình Configuration File.

Tiện ích ESP32 không hoạt động với Arduino IDE

Nếu bạn đã làm tất cả các cách trên nhưng vẫn xuất hiện tình trạng ESP32 lỗi khi dùng với Arduino IDE, bạn hãy thử chuyển sang lập trình ESP32 bằng Atom và PlatformIO IDE xem thử nhé!

Cách phòng tránh lỗi trên ESP32

Việc xảy ra lỗi ESP32 là điều không ai mong muốn, bạn có thể thực hiện theo một số cách sau để tránh tình trạng này:

  • Cài đặt tiện ích ESP32 đúng cách
  • Kiểm tra phần cứng, ngoại vi, chân kết nối,… trên ESP32 thường xuyên, đảm bảo phần cứng thiết bị không bị hư hỏng
  • Kiểm tra chương trình trước khi chạy
  • Kiểm tra dây cáp USB nạp dữ liệu thường xuyên

Lời kết

Trên đây là một số ESP32 lỗi cơ bản và cách khắc phục. Nếu bạn gặp lỗi khác, bạn có thể để lại bình luận bên dưới nhé! Hy vọng bài viết này sẽ giúp bạn sử dụng ESP32 hiệu quả hơn.

IoTZone – Chuyên cung cấp thiết bị điện tử & tài liệu cho Makers

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *