ESP32 vs ESP8266 - Ưu và nhược điểm

 

Sự khác biệt giữa ESP32 và ESP8266 là gì? Bạn nên sử dụng ESP32 hay ESP8266 trong các dự án của mình? Trong bài viết này, chúng tôi sẽ so sánh ESP32 với ESP8266 và trình bày những ưu và nhược điểm của từng loại.

ESP32 và ESP8266 là các mô-đun Wi-Fi giá rẻ hoàn toàn phù hợp cho các dự án DIY trong lĩnh vực Internet of Things (IoT) và lĩnh vực Tự động hóa.

Cả hai chip đều có bộ xử lý 32-bit. ESP32 là CPU lõi kép 160MHz đến 240MHz, trong khi ESP8266 là bộ xử lý lõi đơn chạy ở 80MHz.

Các mô-đun này đi kèm với các GPIO hỗ trợ các giao thức khác nhau như SPI, I2C, UART, ADC, DAC và PWM. Phần tốt nhất là các bo mạch này đi kèm với mạng không dây, điều này làm cho chúng khác biệt với các bộ vi điều khiển khác như Arduino . Điều này có nghĩa là bạn có thể dễ dàng điều khiển và giám sát các thiết bị từ xa thông qua Wi-Fi hoặc Bluetooth (trong trường hợp của ESP32) với một mức giá rất thấp.

Ngoài ra, nếu bạn không cần sử dụng khả năng không dây của nó, bạn có thể sử dụng ESP32 / ESP8266 để điều khiển đầu vào và đầu ra như bạn làm với Arduino. Tuy nhiên, bạn nên lưu ý rằng trong khi Arduino hoạt động với logic 5V, ESP32 và ESP8266 hoạt động ở 3.3V.

Thông số kỹ thuật: ESP32 vs ESP8266

ESP32 là phiên bản kế nhiệm của ESP8266 . Nó bổ sung thêm một lõi CPU , Wi-Fi nhanh hơn , nhiều GPIO hơn và hỗ trợ Bluetooth 4.2 và Bluetooth tiết kiệm năng lượng. Ngoài ra, ESP32 đi kèm với các chân cảm ứng có thể được sử dụng để đánh thức ESP32 khỏi giấc ngủ sâu , cảm biến hiệu ứng hội trường tích hợp và cảm biến nhiệt độ tích hợp (các phiên bản gần đây của ESP32 không đi kèm với tích hợp cảm biến nhiệt độ nữa).

Bảng sau đây cho thấy sự khác biệt chính giữa chip ESP8266 và chip ESP32.

 
ESP8266
ESP32
MCU
Xtensa lõi đơn 32-bit L106
Xtensa Dual-Core 32-bit LX6 với 600 DMIPS
Wi-Fi 802.11 b / g / n
HT20
HT40
Bluetooth
X
Bluetooth 4.2 và BLE
Tần số
80 MHz
160 MHz
SRAM
X
Flash
X
GPIO
17
34
Hardware /Software PWM
Không có / 8 kênh
Không có / 16 kênh
SPI / I2C / I2S / UART
2/1/2/2
4/2/2/2
ADC
10-bit
12-bit
CAN
X
Ethernet MAC Interface
X
Touch Sensor
X
Temperature Sensor
X
 (phiên bản cũ)
Hall effect sensor
X
Nhiệt độ làm việc
-40ºC đến 125ºC
-40ºC đến 125ºC
Giá bán
$ (3 $ - 6 $)
$$ ($ 6 - $ 12)


Sử dụng chip trần ESP32 hoặc ESP8266 không dễ dàng hoặc thực tế, đặc biệt là khi thử nghiệm và tạo mẫu. Hầu hết thời gian, bạn sẽ muốn sử dụng các bảng phát triển ESP32 và ESP8266. Các bo mạch này đi kèm với tất cả các mạch điện cần thiết để cung cấp năng lượng cho chip, kết nối nó với máy tính của bạn, một mạch để tải lên mã dễ dàng, các chân để kết nối thiết bị ngoại vi, nguồn tích hợp và đèn LED điều khiển, và các tính năng hữu ích khác.

Bảng phát triển ESP32 và ESP8266 mà chúng tôi sử dụng thường xuyên hơn là bảng phát triển ESP32 DEVKIT DOIT và bộ ESP8266 ESP-12E NodeMCU và đây là những bảng chúng tôi khuyên dùng cho người mới bắt đầu. Tuy nhiên, có rất nhiều mẫu board phát triển khác mà bạn có thể lựa chọn. Chúng tôi khuyên bạn nên đọc các hướng dẫn sau:

Các GPIO khác trên ESP32

