ESP8266

ESP8266, hay gọi đầy đủ là ESP8266EX là một vi mạch Wi-Fi giá rẻ, có hỗ trợ bộ giao thức TCP/IP và có thể tích hợp vào thành phần của vi điều khiển, được sản xuất bởi hãng Espressif Systems ở Thượng Hải, Trung Quốc.

Chip ESP8226 lần đầu tiên được các nhà sản xuất phương Tây chú ý vào tháng 8 năm 2014 với module ESP-01, do nhà sản xuất bên thứ ba là Ai-Thinker sản xuất. Module này cho phép các vi điều khiển kết nối với mạng Wi-Fi và thực hiện các kết nối TCP/IP đơn giản bằng cách sử dụng các lệnh kiểu Hayes (tập lệnh AT). Tuy nhiên, ban đầu hầu như không có tài liệu tiếng Anh nào về chip và các tập lệnh của nó. Vì mức giá rất thấp với rất ít thành phần bên ngoài khác trên module, các module ESP8266 đã thu hút nhiều hacker khám phá nó và các phần mềm trên đó, cũng như việc dịch thuật các tài liệu tiếng Trung Quốc của chip.

ESP8285 là một chip ESP8266 với 1 MiB bộ nhớ flash được tích hợp, cho phép người dùng có thể sản xuất các thiết bị có khả năng kết nối với Wi-Fi chỉ với một chip đơn.

Dòng chip kế thừa ESP8266 là ESP32, bao gồm cả vi điều khiển ESP32-C3 tương thích chân.

 Tính năng kĩ thuật 
nhỏ|Thiết kế tham khảo cho các module sử dụng chip ESP8266EX
Như nhiều vi mạch khác, cần thêm các khối khác để vi mạch ESP8266EX có thể hoạt động được. Một thiết kế tối thiểu cho ESP8266EX cần thêm các khối (tham khảo hình: Thiết kế tham khảo cho các module sử dụng chip ESP8266EX):

• Power supply (tạm dịch: khối nguồn)

• Power-on sequence and reset

• Flash

• Crystal oscillator

• RF

• External resistor (tạm dịch: điện trở ngoại)

• UART

Các module ESP8266 như ESP-01, ESP-12,... đều được thiết kế từ chip ESP8266EX với các khối như trên.

 Tính năng 
Các tính năng của chip ESP8266EX bao gồm:
 Bộ xử lý: Lõi vi xử lý L106 32-bit RISC dựa trên Tiêu chuẩn Tensilica Xtensa Diamond, hoạt động ở tần số 80 MHz và SRAM trên chip.
 Bộ nhớ nội: Bộ nhớ nội của ESP8266EX bao gồm SRAM và ROM. ESP8266EX có thể truy xuất các bộ nhớ này thông qua các interface iBus, dBus, và AHB. Kích thước SRAM nhỏ hơn 36kB khi ESP8266EX hoạt động ở chế độ station. ROM của ESP8266EX không lập trình được nên chương trình được lưu trong Flash ngoại.
 Flash ngoại: ESP8266EX sử dụng flash ngoại để lưu trữ chương trình và boot trực tiếp chương trình từ bus SPI. Kích thước flash ngoại mặc định sẽ khác nhau với từng loại module ESP8266, như ESP-01 có kích thước flash ngoại là 1MB, ESP-12E có kích thước flash ngoại là 16MB. Nếu chương trình sử dụng kích thước lớn hơn kích thước mặc định thì bộ flash ngoại với kích thước lớn hơn phải được sử dụng tuy nhiên kích thước flash ngoại tối đa về mặt lý thuyết cho phép là 16 MB. Kích thước bộ nhớ flash nhỏ nhất có thể là 512 kB (tắt chế độ OTA) hoặc 1 MB (bật chế độ OTA).
 IEEE 802.11 b/g/n Wi-Fi:
 Tích hợp TR switch, balun, LNA, bộ khuếch đại công suất và mạng kết hợp
 Xác thực WEP hoặc WPA/WPA2 hoặc mạng mở không có password.
 17 chân GPIO: Các chân có thể được dồn kênh cho các chức năng I²C, I2S, UART, PWM, IR - điều khiển từ xa,...
