✨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, 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. [https://github.com/esp8266/Arduino Mã nguồn của ESP8266 Arduino Core có sẵn trên GitHub].
- [http://www.esp8266basic.com/ 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.
- [https://github.com/arendst/Sonoff-Tasmota 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.
- [https://github.com/SuperHouse/esp-open-rtos ESP-Open-RTOS] - Phần mềm mã nguồn mở cho ESP8266 dựa trên FreeRTOS.
- [https://github.com/pfalcon/esp-open-sdk 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.
- [https://github.com/xoseperez/espurna/wiki ESPurna] - Phần mềm mã nguồn mở cho ESP8285 và ESP8266.
- [https://github.com/niclash/forthright Forthright] - Dự án mã nguồn mở của Jones Forth cho vi điều khiển ESP8266.
- [https://micropython.org/ 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)
- [https://github.com/Moddable-OpenSource/moddable#supported-hardware 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.
- [https://github.com/zeroflag/punyforth Punyforth] - Ngôn ngữ lập trình lấy cảm hứng từ Forth cho ESP8266.
- [https://github.com/SmingHub/Sming 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.
- [http://www.ulisp.com/show?21T5 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ế.
- [http://www.zbasic.net 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:
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 ().
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.
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.