You are currently viewing Bộ thu/phát WiFi ESP8266

Bộ thu/phát WiFi ESP8266

ESP8266 là Hệ thống Wi-Fi trên Chip (SoC) do Espressif Systems sản xuất. ESP8266 rất phù hợp cho các dự án IoT và tự động hóa các thiết bị trong nhà. Bài viết này bao gồm tất cả các thông tin càn thiết để bắt đầu với bo mạch này như ESP8266 là gì, ứng dụng của nó, cách chọn bo mạch phát triển, hướng dẫn cách thiết lập môi trường và lập trình cho bo mạch phát triển ESP8266.

> Hướng dẫn lập trình cho ESP8266 bằng Arduino IDE

ESP8266-Wifi-Boards

Hình 1. Bộ thu/phát WiFi ESP8266.

1. Giới thiệu về ESP8266

ESP8266 là một chip WI-FI công suất thấp được phát triển bới Espressif Systems. Nó có thể được sử dụng như một thiết bị độc lập hoặc như một bộ chuyển đổi UART sang Wi-Fi để cho phép các bộ vi điều khiển khác kết nối với mạng Wi-Fi. Ví dụ, chúng ta có thể kết nối ESP8266 với Arduino để thêm khả năng kết nối Wi-Fi cho bo mạch Arduino. Ứng dụng thiết thực nhất là sử dụng nó như một thiết bị độc lập.

Với ESP8266, chúng ta có thể điều khiển đầu vào và đầu ra như cách chúng ta làm với Arduino, nhưng với khả năng kết nối Wi-Fi. Điều này có nghĩa là chúng ta có thể kết nối các dự án của mình vào mạng – đây là một tính năng rất phù hợp cho các ứng dụng tự động hóa thiết bị trong nhà và internet vạn vật. Tại sao ESP8266 lại được ưa chuộng đến vậy? Chủ yếu vì những lý do sau:

  • Chi phí thấp: chúng ta có thể mua bo mạch ESP8266 với giá từ 75K (hoặc ít hơn) tùy thuộc vào kiểu mẫu.
  • Công suất thấp: ESP8266 tiêu thụ rất ít năng lượng khi so sánh với các bộ vi điều khiển khác và thậm chí có thể chuyển sang chế độ ngủ sâu để tiêu thụ ít năng lượng hơn;
  • Wi-Fi: ESP8266 có thể tạo mạng Wi-Fi (điểm truy cập) của riêng mình hoặc kết nối với các mạng (trạm) Wi-Fi khác để truy cập internet. Điều này có nghĩa là ESP8266 có thể truy cập các dịch vụ trực tuyến để thực hiện các yêu cầu HTTP hoặc lưu dữ liệu vào đám mây chẳng hạn. Nó cũng có thể hoạt động như một máy chủ web để bạn có thể truy cập nó bằng trình duyệt web và có thể điều khiển và giám sát bo mạch của chúng ta từ xa.
  • Tương thích với ngôn ngữ lập trình cho Arduino: những người đã quen với việc lập trình bo mạch Arduino sẽ rất vui khi biết rằng họ có thể lập trình ESP8266 theo phong cách Arduino.
  • Tương thích với MicroPython: chúng ta có thể lập trình ESP8266 với phần sụn MicroPython firmware, đây là bản triển khai lại của Python 3 được nhắm tới các bộ vi điều khiển và hệ thống nhúng.

Các ứng dụng của ESP8266 bao gồm:

  • Tạo một máy chủ web để điều khiển đầu ra;
  • Tạo một máy chủ web để hiển thị các kết quả đọc cảm biến;
  • Gửi yêu cầu HTTP;
  • Điều khiển đầu ra, đọc đầu vào và thiết lập ngắt;
  • Dự án khai thác dữ liệu;
  • Giao tiếp với các dịch vụ của bên thứ ba;
  • Tạo ứng dụng web;
  • Gửi email, thông báo, đăng tweet, v.v.
  • Và nhiều hơn nữa.

ESP8266-12E Wi-Fi chip

Hình 2. ESP8266-12E Wi-Fi chip.

