ESP32 ดีกว่า Arduino หรือไม่?

Esp32 Di Kwa Arduino Hrux Mi



ทั้ง Arduino และ ESP32 เป็นบอร์ดที่ใช้ไมโครคอนโทรลเลอร์ซึ่งรับอินพุตและสร้างเอาต์พุตได้อย่างเหมาะสม บอร์ดทั้งสองนี้มีชื่อเสียงในหมู่นักศึกษาและนักวิจัยเพราะไม่ต้องการฮาร์ดแวร์เพิ่มเติม เช่น CPU เพื่อประมวลผลข้อมูล บอร์ดหนึ่งต้องการบอร์ดขนาดเล็กที่สามารถใส่ในกระเป๋าเสื้อของคุณและทำงานต่างๆ ได้อย่างง่ายดาย แต่คำถามในใจของทุกคนคือ ESP32 ดีกว่า Arduino

ESP32 กับ Arduino

ESP32 เป็นบอร์ดไมโครคอนโทรลเลอร์ราคาประหยัดที่มีชิปไมโครคอนโทรลเลอร์ 32 บิตที่สามารถทำงานได้โดยใช้พลังงานต่ำ ESP32 มี Wi-Fi ในตัวและบลูทูธคู่ มันถูกสร้างขึ้นโดยระบบ Espressif ESP32 เป็นตัวตายตัวแทนของบอร์ด ESP8266 ที่สร้างโดยผู้ผลิตรายเดียวกัน อิงจากต้นทุน ขนาด และการใช้พลังงานของ ESP32 เหมาะสมที่สุดสำหรับโครงการ DIY ที่ใช้ IoT ชิป ESP32 ประกอบด้วย เทนซิลิกา เอ็กซ์เทนซ่า LX6 ไมโครโปรเซสเซอร์ที่มี dual core และ clock rate ที่ความถี่มากกว่า 240MHz







ในขณะที่อีกด้านหนึ่งเมื่อเราได้ยินคำว่าไมโครคอนโทรลเลอร์ชื่อแรกที่เข้ามาในความคิดของเราคือ Arduino เนื่องจาก Arduino เป็นผู้นำบอร์ดไมโครคอนโทรลเลอร์มาเป็นเวลานานเนื่องจากมีการรองรับอย่างกว้างขวางพร้อมกับบอร์ดต่างๆ ตั้งแต่ 8 บิต Uno ถึงศูนย์ 32 บิต บอร์ด Arduino ขึ้นอยู่กับ ไมโครคอนโทรลเลอร์ ATmega AVR . บอร์ด Arduino เริ่มต้นจาก nano ที่ลงตัวสำหรับโปรเจ็กต์ขนาดเล็ก ไปจนถึง Arduino mega ที่สามารถรองรับอุปกรณ์หลายตัวได้ด้วยพินอินพุต/เอาต์พุตดิจิทัล 54 ตัว



ESP32 ดีกว่า Arduino หรือไม่?

ใช่ , ESP32 เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ดีกว่าและมีประสิทธิภาพมากกว่า Arduino ESP32 รองรับ Wi-Fi และ Bluetooth ในตัว มีการสนับสนุน TCP/IP เต็มรูปแบบสำหรับการเชื่อมต่ออินเทอร์เน็ตเต็มรูปแบบ ด้วยโมดูล Wi-Fi จึงสามารถทำหน้าที่เป็นจุดเข้าใช้งานและสถานี Wi-Fi เนื่องจากไมโครคอนโทรลเลอร์ 32 บิตและความถี่สัญญาณนาฬิกาสูงถึง 240MHz จึงล้ำหน้ากว่า Arduino



ไฮไลท์ต่อไปนี้ให้มุมมองที่ดีกว่าว่าทำไม ESP32 ถึงดีกว่า Arduino:





  • ESP32 มีไมโครคอนโทรลเลอร์ 32 บิต
  • รองรับ Wi-Fi และ Bluetooth แบบคู่
  • ทำงานที่ระดับแรงดันไฟต่ำ (3.3V)
  • ESP32 มีช่อง ADC 18 ช่องในขณะที่ Arduino Uno มีเพียงหก
  • ESP32 มาพร้อมกับ 48 GPIO พินในขณะที่ Uno มีเพียง 14 พินอินพุต / เอาต์พุตดิจิตอลและ 6 พินอะนาล็อก
  • บอร์ด ESP32 มีราคาถูกกว่า Arduino Uno

หากต้องการอ่านการเปรียบเทียบระหว่าง Arduino และ ESP32 คลิก ที่นี่ .

การเปรียบเทียบความเร็วของ ESP32, Arduino Uno และ Arduino Mega

ต่อไปนี้เป็นความถี่สัญญาณนาฬิกาของบอร์ดไมโครคอนโทรลเลอร์ ESP32, Arduino Uno และ Mega



Arduino หนึ่ง: นาฬิกาภายใน 16MHz

Arduino เมกะ: นาฬิกาภายใน 16MHz

ESP WROOM 32: ปรับได้ระหว่าง 80MHz ถึง 240MHz

เราทุกคนรู้ดีว่าไมโครคอนโทรลเลอร์ต้องพึ่งพาแหล่งสัญญาณนาฬิกา นาฬิกาที่มีพลังมากขึ้นหมายถึงเวลาในการดำเนินการตามคำสั่งน้อยลง มาดูความแตกต่างระหว่างความเร็วของบอร์ดไมโครคอนโทรลเลอร์ทั้งสามข้างต้นกัน