ESP32 có nhiều GPIO hơn ESP8266 và bạn có thể quyết định chân nào là UART, I2C , SPI — bạn cần đặt chân đó trên mã. Điều này có thể xảy ra do tính năng ghép kênh của chip ESP32 cho phép bạn gán nhiều chức năng cho cùng một chân.

Nếu bạn không đặt chúng trên mã, chúng sẽ nằm trên các chân được xác định theo mặc định, như thể hiện trong hình sau (đây là ví dụ cho bảng ESP32 DEVKIT V1 DOIT (phiên bản có 36 GPIOS) — vị trí chân có thể thay đổi tùy theo nhà sản xuất).

Để tìm hiểu thêm về các GPIO của ESP32 và cách sử dụng chúng, hãy đọc:

Để có phương tiện so sánh, đây là sơ đồ sơ đồ chân cho Bộ công cụ ESP8266 ESP-12E NodeMCU .

Để tìm hiểu thêm về các GPIO ESP8266 và cách sử dụng chúng, hãy đọc:

PWM, ADC, v.v.

Bạn có thể đặt tín hiệu PWM trong bất kỳ GPIO nào với tần số có thể định cấu hình và chu kỳ nhiệm vụ được đặt trên mã.

Khi nói đến các chân analog , đây là các chân tĩnh, nhưng ESP32 hỗ trợ các phép đo trên 18 kênh (các chân hỗ trợ analog) so với chỉ một chân ADC 10 bit trên ESP8266 . ESP32 cũng hỗ trợ hai kênh DAC 8-bit.

Hơn nữa, ESP32 chứa 10 GPIO cảm biến điện dung, phát hiện cảm ứng và có thể được sử dụng để kích hoạt các sự kiện hoặc đánh thức ESP32 khỏi chế độ ngủ sâu chẳng hạn. 

ESP32 hỗ trợ giao thức giao tiếp Bluetooth theo mặc định, trong khi ESP8266 thì không.


Arduino IDE - ESP32 so với ESP8266

Có nhiều cách để lập trình bảng ESP32 và ESP8266. Cả hai bảng đều có thể được lập trình với lõi Arduino bằng Arduino IDE hoặc các IDE khác (như Mã VS với phần mở rộng PlatformIO ).

Đây là một tin tốt, đặc biệt là đối với những người đã từng lập trình bảng Arduino và đã quen thuộc với “ngôn ngữ lập trình” Arduino.

Bắt đầu với ESP32 hoặc ESP8266 bằng Arduino IDE và chạy dự án đầu tiên của bạn rất đơn giản. Bạn có thể làm theo các hướng dẫn sau:

Mặc dù bạn có thể lập trình cả hai bảng bằng Arduino IDE, nhưng chúng có thể không tương thích với các thư viện và chức năng giống nhau. Một số thư viện chỉ tương thích với một trong các bảng. Điều này có nghĩa là hầu hết thời gian, mã ESP8266 của bạn sẽ không tương thích với ESP32. Tuy nhiên, thông thường, bạn cần thực hiện một vài sửa đổi.

Chúng tôi có một danh sách dành riêng cho các hướng dẫn và dự án miễn phí cho các bo mạch ESP32 và ESP8266 sử dụng Arduino IDE mà bạn có thể thấy hữu ích:

MicroPython Firwmare - ESP32 so với ESP8266

Một cách phổ biến khác để lập trình bo mạch ESP32 và ESP8266 là sử dụng phần mềm MicroPython.

MicroPython là một triển khai lại của Python 3 được nhắm mục tiêu cho các bộ vi điều khiển và hệ thống nhúng. MicroPython rất giống với Python thông thường. Vì vậy, nếu bạn đã biết cách lập trình bằng Python, bạn cũng biết cách lập trình bằng MicroPython.

Trong MicroPython, hầu hết các tập lệnh Python đều tương thích với cả hai bo mạch (không giống như khi sử dụng Arduino IDE). Điều này có nghĩa là hầu hết thời gian, bạn có thể sử dụng cùng một tập lệnh cho ESP32 và ESP8266.

Bạn có thể bắt đầu với chương trình cơ sở MicroPython trên ESP32 và ESP8266 rất nhanh chóng bằng cách làm theo các hướng dẫn miễn phí của chúng tôi:

Chúng tôi cũng có một danh sách các dự án miễn phí sử dụng MicroPython với các bảng ESP32 và ESP8266:

Cần tài nguyên để bắt đầu?

Nếu bạn muốn bắt đầu với ESP32 hoặc ESP8266, bạn có thể xem qua các khóa học và dự án của chúng tôi:

ESP32 hoặc ESP8266?