Các đặc tính kỹ thuật của ESP8266

  • Bộ xử lý: Lõi vi xử lý L106 32-bit RISC dựa trên Tensilica Diamond Standard 106Micro chạy ở 80 hoặc 160 MHz
  • Bộ nhớ:
    • RAM lệnh 32 KB
    • Bộ nhớ RAM đệm lệnh 32 KB
    • RAM dữ liệu người dùng 80 KB
    • RAM dữ liệu hệ thống ETS 16 KB
  • Bộ nhớ flash QSPI bên ngoài: hỗ trợ tối đa 16 MB (thường bao gồm 512 KB đến 4 MB)
  • Wi-Fi IEEE 802.11 b/g/n
  • Chuyển mạch TR tích hợp, balun, LNA, bộ khuếch đại công suất và mạng phối hợp trở kháng
  • Xác thực WEP hoặc WPA/WPA2 hoặc mạng mở
  • 17 chân GPIO
  • Bus giao diện ngoại vi nối tiếp SPI (Serial Peripheral Interface Bus)
  • I²C (thực hiện bằng phần mềm)
  • Giao diện I²S với DMA (chia sẻ chân với GPIO)
  • UART trên các chân chuyên dụng, cộng với UART chỉ truyền có thể được cho phép trên GPIO2
  • ADC 10 bit (ADC xấp xỉ liên tiếp)

Khác biệt chính giữa ESP8266 và ESP32

Có một phiên bản kế nhiệm của ESP8266 là ESP32. ESP32 kết hợp Wi-Fi và Bluetooth và có lõi vi xử lý kép. Nếu bạn đang băn khoăn lựa chọn loại nào, chúng tôi khuyên bạn nên mua một chiếc ESP32. Nếu bạn đã có một chiếc ESP8266 cũng đừng lo lắng. Nó hoạt động rất tốt, nó có một cộng đồng lớn và nó đủ để thực hiện công việc cho hầu hết các dự án IoT.

Khác biệt giữa ESP32 và ESP8266

Hình 3. Khác biệt giữa ESP32 và ESP8266.

Bảng sau chỉ ra những sự khác biệt chính giữa chip ESP8266 và chip ESP32:

ESP8266 ESP32
MCU Xtensa Single-core 32-bit L106 Xtensa Dual-Core 32-bit LX6 with 600 DMIPS
802.11 b/g/n Wi-Fi HT20 HT40
Bluetooth X Bluetooth 4.2 and BLE
Tần số điển hình 80 MHz 160 MHz
SRAM X
Flash X
GPIO 17 34
Hardware/Software PWM None/8 channels None/16 channels
SPI/I2C/I2S/UART 2/1/2/2 4/2/2/2
ADC 10-bit 12-bit
CAN X
Giao diện Ethernet MAC X
Cảm biến chạm X
Cảm biến nhiệt độ X (old versions)
Cảm biến hiệu ứng Hall X
Giá bán $ (3$ – $6) $$ ($6 – $12)
Nơi mua Mô-đun ESP8266 NodeMCU Bảng Mạch Phát Triển Esp32

Các phiên bản ESP8266

Có một số phiên bản của mô-đun ESP8266 như trong hình bên dưới. ESP-01 và ESP-12E là những phiên bản phổ biến nhất. Bạn sẽ tìm thấy nhiều loại bo mạch phát triển với chip ESP-12E hoặc ESP-12F.

Các phiên bản ESP8266

Hình 4. Các phiên bản ESP8266.

2.  Các bo mạch phát triển ESP8266

Để tìm hiểu, thử nghiệm và tạo nguyên mẫu cho các dự án IoT, cách tốt nhất là sử dụng các bo mạch phát triển trên chip ESP8266 thay vì tự lắp ráp mạch từ các linh kiện ESP8266 rời. Các bo mạch phát triển thường tích hợp sẵn tất cả các mạch cần thiết để cấp nguồn, nạp chương trình, dễ dàng sử dụng các cổng GPIO để kết nối các cảm biến và bộ truyền động, ăng-ten cho tín hiệu Wi-Fi và các tính năng khác.