ไม่ได้ลงนาม ยาว Start_Time, Time_Taken ;
#กำหนดพิน 5 /*pin 5 กำหนดให้เปลี่ยนสถานะ*/
โมฆะ ติดตั้ง ( ) {
ซีเรียล เริ่ม ( 9600 ) ; /*อัตราบอดที่กำหนดไว้สำหรับการสื่อสารแบบอนุกรม*/
 โหมดพิน ( พิน OUTPUT ) ; /*pin 5 ถูกกำหนดเป็นเอาต์พุต*/
}
โมฆะ ห่วง ( ) {
เวลาเริ่มต้น = มิลลิวินาที ( ) ; /*เวลาเริ่มต้นเท่ากับตัวนับมิลลิวินาที*/
สำหรับ ( int ผม = 0 ; ผม < 20000 ; ผม ++ ) { /*สำหรับลูปรัน 20000 ครั้ง*/
digitalWrite ( พิน สูง ) ; /*สถานะพินเปลี่ยนเป็นสูง*/
digitalWrite ( พิน LOW ) ; /*สถานะพินเปลี่ยนเป็น LOW*/
}
เวลา_ถ่าย = มิลลิวินาที ( ) - เวลาเริ่มต้น ; /*ความแตกต่างของเวลาคำนวณตามเวลาที่ใช้คืน*/
ซีเรียล พิมพ์ ( 'เวลาที่ใช้ในการเปลี่ยนสถานะที่ PIN 5:' ) ;
ซีเรียล พิมพ์ ( เวลา_ถ่าย ) ; /*ระยะเวลาพิมพ์ทั้งหมด*/
ซีเรียล println ( 'นางสาว' ) ;
}

ขั้นแรกเราได้เริ่มต้นสองตัวแปร เวลาเริ่มต้น และ เวลา_ถ่าย หนึ่งจะจัดเก็บเวลาเริ่มต้นเป็นมิลลิวินาที ในขณะที่อันที่สองจะจัดเก็บเวลาทั้งหมดที่ใช้โดยไมโครคอนโทรลเลอร์เพื่อสลับระหว่างสองสถานะที่สูงและต่ำ

ถัดไปในส่วนลูปของโค้ด a for loop จะใช้หมุน 20,000 ครั้งและทำให้พิน 5 เป็น HIGH และ LOW อีกทางหนึ่ง ต่อไป เราจะใช้ความแตกต่างของเวลาเริ่มต้นกับมิลลิวินาทีปัจจุบันเมื่อสถานะเปลี่ยนจากสูงเป็นต่ำ ความแตกต่างของเวลาระหว่าง Millis ปัจจุบันและ Millis ก่อนหน้าจะกำหนดเวลาที่คณะกรรมการใช้ในการเปลี่ยนสถานะ

เอาต์พุต ESP32

เนื่องจาก ESP32 มีความถี่สัญญาณนาฬิกามากกว่า Uno และ Mega ดังนั้นมันจะสลับระหว่างสถานะต่างๆ ได้เร็วมาก ผลลัพธ์ที่นี่แสดงว่าใช้เวลา 5ms ในการเปลี่ยนจากสถานะ HIGH เป็น LOW

Arduino Uno เอาต์พุต

บอร์ด Arduino Uno มีนาฬิกาภายนอกที่ 16MHz ดังนั้นจะใช้เวลา 172ms ในการเปลี่ยนสถานะพิน

Arduino Mega Output

บอร์ด Arduino Mega จะใช้เวลา 227 มิลลิวินาทีในการสลับระหว่างสถานะต่างๆ

จากผลลัพธ์ข้างต้น เราสรุปได้ว่า ESP32 เร็วกว่า Arduino Uno และ Mega

การเปรียบเทียบโดยย่อของ ESP32 กับ Arduino Uno กับ Arduino Mega

นี่คือการเปรียบเทียบโดยย่อของบอร์ด ESP32 กับคู่แข่ง Arduino Uno และ Mega

ลักษณะเฉพาะ ESP32 arduino หนึ่ง Arduino Mega
พิน I/O ดิจิตอล 36 14 54
กระแสไฟตรงต่อขา I/O 40mA 20mA 20mA
หมุดอนาล็อก มากถึง 18 6, 10 บิต ADC 6, 10 บิต ADC
โปรเซสเซอร์ ไมโครโปรเซสเซอร์ Xtensa Dual Core 32 บิต LX6 ATmega328P ATmega2560
หน่วยความจำแฟลช 4 MB 32 KB 256 KB
SRAM 520 kB 2 KB 8 KB
EEPROM ไม่มี 1 KB 4 KB
ความเร็วนาฬิกา 80MHz ถึง 240Mhz 16 MHz 16 MHz
ระดับแรงดันไฟฟ้า 3.3V 5V 5V
Wi-Fi 802.11 b/g/n ไม่มี ไม่มี
บลูทู ธ v4.2 BR/EDR และ BLE ไม่มี ไม่มี
รองรับ I2C ใช่ (2x) ใช่ ใช่
การสนับสนุน SPI ใช่ (4x) ใช่ ใช่
ฮาร์ดแวร์พอร์ตอนุกรม 3 1 1
การเชื่อมต่อ USB ไมโคร USB USB-B USB-B

บทสรุป

ในขณะที่ซื้อบอร์ดไมโครคอนโทรลเลอร์ตัวแรกหรือทำงานบนหลายบอร์ด คำถามที่อยู่ในใจของทุกคนคือบอร์ดไมโครคอนโทรลเลอร์ตัวไหนดีที่สุด ดังนั้นเราจึงสรุปได้ว่า ESP32 ดีกว่าบอร์ด Arduino เนื่องจากราคาไม่แพง ใช้พลังงานต่ำ และนาฬิกาภายนอกที่เร็วสุด ๆ พร้อมรองรับ WiFi และ Bluetooth ESP32 มีฟังก์ชันการทำงานมากกว่าบอร์ด Arduino