สวัสดีครับ ในเวลานี้สาย IoT คนไหนไม่รู้จัก NodeMCU หรือ ESP8266 หรือ ESP32 คงจะแปลกๆอยู่ แต่สำหรับคนที่ไม่รู้จัก สามตัวข้างต้นนี้คือไมโครคอนโทรลเลอร์ที่ผนวกความสามารถปล่อย WiFi เพื่อการสื่อสารไร้สายย่าน 2.4GHz เพิ่มขีดความสามารถของอุปกรณ์ให้รู้จักโลกภายนอกด้วยการเชื่อมต่อกับอินเตอร์เน็ตดึงข้อมูลมาใช้ประมวลผลหรือส่งออกข้อมูลดิบต่างๆ นาๆในวันนี้จะมาคลายข้อสงสัยของหลายๆคน เมื่อต้องเลือกระหว่างเจ้า 3 ตัวนี้กันครับ
NodeMCU จริงๆแล้วคือเฟิร์มแวร์ที่ทำงานบน ESP8266 ซึ่งเจ้าโปรแกรมนี้พัฒนาขึ้นเพื่อให้เราสามารถเขียนโปรแกรมลงบอร์ดได้ด้วยภาษา Lua เมื่อเร็วๆนี้เจ้า NodeMCU สามารถใช้ได้กับ ESP32 ด้วยเช่นกัน ถ้าใครซื้อ NodeMCU ไปใช้แล้วลงโปรแกรมด้วย Arduino IDE ตัวโปรแกรมที่เราเขียนจะไปทับเฟิร์มแวร์ NodeMCU ซึ่งก็เหมือนกับการที่เราใช้ ESP8266 ธรรมดานั่นแหละครับ ดังนั้นแล้ว NodeMCU เป็นคล้ายๆซับเซ็ตย่อยของ ESP8266 และ ESP32 ครับ ไม่ใช่บอร์ดอีกตระกูลแต่อย่างใด (Firmware NodeMCU) ใครอยากลองใช้ NodeMCU บน esp8266 ของตัวเองก็ตามมาได้ที่นี่
สำหรับ ESP8266 และ ESP32 นั้น ทั้งคู่เป็นบอร์ดไมโครคอลโทรลเลอร์ค่าย Espressif โดย ESP8266 เป็นรุ่นบุกเบิกที่ประสบความสำเร็จมากในวงการ Arduino เพราะด้วยความง่ายในการเข้าถึงอินเตอร์เน็ตโดยใช้แค่ชิพเล็กๆ ไม่ต้องต่ออุปกรณ์เสริม และสามารถเขียนโดยใช้ฟังก์ชั่นของ Arduino ได้ซึ่งมี Library รองรับจำนวนมาก ทำให้บริษัท Espressif ได้สร้าง ESP32 ที่เพิ่ม CPU ขึ้นมาอีก 1 core กลายเป็น dual core เพิ่มคุณสมบัติในเรื่องการสื่อสารโดยเพิ่มโปรโตคอล 802.11n ซึ่งทำความเร็วได้มากกว่าเดิม ถึง 2 เท่าและลดสัญญาณรบกวนได้มากกว่า และยังมีขาสัญญาณให้ใช้มากกว่า แลกกับราคาที่เพิ่มขึ้นอีกหน่อย
ปัจจัยในการเลือก
ถ้าคิดว่างาน IoT ของเราใช้งานภายในบ้าน ที่อาจใช้งานแค่เปิดปิดไฟหรือเครื่องใช้ไฟฟ้า หรือมอเตอร์ที่ใช้ขาสัญญาณไม่มาก ESP8266 อาจจะเพียงพอต่อการใช้งาน ด้วยราคาที่ถูกกว่าเท่าตัว และคุณสมบัติพื้นฐานที่ไม่ต่างกับ ESP32 แต่อาจมีข้อจำกัดอย่างการอ่านค่า analog ได้แค่ขาเดียว อย่างไรก็ตาม การต่ออุปกรณ์เสริมอย่างตัวขยายขา analog โดยใช้ I2C ก็ทดแทนจุดอ่อนตรงนี้ลงได้
ถ้างาน IoT ที่ใช้ในบ้านหรือเป็นเชิงอุตสาหกรรมมากกว่า ที่เสี่ยงต่อการโดนสัญญาณรบกวน และมีการ interface ที่หลากหลาย มีการต่อสัญญาณจำนวนมากกว่า ขา analog ต้องใช้มากกว่า ต้องการทำ deep sleep เพื่อประหยัดพลังงาน ทำงานบนอุณหภูมิที่หลากหลาย แนะนำให้ใช้ ESP32 เนื่องจากมีเซนเซอร์แถมมาให้ในตัวมากกว่า เช่นเซนเซอร์วัดอุณหภูมิ สนามแม่เหล็ก และขา touch sensor สำหรับการปลุก MCU จาก deep sleep เพื่อช่วยประหยัดพลังงานและลดสัญญาณรบกวนในโรงงานระหว่างไม่ได้ต้องการใช้งานนั่นเองครับ
รายละเอียดอื่นๆ เปรียบเทียบระหว่างสองตัวข้างต้นสามารถดูได้จากตารางนี้ครับ
ESP32 vs ESP8266
คุณสมบัติ
ESP32
ESP8266
โมดูล
ESP32
ซีพียู
Xtensa Dual-Core 32-bit LX6 with 600 DMIPS
Xtensa Single-core 32-bit L106
ความเร็วไวไฟ
802.11n up to 150 Mbps
Up to 72.2 Mbps
โปรโตคอลไวไฟ
802.11 b/g/n (2.4 Ghz)
802.11 b/g/n (2.4 Ghz)
ขาพิน
36
17
บลูทูธ
มี
ไม่มี
ดิจิตอลเป็นอนาลอค
Two 8-bit DAC Channels
ไม่มี
อนาลอคเป็นดิจิตอล
12-Bit SAR
10-Bit SAR
ขาอนาลอค
8 ขา
1 ขา
ระดับแรงดันเทียบขาอนาลอค
1100mV
1100mV
SPI/I2C/I2S/UART
4/2/2/3
2/1/2/2
โหมด ไวไฟ
Station/SoftAP/SoftAP+Station/P2P
Station/SoftAP/SoftAP+Station/P2P
เซนเซอร์สัมผัส
มี (8-ช่อง)
ไม่มี
เซนเซอร์วัดอุณหภูมิ
มี
ไม่มี
เซนเซอร์สนามแม่เหล็ก
มี
ไม่มี
แรม (SRAM)
520 kB (8 kB of SRAM in RTC)
RAM size < 50 kB
พื้นที่โปรแกรม (Flash)(external)
4Mbytes (และมีเวอร์ชั่นที่เยอะกว่า)
4Mbytes
รอม (ROM)
448 kB of ROM for booting and core functions
No programmable ROM
โปรโตคอลเครือข่าย
IPv4, IPv6, SSL, TCP/UDP/HTTP/FTP/MQTT
IPv4, TCP/UDP/HTTP/MQTT
รูปแบบการสื่อสาร
UART/SDIO/SPI/I2C/I2S/IR Remote Control GPIO/ADC/DAC/Touch/PWM/LED
UART/SDIO/SPI/I2C/I2S/IR Remote Control GPIO/ADC/PWM/LED
ความทนทานอุณหภูมิ
-40ºC to 125ºC
–40°C ~ 125°C
ทำงานที่แรงดัน
2.5V ~ 3.6V
2.5V ~ 3.6V
ทำงานที่กระแส
เฉลี่ย: 80 mA
เฉลี่ย: 80 mA
หวังว่าจะเป็นทางเลือกในการตัดสินใจนะครับ
เลี้ยงกาแฟผมสักแก้ว : https://ko-fi.com/modulemore NodeMCU, ESP8266 ,
ESP32 Reference.
https://makeradvisor.com/esp32-vs-esp8266/