Các bo mạch phát triển ESP8266

Hình 5. Các bo mạch phát triển ESP8266.

Có rất nhiều loại bo mạch ESP8266 từ các nhà cung cấp khác nhau. Mặc dù tất cả chúng đều hoạt động theo cách tương tự, nhưng một số bo mạch có thể phù hợp hơn cho một số dự án so với các bo mạch khác. Khi tìm kiếm một bo mạch phát triển ESP8266, có một số khía cạnh bạn cần tính đến:

  • Giao diện USB-to-UART và mạch ổn áp. Hầu hết các bo mạch phát triển đầy đủ tính năng đều có hai tính năng này. Điều này rất quan trọng để dễ dàng kết nối ESP8266 với máy tính để nạp mã lên bo mạch và cấp nguồn.
  • Các nút BOOT và RESET/EN để đặt bo mạch ở chế độ nạp firmware vào bộ nhớ Flash hoặc đặt lại (khởi động lại) bo mạch.
  • Cấu hình chân và số lượng chân. Để sử dụng đúng cách ESP8266 trong các dự án của mình, bạn cần có sơ đồ chân của bo mạch (như bản đồ hiển thị chân nào tương ứng với GPIO nào và các tính năng của nó). Vì vậy, hãy đảm bảo rằng bạn nhận được sơ đồ chân của bo mạch mà bạn đang mua. Ngoài ra, một số bo mạch có nhiều GPIO sẽ dễ tiếp cận hơn những bo mạch khác. Đó là một yếu tố bạn nên tính đến tùy thuộc vào các tính năng của dự án.
  • Kích thước. Có nhiều loại bo mạch phát triển ESP8266 với các kích cỡ khác nhau. Một số dự án nhúng yêu cầu bo mạch ESP8266 có kích thước nhỏ. Thông thường, các bo mạch nhỏ hơn như ESP-01 có một số lượng GPIO có sẵn ít hơn.
  • Đầu nối anten. Hầu hết các bo mạch đều có ăng-ten tích hợp cho tín hiệu Wi-Fi. Một số bo mạch đi kèm với đầu nối ăng-ten để tùy chọn kết nối ăng-ten bên ngoài. Việc thêm ăng-ten ngoài sẽ tăng phạm vi Wi-Fi của bạn.

Bo mạch phát triển ESP8266 tốt nhất cho dự án của bạn sẽ phụ thuộc vào những gì bạn định làm. Nếu bạn mới bắt đầu làm quen với ESP8266, bạn nên sử dụng Bộ kít NodeMCU ESP8266-12E.

3.  Kit NodeMCU ESP8266-12E

ESP8266 NodeMCU Kit

Hình 6. ESP8266 NodeMCU Kit.

ESP12-E NodeMCU Kit là một trong những bo mạch phát triển ESP8266 được sử dụng nhiều nhất. Nó có bộ nhớ flash 4 MB, 11 chân GPIO và một chân chuyển đổi tương tự sang số (ADC) với độ phân giải 10 bit. Ngoài ra, bo mạch có bộ ổn định điện áp tích hợp, do đó chúng ta có thể cấp nguồn cho mô-đun bằng ổ cắm USB mini hoặc chân Vin.

Việc tải mã lên ESP12-E NodeMCU Kit dễ dàng như tải mã lên Arduino. Không cần bộ nạp chương trình FTDI hoặc mạch bổ sung, vì nó có bộ chuyển đổi USB sang nối tiếp tích hợp. Hầu hết các bo mạch đều đi kèm với chip CP2101 hoặc CH340.

ESP12-E NodeMCU Kit đi kèm với một ăng-ten tích hợp cho thu/phát tín hiệu Wi-Fi và đi kèm với các nút RST và FLASH để đặt lại bo mạch và đặt nó vào chế độ nạp firmware cho Flash. Có một đèn LED màu xanh được kết nối bên trong với chân GPIO2, rất hữu dụng để gỡ lỗi.