2 hardware timer 23 bit: FRC1 và FRC2.
 3 SPI: general Slave/Master SPI, Slave SDIO/SPI và general Slave/Master HSPI.
 I²C: Hỗ trợ 1 I²C hoạt động được ở cả chế độ master và slave. Vì các GPIO đều có thể được cấu hình ở chế độ cực máng hở nên các GPIO đều có thể được cấu hình cho các chân SDA hay SCL của I²C bằng phần mềm.
 Giao diện I²S với DMA (sử dụng chung chân với GPIO)
 UART: Hỗ trợ 2 UART là UART0 và UART1. UART0 sử dụng GPIO3 (RX) và GPIO1 (TX). UART1 sử dụng GPIO2 (TX) và GPIO8 (TX). Tuy nhiên GPIO8 được dùng để kết nối bộ nhớ flash của chip nên UART1 chỉ sử dụng được GPIO2 để truyền dữ liệu.
 ADC 10 bit

 Sơ đồ chân của ESP-01 
nhỏ|Sơ đồ chân module ESP-01
Sơ đồ chân của module ESP-01:

 GND, chân đất (0 V)
 GPIO 2 (General-purpose input/output No. 2)
 GPIO 0 (General-purpose input/output No. 0)
 RX, nhận bit dữ liệu X, cũng là GPIO3
 VCC, chân điện áp (+3.3 V; có thể chịu được điện áp đến 3.6 V)
 RST, Reset
 CH_PD, Chip tắt nguồn (Chip power-down)
 TX, truyền bit dữ liệu X, cũng là GPIO1

nhỏ|ESP8266 Die shot

 SDK 
Vào tháng 10 năm 2014, Espressif Systems đã phát hành bộ công cụ phát triển phần mềm (SDK), giúp ESP8266 có thể hoạt động như là một vi điều khiển riêng biệt chứ không cần phải sử dụng như là một module hỗ trợ giao tiếp WiFi cho một vi điều khiển khác như trước đó. Kể từ đó, đã có nhiều bản phát hành SDK chính thức từ Espressif; Espressif duy trì hai phiên bản của SDK, ESP8266 NonOS SDK và ESP8266 RTOS SDK (dựa trên FreeRTOS).

Một phiên bản SDK thay thế cho SDK chính thức của Espressif là bộ SDK mã nguồn mở ESP-Open-SDK dựa trên Bộ trình dịch GNU (GCC), hiện được Max Filippov duy trì. Một SDK thay thế khác là bộ "Unofficial Development Kit" (tạm dịch: "Bộ công cụ phát triển không chính thức") của Mikhail Grigorev, tuy nhiên hiện tại chưa được cộng đồng đánh giá cao (với chỉ 260 sao vào năm 2021) trên Github.

