ESP8266 cho người không biết gì

ESP8266 là một  dòng chip tích hợp Wi-Fi 2.4Ghz có thể lập trình được, không biết có bạn nào thắc mắc là modem wifi ở nhà nó hoạt động thế nào, cách thức ra làm sao không nhỉ ? Nếu bạn cũng đang tìm hiểu cũng như muốn điều khiển một cái gì đó từ xa thì đây là một modul thích hợp cho bạn làm điều đó. Vậy chúng ta sẽ thử tìm hiểu qua về cách sử dụng nó như thế nào nhé.

Giới thiệu các phiên bản ESP8266

Hiện tại thì đã có tới 14 phiên bản của ESP8266, quá nhiều sự lựa chọn cho chúng ta. Nhưng vì ở Việt Nam không phải lúc nào cũng có đủ tất cả nên mình sẽ giới thiệu 2 phiên bản ESP8266 phổ biến hiện nay

ESP-01

esp8266-v1

Tính năng

  • Mạch nhỏ, gọn (24.75mm x 14.5mm)
  • Điện áp làm việc 3.3v
  • Tích hợp sẳn anten PCB trace trên module
  • Có hai led báo hiệu : led nguồn, led TXD
  • Có các chế độ: AP, STA, AT + STA
  • Lệnh AT rất đơn giản, dễ dàng sử dụng
  • Khoảng cách giữa các chân 2.54mm

Sơ đồ chân

esp8266_esp-01_pinouts

ESP-12

esp-12

Tính năng

  • Sử dụng nguồn 3.3v
  • Tích hợp anten PCB trace trên module
  • Tiêu chuẩn wifi : 802.11b/g/n, với tần số 2.4GHz và hổ trợ bảo mật WPA/WPA2
  • Khoảng cách giữa các chân 2mm

Sơ đồ chân

esp12-pinout

2 bản này có cái PCB màu xanh là bản thường, có cái PCB màu đen là bản mới nhất 12E, bản 12E là bản mới nhất, ra nhiều chân IO nhất và giá cũng chỉ hơn 10k. Nếu mua mới khuyến khích các bạn mua bản 12E

Ngoài ra chúng ta có thể sử dụng một kit thay thế bao gồm ESP8266 và phần giao tiếp với máy tính là NodeMCU, với kit này không có sẵn firmware AT nên nếu muốn dùng tập lệnh AT thì các bạn có thể dựa trên bài nạp firmware AT để có thể giao tiếp với MCU.

Chuẩn bị và kết nối

Đầu tiên là bước chuẩn bị đồ dùng để bắt đầu cho quá trình ngâm cứu, chúng ta cần có 3 thứ

  • Modul ESP8266 phiên bản v1 hoặc v12
  • Modul USB2UART (ở đây mình dùng modul PL2303)
  • Modul nguồn 3.3V (bạn có thể lấy nguồn từ PL2303 nhưng nên xài nguồn riêng cho ổn định do dòng của ESP tiêu thụ hơi lớn)
  • Một số dây cắm

Vậy là đã đầy đủ đồ nghề, giờ bắt đầu kết nối thôi, các bạn lưu ý khi mua mấy cái modul này thì bảo người bán test hàng cho mình trước, nếu có đồ sẵn ở nhà rồi thì đảm bảo các modul UART với nguồn còn hoạt động tốt nha. Quan trọng nhất là đừng cắm lộn nguồn – + là được rồi.

Đây là sơ đồ kết nối minh họa cho 2 phiên bản ESP8266 v1 và v12

Kết nối với ESP8266v1

esp-01-ftdi_bb1-620x537

Kết nối với ESP8266v12

esp8266-esp-12-module-connect

Với NodeMCU chỉ cần nạp firmware AT vào là dùng thôi, không cần nối thêm dây.

Cấu hình

Việc kết nối đã xong, giờ chúng ta bắt đầu kiểm tra coi modul hoạt động thế nào

Đầu tiên là tải phần mềm terminal, có nhiều loại phần mềm và tùy vào phong cách cũng như sở thích của từng người, nếu mới dùng modul thì mình khuyên dùng phần mềm sscom

Đây là màn hình của phần mềm, phiên bản của các bạn Tàu khựa nhưng các bạn yên tâm không phải lo lắng về ngôn ngữ nhé.

Lưu ý: Khi kết nối gõ lệnh AT dùng SSCOM không hiển thị gì thì cách khắc phục là bạn cần ngắt kết nối GPIO0 với GND.

sscom42