ESP12-E NodeMCU Kit là mẫu bo mạch ESP8266 được sử dụng thường xuyên trong các dự án Wi-Fi và IoT. Nó rất linh hoạt và rất phù hợp cho người mới bắt đầu. Vì vậy, nếu đây là lần đầu tiên bạn sử dụng ESP8266, thì đây là mô-đun bạn nên dùng.

Mua ESP12-E NodeMCU Kit ở đâu?

Bạn có thể tìm mua ESP12-E NodeMCU Kit ở một trong các đường link bên dưới:

Mô-đun ESP8266 NodeMCU

4.  Các bo mạch phát triển ESP8266 phổ biến khác

Các bo mạch ESP8266 rất phổ biến khác là ESP-01 và ESP8266 Wemos D1 mini.

Mặc dù tôi không khuyên dùng ESP-01 cho người mới bắt đầu, nhưng ESP8266 Wemos D1 mini có thể là một lựa chọn tốt.

a)  ESP-01

Mô-đun ESP-01

Hình 7. Mô-đun ESP-01.

ESP-01 siêu nhỏ và phù hợp với bất kỳ vỏ bọc nào, vì vậy nó hoàn hảo cho các dự án đã hoàn thành. Tuy nhiên, nó rất hạn chế về số lượng GPIO có thể truy cập và không có bộ ổn áp tích hợp, vì vậy bạn cần sử dụng nguồn điện 3V3 hoặc thêm bộ ổn áp để giảm điện áp đầu vào xuống 3V3. Ngoài ra, nó không đi kèm với bộ chuyển đổi USB-to-serial, có nghĩa là bạn cần một bộ nạp chương trình FTDI hoặc một bảng lập trình cụ thể để nạp mã.

b)  WeMos D1 Mini

Mô-đun WeMos D1

Hình 8. Mô-đun WeMos D1.

WeMos D1 Mini cung cấp bộ nhớ flash 4MB, 11 GPIO và 1 chân ADC trong một thiết lập nhỏ và tối thiểu. Cộng đồng đã phát triển nhiều loại tấm chắn khác nhau cho bo mạch mini D1, cho phép bạn xây dựng các thiết lập nhỏ và đơn giản mà hầu như không cần đi dây. Bạn chỉ cần xếp các tấm chắn để kết nối nhiều thiết bị ngoại vi. Nó đi kèm với bộ ổn áp tích hợp và bộ chuyển đổi USB-to-UART, giúp dễ dàng nạp mã. Vì những lý do này, đây cũng có thể là một lựa chọn tốt cho người mới bắt đầu.

Bảng sau chỉ ra sự khác biệt chính giữa ESP-01, ESP8266-12E NodeMCU Kit và WeMos D1 Mini.

ESP-01 ESP-12E NodeMCU WeMos D1 Mini
Số chân GPIO 4
(bao gồm cả chân TX và RX)
11 11
Số chân ADC 1 1 1
Bộ nhớ Flash 1MB (phiên bản đã nâng cấp) 4MB 4MB
Thân thiện với Breadboard x
Bộ chuyển đổi USB thành Serial x
Kích thước 24.75mm x 14.5mm
(0.97” x 0.57”)
48.55mm x 25.6mm
(1.91” x 1”)
34.2mm x 25.6mm
(1.35” x 1”)
Giá bán Cỡ vài đô Cỡ vài chục đô Cỡ vài chục đô
Nơi mua? ESP-01 Mô-đun ESP8266 NodeMCU WeMos D1 Mini

5.   Sơ đồ chân của bo mạch phát triển ESP8266

Các bo mạch phát triển ESP8266 được sử dụng rộng rãi nhất là Bộ công cụ NodeMCU ESP8266-12E, Wemos D1 Mini và ESP-01. Chúng ta sẽ tìm hiểu sơ đồ chân của những bo mạch đó. Sơ đồ chân giống như một bản đồ cho biết chân nào tương ứng với GPIO nào và các tính năng của nó. Thông qua sơ đồ chân bạn sẽ biết nên sử dụng GPIO nào nếu bạn cần sử dụng SPI, I2C, ADC hoặc các loại khác.

Các chân cấp nguồn