Các SDK khác, chủ yếu là mã nguồn mở, bao gồm:

 Arduino - Bộ firmware dựa trên C++. Với lõi này, CPU ESP8266 và các thành phần Wi-Fi của nó có thể được lập trình giống như bất kỳ thiết bị Arduino nào khác. Mã nguồn của ESP8266 Arduino Core có sẵn trên GitHub.
 ESP8266 BASIC - Một trình biên dịch mã nguồn mở giống BASIC được thiết kế riêng cho các ứng dụng Internet of Things. Môi trường phát triển dựa trên trình duyệt tự lưu trữ.
 ESP Easy - Được phát triển bởi cộng đồng kỹ sư phát triển nhà thông minh.
 ESPHome - ESPHome là hệ thống để điều khiển các board ESP8266 hoặc ESP32 bởi các file cấu hình đơn giản nhưng hiệu quả và điều khiển các board này từ xa thông qua hệ thống nhà thông minh.
 Tasmota - phần mềm mã nguồn mở, rất phổ biến với những người phát triển nhà thông minh.
 ESP-Open-RTOS - Phần mềm mã nguồn mở cho ESP8266 dựa trên FreeRTOS.
 ESP-Open-SDK - SDK tích hợp miễn phí và mở mã nguồn (càng nhiều càng tốt) cho các chip ESP8266 và ESP8285.
 Espruino - Một Javascript SDK đang được phát triển, mô phỏng giống với Node.js. Hỗ trợ một số MCU, bao gồm cả ESP8266.
 ESPurna - Phần mềm mã nguồn mở cho ESP8285 và ESP8266.
 Forthright - Dự án mã nguồn mở của Jones Forth cho vi điều khiển ESP8266.
 MicroPython - Một dự án MicroPython cho nền tảng ESP8266 (nằm trong dự án triển khai Python cho các thiết bị nhúng) 
 Moddable SDK bao gồm ngôn ngữ JavaScript và hỗ trợ thư viện cho ESP8266
 Mongoose OS - Hệ điều hành mã nguồn mở cho các sản phẩm được kết nối. Hỗ trợ ESP8266 và ESP32. Phát triển bằng C hoặc JavaScript.
 NodeMCU - Phần mềm dựa trên ngôn ngữ Lua.
 PlatformIO - Một IDE và trình gỡ lỗi hợp nhất đa nền tảng, hỗ trợ mã nguồn và các thư viện Arduino, cùng nhiều framework khác cho nhiều dòng vi điều khiển khác nhau, bao gồm cả ESP8266.
 Punyforth - Ngôn ngữ lập trình lấy cảm hứng từ Forth cho ESP8266.
 Sming - Một framework C/C++ bất đồng bộ đang được phát triển tích cực với hiệu suất vượt trội và hỗ trợ nhiều tính năng mạng.
 uLisp - Một phiên bản của ngôn ngữ lập trình Lisp được thiết kế đặc biệt để chạy trên các bộ vi xử lý có bộ nhớ RAM hạn chế.
 ZBasic cho ESP8266 - Một phần mềm từ Visual Basic 6 của Microsoft, đã được điều chỉnh để làm ngôn ngữ điều khiển cho họ vi điều khiển ZX và ESP8266.
 Zerynth - Một IoT framework để lập trình ESP8266 và các vi điều khiển khác bằng Python.

 Module Espressif 
Đây là series các module ESP8266 đã được sản xuất:
Tên Số chân hoạt động được Khoảng các giữa 2 chân cạnh nhau Hệ số hình thức LED Antenna Shielded Kích thước (mm) Ghi chú  18 1,5 mm Không Có 18 × 20 Có18 x 20FCC ID 2AC7Z-ESPWROOM02.  18 1,5 mm Không Có 18 × 20 Có18 x 20FCC ID 2AC7Z-ESPWROOM02D. Bản sửa đổi của ESP-WROOM-02 tương thích với cả chip nhớ flash 150-mil và 208-mil.   18 1,5 mm Không Có 18 × 20 Có18 x 20Khác với ESP-WROOM-02D khi có đầu  cắm antenna tương thích U.FL.  20 1,5 mm Không Có 16 × 23 Có16 x 23FCC ID 2AC7Z-ESPWROOMS2.
nhỏ|ESP-WROOM-02
Trong bảng trên (và hai bảng tiếp theo), "Số chân hoạt động được" bao gồm các chân GPIO và ADC mà các thiết bị bên ngoài có thể được gắn vào MCU ESP8266. "Khoảng các giữa 2 chân cạnh nhau" là khoảng trống giữa các chân trên module ESP8266, điều quan trọng để biết liệu thiết bị có được sử dụng trên breadboard hay không. "Hệ số hình thức" mô tả cách đóng gói module, ví dụ như là "2 × 9 DIL", có nghĩa là hai hàng 9 chân được sắp xếp theo kiểu "Dual In Line", giống như các chân của IC DIP. "LED" cho biết trên board có LED không. Nhiều module ESP-xx bao gồm một đèn LED nhỏ trên board mạch có thể được lập trình để nhấp nháy từ đó có thể biết hoạt động của module. Có một số tùy chọn loại antenna cho các board ESP-xx bao gồm trace antenna (tạm dịch: antenna chìm trên board), on-board ceramic antenna (tạm dịch: antenna gốm trên board mạch) và đầu nối bên ngoài cho phép gắn antenna Wi-Fi bên ngoài vào. Vì giao tiếp Wi-Fi tạo ra rất nhiều RFI (Radio Frequency Interference, nhiễu tần số vô tuyến), do đó các cơ quan chính phủ như FCC muốn các thiết bị điện tử được che chắn (shielded) để làm giảm thiểu sự gây nhiễu với các thiết bị khác. Một số module ESP-xx được đặt trong một hộp kim loại có đóng dấu phê duyệt FCC trên đó. Thị trường thế giới thứ nhất và thứ hai có thể sẽ yêu cầu FCC phê duyệt và che chắn các thiết bị Wi-Fi.

 Module Ai-Thinker 
