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