ESP8266
ESP8266 là dòng chip tích hợp Wi-Fi 2.4Ghz có thể lập trình được, rẻ tiền được sản xuất bởi một công ty bán dẫn Trung Quốc: Espressif Systems.
Được phát hành đầu tiên vào tháng 8 năm 2014, đóng gói đưa ra thị trường dạng Mô dun ESP-01, được sản xuất bởi bên thứ 3: AI-Thinker. Có khả năng kết nối Internet qua mạng Wi-Fi một cách nhanh chóng và sử dụng rất ít linh kiện đi kèm. Với giá cả có thể nói là rất rẻ so với tính năng và khả năng ESP8266 có thể làm được.
ESP8266 có một cộng đồng các nhà phát triển trên thế giới rất lớn, cung cấp nhiều Module lập trình mã nguồn mở giúp nhiều người có thể tiếp cận và xây dựng ứng dụng rất nhanh.
Hiện nay tất cả các dòng chip ESP8266 trên thị trường đều mang nhãn ESP8266EX, là phiên bản nâng cấp của ESP8266
Sơ đồ chân
Thông số phần cứng
-
32-bit RISC CPU : Tensilica Xtensa LX106 chạy ở xung nhịp 80 MHz
-
Hổ trợ Flash ngoài từ 512KiB đến 4MiB
-
64KBytes RAM thực thi lệnh
-
96KBytes RAM dữ liệu
-
64KBytes boot ROM
-
Chuẩn wifi EEE 802.11 b/g/n, Wi-Fi 2.4 GHz
-
Tích hợp TR switch, balun, LNA, khuếch đại công suất và matching network
-
Hổ trợ WEP, WPA/WPA2, Open network
-
-
Tích hợp giao thức TCP/IP
-
Hổ trợ nhiều loại anten
-
16 chân GPIO
-
Hổ trợ SDIO 2.0, UART, SPI, I²C, PWM,I²S với DMA
-
1 ADC 10-bit
-
Dải nhiệt độ hoạt động rộng : -40C ~ 125C
SDK hỗ trợ chính thức từ hãng
Espressif hiện đã hỗ trợ 3 nền tảng SDK (Software Development Kit – Gói phát triển phần mềm) độc lập, là: NONOS SDK, RTOS SDK và Arduino. Cả 3 đều có những ưu điểm riêng phù hợp với từng ứng dụng nhất định, và sử dụng chung nhiều các hàm điều khiển phần cứng. Hiện nay Arduino đang được sử dụng rộng rãi bởi tính dễ sử dụng, kiến trúc phần mềm tốt và tận dụng được nhiều thư viện cộng đồng
ESP8266 NONOS SDK
Hiện nay, NONOS SDK phiên bản từ 2.0.0 trở lên đã ổn định và cung cấp gần như là đầy đủ tất cả các tính năng mà ESP8266 có thể thực hiện:
-
Các API cho Timer, System, Wifi, đọc ghi SPI Flash, Sleep và các Module phần cứng: GPIO, SPI, I²C, PWM, I²S với DMA.
-
Smartconfig
: Hỗ trợ cấu hình thông số Wi-Fi cho ESP8266 nhanh chóng. -
Sniffer
API: Bắt các gói tin trong mạng không dây 2.4Ghz. -
SNTP
API: Đồng bộ thời gian với Máy chủ thời gian. -
WPA2 Enterprise
API: Cung cấp việc quản lý kết nối Wi-Fi bằng tài khoản sử dụng các máy chủ RADIUS. -
TCP/UDP
API: Cho kết nối internet và hỗ trợ các Module dựa trên các giao thức như: HTTP, MQTT, CoAP. -
mDNS
API: Giúp tìm ra IP của thiết bị trong mạng nội bộ bằng tên (hostname). -
MESH
API: Liên kết các module ESP8266 với cấu trúc mạng MESH -
FOTA
API: Firmware Over The Air – cập nhật firmware từ xa cho thiết bị . -
ESP-Now
API: Sử dụng các gói tin Wireless 2.4GHz trao đổi trực tiếp với ESP8266 khác mà không cần kết nối tới Access Point. -
Simple Pair
API: Thiết lập kết nối bảo mật giữa 2 thiết bị tự động.
ESP8266 RTOS SDK
RTOS SDK sử dụng FreeRTOS làm nền tảng, đồng thời hầu hết các API của NON OS SDK đều có thể sử dụng với RTOS SDK.
ESP8285
ESP8285 là một phiên bản khác sau này của ESP8266EX, giống hoàn toàn ESP8266EX ngoại trừ việc thay vì dùng SPI FLASH bên ngoài thì ESP8285 tích hợp 1MiB Flash bên trong giúp giảm diện tích phần cứng và đơn giản hóa quá trình sản xuất.
Module và Board mạch phát triển
ESP8266 cần ít nhất thêm 7 linh kiện nữa mới có thể hoạt động, trong đó phần khó nhất là Antena. Đòi hỏi phải được sản xuất, kiểm tra với các thiết bị hiện đại. Do đó, trên thị trường xuất hiện nhiều Module và Board mạch phát triển đảm đương hết để người dùng đơn giản nhất trong việc phát triển ứng dụng. Một số Module và Board phát triển phổ biến:
Tên |
Số chân |
Pitch |
LEDs |
Antenna |
Shielded |
Dimensions |
ESP-01 |
6 |
0.1″ |
Yes |
PCB |
No |
14.3 × 24.8 |
ESP-02 |
6 |
0.1″ |
No |
U-FL |
No |
14.2 × 14.2 |
ESP-03 |
10 |
2mm |
No |
Ceramic |
No |
17.3 × 12.1 |
ESP-04 |
10 |
2mm |
No |
None |
No |
14.7 × 12.1 |
ESP-05 |
3 |
0.1″ |
No |
U-FL |
No |
14.2 × 14.2 |
ESP-06 |
11 |
misc |
No |
None |
Yes |
14.2 × 14.7 |
ESP-07 |
14 |
2mm |
Yes |
Ceramic+U-FL |
Yes |
20.0 × 16.0 |
ESP-08 |
10 |
2mm |
No |
None |
Yes |
17.0 × 16.0 |
ESP-09 |
10 |
misc |
No |
None |
No |
10.0 × 10.0 |
ESP-10 |
3 |
2mm |
No |
None |
No |
14.2 × 10.0 |
ESP-11 |
6 |
0.05″ |
No |
Ceramic |
No |
17.3 × 12.1 |
ESP-12 |
14 |
2mm |
Yes |
PCB |
Yes |
24.0 × 16.0 |
ESP-12E |
20 |
2mm |
Yes |
PCB |
Yes |
24.0 × 16.0 |
ESP-12F |
20 |
2mm |
Yes |
PCB |
Yes |
24.0 × 16.0 |
ESP-13 |
16 |
1.5mm |
No |
PCB |
Yes |
18.0 x 20.0 |
ESP-14 |
22 |
2mm |
No |
PCB |
Yes |
24.3 x 16.2 |
Board mạch phát triển ESP8266
Module ESP8266 chỉ bao gồm Chip ESP8266 và các linh kiện giúp chip có thể hoạt động được, tuy nhiên, trong quá trình phát triển sản phẩm, chúng ta cần phải nạp chương trình cho chip trước khi đưa vào hoạt động thực tế. Quá trình này là quá trình gởi dữ liệu Binary (đã biên dịch trên máy tính) xuống bộ nhớ Flash của ESP8266.
Để đưa ESP8266 vào chế độ Nạp (Program) thì cần phải đặt mức logic 0 (0V – GND) vào chân GPIO0, đồng thời RESET chip. Rồi sau đó có thể dùng các công cụ nạp để gởi Firmware từ máy tính xuống.
Hiện nay các Board mạch phát triển đều tích hợp các mạch nạp tự động, nghĩa là phần mềm sẽ tự động điều chỉnh các chân DTR và RTS của chip USB CDC, đưa ESP8266 vào chế độ nạp, sau đó sẽ gởi firmware xuống. Arduino IDE cũng vậy, nó sẽ điều chỉnh dựa trên việc khai báo Board mạch sử dụng.
Nếu bạn là người mới bắt đầu và chưa rõ về phần cứng, thì tốt nhất nên sử dụng một Board mạch phát triển sẵn có các chế độ nạp tự động. Khi bạn chuyển sang sản xuất phần cứng cho các ứng dụng cụ thể, thì có thể tách rời phần nạp tự động này ra để tiết giảm chi phí. Các mạch điện này đều được công bố rộng rãi. |