thế=ESP-01 module|nhỏ| Module Ai-Thinker ESP8266 (ESP-12F, màu đen) được hàn vào các đế ra chân (màu trắng)
Đây là loại module đầu tiên được sản xuất với ESP8266 bởi nhà sản xuất bên thứ ba Ai-Thinker và vẫn là module có sẵn rộng rãi nhất cho đến thời điểm này. Chúng được gọi chung là "module ESP-xx". Để có thể phát triển được một ứng dụng với các board này yêu cầu thêm một số thành phần phần cứng bổ sung, đặc biệt là bộ chuyển đổi TTL-to-USB nối tiếp (đôi khi được gọi là cầu chuyển đổi USB-to-UART) và nguồn điện 3,3 volt cấp từ bên ngoài. Những nhà phát triển mới làm quen với ESP8266 được khuyến khích sử dụng các board mạch phát triển Wi-Fi ESP8266 cỡ lớn hơn như NodeMCU. Các thành phần như chuyển USB-to-UART và đầu nối Micro-USB cùng với bộ điều chỉnh nguồn 3,3 volt đã được tích hợp sẵn trên board NodeMCU. Trong quá trình xây dựng dự án thực tế, các thành phần kể trên trong board NodeMCU không còn cần thiết nữa và các module ESP-xx rẻ hơn khi ấy là một lựa chọn phù hợp với công suất thấp và kích thước chân nhỏ.

Trong cột Ghi chú, kích thước bộ nhớ Flash áp dụng cho module đã cho và tất cả những module bên dưới module đó trong bảng. Các ngoại lệ áp dụng cho một module đơn được hiển thị trong ().
TênSố chân hoạt động đượcKhoảng các giữa 2 chân cạnh nhauHệ số hình thứcLEDAntennaShieldedKích thước (mm)Ghi chúESP-0160.1 in2×4 DIL  PCB trace  14.3 × 24.8Module có 2 phiên bản: loại 512 KiB bộ nhớ Flash và mạch in có màu xanh, loại 1 MiB Flash từ AI-Cloud hoặc module từ AI-Thinker có PCB màu đen.ESP-01S60.1 in2×4 DIL  PCB trace  14.4 × 24.71 MiB Flash161.6 mm2×9 edge connector  PCB trace  18.0 × 18.0Dùng ESP8285 (1 MiB built-in flash).ESP-0260.1 in2×4 castellated  U.FL socket  14.2 × 14.2ESP-03102 mm2×7 castellated  Ceramic  17.3 × 12.1ESP-04102 mm2×4 castellated  Không  14.7 × 12.1ESP-0530.1 in1×5 SIL  U.FL socket  14.2 × 14.2ESP-0611various4×3 dice  Không  14.2 × 14.7Không được FCC chấp thuậnESP-07142 mm2×8 pinhole  Ceramic + U.FL socket  20.0 × 16.0Không được FCC chấp thuậnESP-07S142 mm2×8 pinhole  U.FL socket  17.0 × 16.0Được FCC và CE chấp thuậnESP-08102 mm2×7 castellated  Không  17.0 × 16.0Không được FCC chấp thuậnESP-0910various4×3 dice  Không  10.0 × 10.0ESP-1032 mm1×5 castellated  Không  14.2 × 10.0ESP-1161.27 mm1×8 pinhole  Ceramic  17.3 × 12.1ESP-12142 mm2×8 castellated  PCB trace  24.0 × 16.0Được FCC và CE chấp thuậnESP-12E202 mm2×8 castellated  PCB trace  24.0 × 16.04 MiB flash.ESP-12F202 mm2×8 castellated  PCB trace  24.0 × 16.0Được FCC và CE chấp thuận.
Cải thiện hoạt động của antenna.ESP-12S142 mm2×8 castellated  PCB trace  24.0 × 16.0Được FCC chấp thuậnESP-13161.5 mm2×9 castellated  PCB trace  W18.0 × L20.0Được đánh dấu "FCC". So với module ESP-12, module ESP-13 có shield được được đặt ở một bên của board.ESP-14222 mm2×8 castellated +6  PCB trace  24.3 × 16.2Được quảng cáo là "AI Cloud Inside".

 Các board khác 
