ESP32 เป็นไมโครคอนโทรลเลอร์ Wi-Fi และ Bluetooth ประสิทธิภาพสูงและต้นทุนต่ำจาก Espressif Systems ที่สามารถตั้งโปรแกรมด้วย Arduino IDE หรือ Arduinodroid ได้ในโพสต์วันนี้ ฉันจะแสดงวิธีแก้ไขปัญหาที่การอัปโหลดโปรแกรมสำเร็จ แต่โค้ดเดิมใช้งานได้ แต่โค้ดใหม่ใช้งานไม่ได้
ESP32 คืออะไร?
ESP32 เป็นชิปไมโครคอนโทรลเลอร์ที่ได้รับความนิยมอย่างมากสำหรับโครงการ IoT (Internet of Things) รองรับ Arduino UNO และมี Wi-Fi/Bluetooth ในตัว จึงใช้งานกันอย่างแพร่หลายในบ้านอัจฉริยะ ระบบเซ็นเซอร์ หุ่นยนต์ ระบบอัตโนมัติ และอื่นๆ
ทำไมโค้ดใหม่ถึงไม่ทำงาน?
โหมดอัปโหลดของ Arduino แตกต่างจาก ESP32 โดย ESP32 มีปุ่ม EN (Reset) และปุ่ม BOOT และอินพุตโปรแกรมก็แตกต่างจาก ArduinoUNO เช่นกันESP32 มีสองโหมดสำหรับการอินพุตโปรแกรม: โหมดปกติและโหมดบูต
โหมดปกติ: สามารถยอมรับอินพุตโปรแกรมได้ แต่ไม่สามารถดำเนินการโค้ดใหม่ได้
โหมดการบูต: ช่วยให้คุณสามารถติดตั้งโปรแกรมและรันโค้ดใหม่
จะเปลี่ยนโหมด Boot ได้อย่างไร?
ขั้นตอนการเข้าสู่โหมดบูตสามารถทำได้ดังนี้ คุณต้องทำตามขั้นตอนเหล่านี้
• คอมไพล์โปรแกรมก่อนอัปโหลดไปยัง Arduino Droid/IDE
•จะต้องเลือกประเภทบอร์ด ESP32 อย่างถูกต้องใน IDE
• กดปุ่ม EN และปุ่ม BOOT บนบอร์ด ESP32 ค้างไว้
• หากระบบระบุว่ากำลังอัปโหลดในขณะที่โปรแกรมกำลังถูกอัปโหลด ให้ปล่อยปุ่ม EN ก่อน จากนั้นจึงปล่อยปุ่ม BOOT
หลังจากเข้าสู่ BOOT MODE และอัปโหลดแล้ว โค้ดใหม่จะทำงานบนบอร์ด ESP32
โค้ดตัวอย่าง BLink:
void setup() {
pinMode(2, OUTPUT);
Serial.begin(115200);
Serial.println("NEW CODE LOADED SUCCESS!");
}
void loop() {
digitalWrite(2, HIGH);
Serial.println("LED ON - NEW CODE");
delay(300);
digitalWrite(2, LOW);
Serial.println("LED OFF - NEW CODE");
delay(300);
}
โปรดทราบว่า ArduinoUNO สามารถอัปโหลดได้เฉพาะในโหมดปกติเท่านั้น ในขณะที่ ESP32 จะทำงานเมื่ออัปโหลดโปรแกรมในโหมด BOOT เท่านั้นการใช้วิธีนี้ช่วยให้คุณสามารถเอาชนะปัญหาโค้ดใหม่ไม่ทำงานได้