Thông thường, tất cả các bo mạch đều có chân nguồn: 3V3, GND và VIN. Bạn có thể sử dụng các chân này để cấp nguồn cho bo mạch (nếu bạn không cấp nguồn qua cổng USB) hoặc để cấp nguồn cho các thiết bị ngoại vi khác (nếu bạn đang cấp nguồn cho bo mạch bằng cổng USB).

Chân đầu vao/ra đa chức năng (GPIO)

Một điều quan trọng cần lưu ý về ESP8266 là số thứ tự của chân GPIO không khớp với nhãn trên bo mạch. Ví dụ, D0 tương ứng với GPIO16 và D1 tương ứng với GPIO5. Khi lập trình bo mạch bằng Arduino IDE, bạn phải sử dụng số GPIO chứ không phải số trên bo mạch. Điều này áp dụng cho hầu hết các bo mạch ESP8266.

Các thiết bị ngoại vi ESP8266 bao gồm:

  • 17 GPIO (thường không phải tất cả GPIO đều có thể truy cập được trên bo mạch phát triển ESP8266)
  • SPI
  • I2C (triển khai bằng phần mềm)
  • Giao diện I2S với DMA
  • UART
  • ADC 10 bit

Các GPIO khác nhau của ESP8266 có các tính năng cụ thể, vì vậy bạn phải chọn các chân cho các dự án của mình một cách khôn ngoan. Nếu không, bạn có thể sẽ nhận được kết quả không mong muốn.

Chúng tôi khuyên bạn nên xem hướng dẫn sử dụng của  ESP8266 để biết chi tiết chức năng của từng GPIO và cách chọn GPIO tốt nhất cho dự án của bạn.

a)  Sơ đồ chân ESP-12E NodeMCU Kit

Hình ảnh sau đây cho thấy tổng quan về sơ đồ chân của Kit NodeMCU ESP-12E.

Sơ đồ chân ESP8266 NodeMCU v2

Hình 9. Sơ đồ chân ESP8266 NodeMCU v2.

Sơ đồ chân ESP8266 NodeMCU v3

Hình 10. Sơ đồ chân bo mạch ESP8266 NodeMCU v3.

b)  Sơ đồ chân WeMos D1 Mini

Hình ảnh sau đây cho thấy tổng quan về sơ đồ chân của Kit WeMos D1 Mini.

Sơ đồ chân mô-đun ESP8266 WeMos D1

Hình 11. Sơ đồ chân mô-đun ESP8266 WeMos D1.

c)  Sơ đồ chân ESP8266-01

Hình ảnh sau đây cho thấy tổng quan về sơ đồ chân của ESP8266-01.

Sơ đồ chân mô-đun ESP-01

Hình 12. Sơ đồ chân mô-đun ESP-01.

Trong bài viết Hướng dẫn lập trình cho ESP8266 bằng Arduino IDE chúng ta cùng nhau tìm hiểu cách sử dụng Arduino IDE để lập trình cho mô-đun ESP8266.

Nguyễn Kiêm Hùng

Hung K. Nguyen studied “Electronic Engineering” in both his bachelor’s and master’s degrees at the Vietnam National University, Hanoi, Vietnam. He received the bachelor’s degree in 2003. After receiving his bachelor’s degree, He worked as an internship in the Research Center of Electronics and Telecommunications. In 2006, He received the master’s degree in electronic engineering from VNU University of Engineering and Technology (VNU-UET). Before pursuing his Ph.D’s degree, He worked as a researcher at the Laboratory for Smart Integrated Systems in VNU University of Engineering and Technology for two years. In 2008, He went to Southeast University, Nanjing, China to get his Ph.D degree. He received the Ph.D. degree in Microelectronics and Solid State Electronics from Southeast University in 2013. After got his Ph.D’s degree, He returned to VNU University of Engineering and Technology to continue his research in VLSI design. He works currently as an assistant professor and senior researcher at VNU Key Laboratory for Smart Integrated Systems. His research interests mainly include multimedia processing, reconfigurable computing, and SoC designs.

This Post Has 2 Comments

Trả lời