Vì vậy, tại thời điểm này, bạn có thể tự hỏi:  Tôi nên mua ESP8266 hay ESP32?

Nó thực sự phụ thuộc vào những gì bạn muốn làm. Có không gian cho cả hai bảng, và cả hai đều có ưu và nhược điểm.

ESP8266 rẻ hơn ESP32. Mặc dù nó không có nhiều chức năng, nhưng nó hoạt động tốt cho hầu hết các dự án IoT tự làm đơn giản. Tuy nhiên, nó có một số hạn chế trong ánh xạ GPIO và nó có thể không có đủ chân cho những gì bạn định làm. Nếu đúng như vậy, bạn nên lấy ESP32.

ESP32 mạnh hơn nhiều so với ESP8266, đi kèm với nhiều GPIO hơn với nhiều chức năng, Wi-Fi nhanh hơn và hỗ trợ Bluetooth. Tuy nhiên, nhiều người cho rằng ESP32 khó xử lý hơn ESP8266 vì nó phức tạp hơn. Ngược lại, theo ý kiến ​​của chúng tôi, việc lập trình ESP32 dễ dàng như ESP8266, đặc biệt nếu bạn định lập trình nó bằng “ngôn ngữ Arduino” hoặc MicroPython.

ESP32 cũng có một số khuyết điểm. ESP32 đắt hơn ESP8266. Vì vậy, nếu bạn đang xây dựng một dự án IoT đơn giản, ESP8266 có thể thực hiện thủ thuật với mức giá thấp hơn. Ngoài ra, vì ESP8266 “cũ hơn” so với ESP32, một số thư viện và tính năng được phát triển tốt hơn cho ESP8266 và bạn sẽ tìm thấy nhiều tài nguyên hơn (diễn đàn, những người có cùng vấn đề và cách giải quyết chúng, v.v.). Tuy nhiên, thời gian trôi qua, ESP32 đang được áp dụng rộng rãi và những khác biệt này về phát triển và thư viện sẽ không đáng chú ý.

Kinh nghiệm cá nhân của tôi: vào năm 2021, tôi hầu như chỉ sử dụng ESP32 cho các dự án IoT. Nó linh hoạt hơn và đi kèm với nhiều chức năng hơn như Bluetooth, các nguồn đánh thức khác nhau , nhiều thiết bị ngoại vi và hơn thế nữa. Ngoài ra, theo tôi, chênh lệch giá không phải là vấn đề lớn. Khi bạn chuyển sang ESP32, bạn sẽ không muốn quay lại ESP8266.

Kết thúc

Chúng tôi hy vọng bạn thấy phân tích ESP32 vs ESP8266 của chúng tôi hữu ích.

Chỉ để tóm tắt những điểm khác biệt chính giữa ESP32 và ESP8266:

  • ESP32 nhanh hơn ESP8266;
  • ESP32 đi kèm với nhiều GPIO hơn với nhiều chức năng;
  • ESP32 hỗ trợ các phép đo analog trên 18 kênh (chân hỗ trợ analog) so với chỉ một chân ADC 10 bit trên ESP8266;
  • ESP32 hỗ trợ Bluetooth trong khi ESP8266 thì không;
  • ESP32 là lõi kép và ESP8266 là lõi đơn;
  • ESP8266 rẻ hơn ESP32;
  • ESP8266 có một cộng đồng rộng lớn hơn (mặc dù chúng tôi không nghĩ rằng tại thời điểm này, sự khác biệt lại lớn đến vậy);
  • Đối với nhiều dự án IoT và Wi-Fi, ESP8266 có thể thực hiện công việc với mức giá thấp hơn;
  • Cả hai bo mạch đều có thể được lập trình với lõi Arduino bằng Arduino IDE hoặc các IDE được hỗ trợ khác.
  • Cả hai bo mạch đều hỗ trợ phần sụn MicroPython.

Bạn có thể muốn đọc các bài viết liên quan đến ESP8266 và ESP32 sau đây để có ý tưởng về việc lựa chọn các bảng phát triển ESP32 và ESP8266 phổ biến nhất:

Vì vậy, nếu bạn là người mới bắt đầu, bạn nên bắt đầu với ESP32 hay ESP8266? Tại thời điểm này, chúng tôi chắc chắn khuyên bạn nên bắt đầu với ESP32 thay vì ESP8266. Tuy nhiên, nếu bạn đã có bảng ESP8266, bạn có thể bắt đầu với bảng đó và sau đó chuyển sang ESP32.

Chúng tôi có một loạt các dự án với các bảng này trong blog Hướng dẫn Nerd Ngẫu nhiên để giúp bạn bắt đầu:

Cảm ơn vì đã đọc.

No comments:

Post a Comment