Các dòng board ESP8266 khác sau này trở nên phổ biến hơn so với các module ESP-xx ban đầu vì đã hỗ trợ các thành phần cần thiết trong việc phát triển các ứng dụng phần mềm, bao gồm mạch chuyển đổi USB sang UART trên board mạch (như CP2102 của Silicon Labs hoặc WCH CH340G) và đầu nối Micro-USB kết hợp với bộ ổn áp 3,3 volt để cung cấp cả nguồn điện cho board mạch và kết nối với máy tính chủ trong quá trình phát triển phần mềm. Với các module ESP-xx trước đó, bộ chuyển đổi USB-to-serial và bộ ổn áp 3.3V phải được người dùng mua riêng để nối dây vào module ESP-xx. Các board mạch ESP8266 hiện đại như NodeMCU cũng dễ làm việc hơn và cung cấp nhiều chân GPIO hơn. Hầu hết các board mạch được liệt kê ở đây đều dựa trên module ESP-12E. Các module ESP8266 mới khác cũng đang được giới thiệu dường như vài tháng một lần.
+TênSố chân hoạt động đượcPitchForm factorLEDAntennaShieldedKích thước (mm)Ghi chúBolt IoT140.1 in2×14 DIL  PCB trace  30 × 40Module hỗ trợ khe cắm thẻ nhớ và các tính năng như Lib-Discovery và Fail Safe Mode. Có khả năng kết nối IoT cloud riêng từ nhà sản xuất.Olimex MOD-WIFI-ESP826620.1 inUEXT module  PCB trace    Chỉ 2 chân RX/TX được kết nối đến UEXT connector.Olimex MOD-WIFI-ESP8266-DEV200.1 in2×11 DIL + castellated  PCB trace  33 × 23Toàn bộ các GPIO đều được nối, có pad để hàn UEXT connector (với chân tín hiệu RX/TX và SDA/SCL).NodeMCU DEVKIT140.1 in2×15 DIL  PCB trace  49 × 24.5Sử dụng module ESP-12; bao gồm cả bộ chuyển đổi USB-serial.Adafruit Huzzah ESP8266 breakout140.1 in2×10 DIL  PCB trace  25 × 38Dùng module ESP-12.SparkFun ESP8266 Thing WRL-13231120.1 in2×10 DIL  PCB trace + U.FL socket  58 × 26Có header cho FTDI, cổng Micro-USB, và khe cắm pin Li-ion để sạc.KNEWRON Technologies smartWIFI120.1 in2×20 DIL  1 RGBPCB trace  25.4 × 50.8Hỗ trợ chip chuyển đổi USB-UART CP2102, khe cắm pin sạc, cổng micro-USB để cấp nguồn và sạc pin, 1 LED RGB và nút nhấn USER/Reflash.ArduCAM ESP8266 UNO12+0.1 inArduino Uno  PCB trace  53.4 × 68.6Sử dụng module ESP8266MOD của AI Thinker, hỗ trợ cổng Micro-USB, chân cắm pin, camera và thẻ nhớ uSD. Kích thước tương thích với các shield Arduino Uno.DoIT ESPduino120.1 inArduino Uno  PCB trace  53.4 × 68.6Sử dụng module ESP-WROOM-02 (ESP-13) và cổng USB Type B. Tương thích hoàn toàn với shield Arduino Uno.WeatherPlus - SwitchDoc Labs26+Grove0.1 inCustom  PCB trace  86.0 × 50.0Sử dụng module AI Thinker Model ESP8266MOD (ESP-13) và FTDI cho việc lập trình và cổng Mini-USB để cấp nguồn. Hoàn toàn tương thích với phần mềm  Adafruit Huzzah. Bao gồm áp kế BMP280, các connector ADS1115 và Grove I2C. Hỗ trợ khe cắm cho máy đo gió (anemometer)/Wind Vane/Rain Bucket.WeMos D1120.1 inArduino Uno  PCB trace  53.4 × 68.6Sử dụng module ESP-12F và hỗ trợ khe cắm Micro-USB. Đã ngừng sản xuất vì có dòng module kế thừa là WeMos D1 R2.WeMos D1 R2120.1 inArduino Uno  PCB trace  53.4 × 68.6Sử dụng module ESP-12F và có socket Micro-USB.WeMos D1 mini120.1 in2×8 DIL  PCB trace  25.6 × 34.2Sử dụng module ESP-12S và có khe cắm Micro USB. Bộ nhớ flash 4MB.WeMos D1 mini Lite120.1 in2×8 DIL  PCB trace  25.6 × 34.2Sử dụng chip ESP8285, thuộc loại chip ESP8266 với bộ nhớ flash 1 MiB flash; có khe cắm Micro USB.WeMos D1 mini Pro120.1 in2×8 DIL  Ceramic và U.FL socket  25.6 × 34.2Sử dụng chip ESP8266EX; có khe cắm Micro-USB, đầu cắm antenna U.FL, và bộ nhớ flash 16 MiB.ESPert ESPresso Lite160.1 in2×8 DIL  PCB trace  26.5 × 57.6Sử dụng module ESP-WROOM-02. Số lượng board sản xuất giới hạn vì là phiên bản beta.ESPert ESPresso Lite V2.0240.1 in2×10 DIL  PCB trace  28 × 61Phiên bản cái tiến của ESPresso Lite.In-Circuit ESP-ADC180.1 in2×9 DIL  U.FL socket  22.9 × 14.9Sử dụng ESP8266EX chip.Watterott ESP-WROOM02-Breakout140.1 in2×10 DIL  PCB trace  40.64 × 27.94Sử dụng module Espressif ESP-WROOM-02.Geek Wave Solution IOT WROOM-02 Dev. Board200.1 in    PCB trace  93.80 × 80.02Board phát triển với module Espressif ESP-WROOM-02 module và 4 relay.Witty 2-piece board200.1 in    PCB trace  ?Board phát triển với chip Espressif ESP8266 ESP-12E và board rời cho CH340G USB.

 ESP32-C3 
Vào năm 2020, Espressif đã công bố một chip mới ESP32-C3, tương thích với các chân của ESP8266. Nó hoạt động dựa trên một CPU RISC-V 32-bit lõi đơn với tốc độ xung nhịp lên đến 160 MHz. Nó bao gồm 400 kB SRAM và bộ nhớ ROM 384 kB được tích hợp sẵn.

 Xem thêm 

 ESP32
 Internet vạn vật
 Vi điều khiển

 Tài liệu tham khảo 



 Chú thích 

 Liên kết ngoài 

 ESP-01/07/12 Series Modules User's Manual
 ESP8266 AT Instruction Set

Thể loại:Khởi đầu năm 2014
Thể loại:Internet vạn vật
Thể loại:Vi điều khiển
Thể loại:Vi xử lý sản xuất tại Trung Quốc