Kết nối với ESP8266 thuần với board mở rộng và kết nối với CP2102

Chào các bạn, đây là bài viết đầu tiên của mình đóng góp cho cộng đồng Arduino Việt Nam, mình xin nói trước mình là dân Tài Chính và học thêm về lập trình máy tính chứ không phải dân điện tử chuyên ngành nên mong các bạn bỏ qua cho các kiến thức về Điện - Điện Tử của mình nếu mình có nói sai điều gì.

Mình tìm thử trên trang của mình thì chưa thấy bài viết nào hướng dẫn thực tế cách kết nối một board ESP8266 "thuần" (không phải NodeMCU đã được gắn đầy đủ các mở rộng chân) vào một board mở rộng chân cắm (mình tạm gọi là vậy vì mình không biết dịch thế nào cho sát nghĩa, breakout board) và hoạt động độc lập với các lệnh AT. Bài viết tại đây của bạn Thái cũng sử dụng ESP8266 NodeMCU đã được làm sẵn cả rồi, chưa có ESP8266 thuần và cách kết nối tối thiểu để một ESP8266 có thể làm việc.

Mình cũng có một board ESP8266 NodeMCU để vọc nhưng mình cần một board ESP8266 khác cho một dự khác Arduino của mình, nếu xài nguyên NodeMCU để làm "Wifi Shield" thì thấy hơi phí, nên mình mua một cái ESP8266 chưa mở rộng + board mở rộng về để tự làm xem nó như thế nào, cái mình mua là ESP8266 phiên bản 12E với sơ đồ chân mình sẽ nói sau đây cũng như sơ đồ nối chân tối thiểu để có thể giao tiếp với board ESP8266 này. 

Sơ đồ chân ESP8266-12E

Trước tiên, đây là sơ đồ chân của một ESP8266 12E mà mình sắp đề cập, các bạn lưu ý là ESP8266 sử dụng nguồn 3.3V chứ không phải 5V như các board UNO / MEGA nên không gắn trực tiếp chân nguồn 5V vào bất kỳ chân nào nhé.

Hình ảnh thực tế và kết nối

Khi mình nhận về thì nó như thế này đây

Nó thật sự rất nhỏ, khi mở bao chống tĩnh điện thì nó nhỏ như thế này đây:

Bước kế là hàn lên mạch mở rộng chân đi kèm (phía sau mạch này có chỗ để sẵn ví trí 3 chân để hàn một chip ổn áp AMS hay 78xx nếu dòng cung cấp > 3.3V, mình thì không sử dụng cái đó vì mình sẽ cấp nguồn 3.3V trực tiếp vào VCC của mạch mà không thông qua ổn áp.

Khi gắn lên breadboard mới phát hiện là nó chiếm trọn breadboard mất rồi, không đủ chỗ để cắm dây khác vào

Thôi đành tháo ra và cắm trực tiếp dây vào từng chân vậy:

Kết nối với một USB UART CP2102: chúng ta sẽ chỉ sử dụng 3 chân của USB này thôi (Tx / Rx và GND), không sử dụng nguồn cấp 3.3V từ USB này vì cường độ dòng điện không đủ để cấp cho ESP8266, chúng ta sẽ cấp nguồn cho ESP8266 trực tiếp từ adapter, sau khi hàn vào board mở rộng rồi thì chân trên board cũng đúng thứ tự như trên ESP8266 (trên board mở rộng cũng có in chữ từng chân)

Bạn nối dây như sau giữa ESP8266 và nguồn adapter 3.3V

VCC Cực dương 3.3V (HIGH)
CH_PD Cực dương 3.3V (HIGH)
GPOI02 Cực dương 3.3V (HIGH)
GPOI15 Cực âm GND
GND Cực âm GND

Sau đó bạn nối USB CP2102 với ESP8266 theo 3 chân dưới đây:

CP2102 ESP8266
Tx Rx
Rx Tx
GND GND

Sau đó bạn kết nối USB vào PC, mình xin phép dùng chính Arduino IDE Serial Terminal để tương tác với ESP8266, con ESP8266 của mình chạy ở baudrate 115200:

  • Bật Serial Terminal, chọn "Both NL &CR", chọn baudrate 115200.
  • Bật nguồn cho ESP8266 (mình thấy đèn LED trên ESP8266 chỉ loé lên một cái rồi tắt chứ không mở thường trực như trên board NodeMCU, mình không hiểu tại sao, lúc đầu mình cứ tưởng là có trục trặc gì đó nhưng thực tế ESP8266 vẫn làm việc bình thường, lúc mình kết nối thử thành công vào ESP8266 vào mạng wifi nhà mình thì vẫn không thấy đèn LED này hoạt động), 

Xong rồi đấy, bạn có thể tham khảo thêm bài viết về các lệnh AT dành cho ESP8266 của bạn Đỗ Hữu Toàn tại đây để tương tác với ESP8266 và nhúng cái shield này vào một dự án Arduino khác của bạn: Tập lệnh AT với ESP8266

Mong tìm hiểu thêm: đối với các bạn dự định sử dụng ESP8266 như một MCU chạy độc lập (không thông qua một board microcontroller khác như Arduino) thì mình vẫn không hiểu tại sao đối với ESP8266, bạn chỉ cần bật HIGH cho chân digital từ 6 trở đi thì toàn board ESP8266 sẽ tiến hành khởi động lại, chỉ đơn giản là bật một cái LED được cắm ở chân đó thì cũng bị reset, mình tiến hành làm thử trên ESP8266 NodeMCU cũng bị tình trạng tương tự, mong các bạn chia sẻ thêm về điều này (mình hoàn toàn dùng Arduino IDE để upload code cho ESP8266, mình không thích dùng Lua vì thấy ngôn ngữ này khó xài vì không chặt chẽ).

lên
10 thành viên đã đánh giá bài viết này hữu ích.
Hướng dẫn sử dụng các loại module

Nếu bạn đang muốn thực hiện hóa ý tưởng của mình mà không biết dùng loại module nào? Hãy tham khảo các module trong danh sách sau

Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results