Mình xin nói qua về cách sử dụng một chút

  • Số 1 là lựa chọn cổng COM và tốc độ baud, cổng COM ở đây là COM khi bạn cắm modul UART vào nhé (ở đây nó tự detect cổng COM cho bạn), về tốc độ baud thì ESP8266 có 2 tốc độ là 9600115200, nếu không được cái này thì bạn thử với cái kia. Xong thì ấn vào nút kết nối được khoanh ngay bên cạnh nhé.
  • Số 2 là thông báo khi bắt đầu khởi động modul, nếu hiện thông báo này thì coi như bước giao tiếp đã thành công, không được thì bạn đổi lại baud xem thế nào. Mình xin nói thêm ở đây là cái chữ invalid làm mình khốn khổ thế nào, ban đầu cứ tưởng modul bị ra đi rồi nhưng không phải, vẫn hoạt động bình thường, mình kiểm tra mấy modul rồi thì có mỗi modul này bị như thế, các modul khác thì ra valid nha các bạn.
  • Số 3 là tick chọn để gửi lệnh AT thì mới có phản hồi về, nó tương ứng với \r\n (cái này chắc mình sẽ nói sau nhé).
  • Tiếp tục dòng chữ AT ở vị trí số 4 sau đó ấn nút số 5
  • Quan sát kết quả ở vị trí số 6, nếu hiện OK là modul hoạt động tốt rồi

Kết nối vào mạng wifi

Đầu tiên dùng lệnh AT+RST  để thực hiện reset lại modul, tiếp theo là thực hiện tuần tự theo các bước như bảng bên dưới, tạm thời mình chỉ đưa ra 1 số lệnh cơ bản và mô tả để các bạn có thể kết nối được vào wifi nhà mình thôi.

Lệnh ATMô tảThông sốThao tác thực hiệnKết quả trả về
AT+CWMODE ="mode"Cài đặt chế độ1 = Station
2 = Access Point
3 = Both
Gõ AT+CWMODE=3OK
AT+CIPMUX ="mode"Cài đặt số lượng các kênh kết nối0 = 1 kênh kết nối
1 = Nhiều kênh kết nối
Gõ AT+CIPMUX=1OK
AT+CWLAPTìm WifiGõ AT+CWLAPDanh sách các mạng wifi sẵn có
AT+CWJAP = "ssid", "password"Kết nối với mạng wifi nhà mìnhGõ AT+CWJAP="tên mạng nhà bạn","mật khẩu"WIFI CONNECTED
WIFI GOT IP
OK
AT+CIFSRXem địa chỉ IP của moduleGõ AT+CIFSR+CIFSR:APIP,"192.168.4.1"
+CIP:APMAC,"xx:xx:xx:xx:xx:xx"
+CIFSR:STAIP,"192.168.1.100"
+CIFSR:STAMAC,"xx:xx:xx:xx:xx:xx"

OK

Kết

Thế là bước đầu bạn đã có thể kết nối được modul ESP8266, kiểm tra được modul sống hay chết, làm quen được với phần mềm và cách gõ lệnh AT để kết nối vào mạng wifi nhà mình. Tất nhiên chỉ là làm quen, còn nhiều thứ chờ đợi bạn ở phía trước, ví như dùng ESP để làm một căn nhà thông minh đơn giản, hoặc các kết nối với vi điều khiển khác, các cấu hình lập trình cao siêu hơn, MQTT, FOTA, smart config với ESP8266… bạn có thể tham khảo thêm ở ở mục IOT/ESP8266 để cập nhật các bài viết về nó.

4 thoughts on “ESP8266 cho người không biết gì

  1. Xin chào mọi người! em mới làm được bộ điều khiển wifi, em dùng Mega2560 & esp8266, với esp8266 em dùng loại có chỗ cắm ăng ten nhỏ trên đầu. Nhưng có 1 vấn đề xảy ra, đó là: em sử dụng Sky phone, Asus phone thì truy cập wifi, vào địa chỉ IP 192.168.4.1 qua Chorme thì ok, còn khi em sử dụng Iphone, Samsung cũng truy cập được wifi tốt, nhưng khi vào địa chỉ IP 192.168.4.1 qua Safari và Chorme lại không được, báo lỗi “lỗi kết lỗi máy chủ, mất thời gian phản hồi” . Các anh xem có cách nào giúp em để các bộ Smartphone đều có thể truy cập! em thấy Sky phone & Asus thì là Android rồi, vậy mà Samsung cũng Android lại không vào được, trong khi đó Iphone là IOS. Em cảm ơn!

    1. Hi e, có khả năng là asus phone và sky phone của e cùng dãy IP với ESP (192.168.4.xx), còn iphone, samsung nằm ở dãy địa chỉ khác (192.168.1.xx), do dó không kết nối được em nhé

Add Comment