สารบัญ:

กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO: 7 ขั้นตอน
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO: 7 ขั้นตอน

วีดีโอ: กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO: 7 ขั้นตอน

วีดีโอ: กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO: 7 ขั้นตอน
วีดีโอ: EP28 Arduino ESP32 Update Firmware Over The Internet 2024, กรกฎาคม
Anonim
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO
กู้คืนหรืออัพเกรดเฟิร์มแวร์บนโมดูล ESP8266 (ESP-01) โดยใช้ Arduino UNO

โมดูล ESP-01 ที่ฉันใช้แต่เดิมนั้นมาพร้อมกับเฟิร์มแวร์ AI Thinker รุ่นเก่า ซึ่งจำกัดความสามารถของมันเนื่องจากไม่รองรับคำสั่ง AT ที่มีประโยชน์มากมาย

โดยทั่วไปเป็นความคิดที่ดีที่จะอัพเกรดเฟิร์มแวร์ของคุณสำหรับการแก้ไขจุดบกพร่อง และยังขึ้นอยู่กับฟังก์ชันที่จำเป็นจากโมดูล ESP อาจจำเป็นต้องใช้ชุดคำสั่ง AT ที่รองรับที่สมบูรณ์กว่านี้ บทช่วยสอนนี้ยังอธิบายวิธีการคืนค่าหรือแฟลชเฟิร์มแวร์ Espressif ดั้งเดิม หากคุณบังเอิญทำให้เฟิร์มแวร์ ESP ของคุณยุ่งเหยิง เช่น ผ่านคำสั่ง AT ที่ไม่ถูกต้อง นี่คือสิ่งที่เกิดขึ้นเมื่อฉันพยายามเปลี่ยนอัตรารับส่งข้อมูลเริ่มต้นจาก 115200 เป็น 9600 ฉันใช้คำสั่งต่อไปนี้ (ตามการค้นหาโดย Google อย่างรวดเร็ว):

AT+IPR=9600

สิ่งนี้ทำให้โมดูล ESP-01 กลายเป็นอิฐ คำสั่ง AT ไม่ทำงานอีกต่อไป ซึ่งทำให้ฉันต้องค้นคว้าเพิ่มเติม และหลังจากผ่านไปหลายชั่วโมง ในที่สุดฉันก็พบวิธีกู้คืน ESP-01 และติดตั้งเฟิร์มแวร์ที่เข้ากันได้ล่าสุด ดังนั้นฉันจึงตัดสินใจว่าควรแบ่งปันกระบวนการทั้งหมด

ข้อควรระวัง: จากประสบการณ์ของฉัน ฉันขอแนะนำเป็นอย่างยิ่งว่าอย่าใช้คำสั่ง AT+IPR เพื่อเปลี่ยนอัตรารับส่งข้อมูล เนื่องจากคุณจะต้องแฟลชเฟิร์มแวร์อีกครั้ง อย่างไรก็ตาม โมดูล ESP-01 มีรุ่นต่างๆ มากมายที่มีขนาดแฟลชและเวอร์ชันเฟิร์มแวร์จากโรงงานต่างกัน ดังนั้นประสบการณ์ของคุณอาจแตกต่างกันไป

โมดูล ESP-01 ไม่รองรับ 5 V และต้องใช้ 3.3 V เพื่อจ่ายไฟ แต่ยังทำงานอย่างถูกต้องในระดับลอจิก ในการสื่อสารกับคอมพิวเตอร์ โมดูลจำเป็นต้องใช้ตัวแปลง USB เป็นซีเรียลเพิ่มเติม ดังนั้น แทนที่จะใช้ตัวแปลงแรงดันไฟฟ้าและอะแดปเตอร์ USB เป็นซีเรียล ฉันตัดสินใจเลือกใช้โซลูชันที่ง่ายกว่านี้ เนื่องจากฉันมี Arduino UNO อยู่แล้ว ฉันจึงใช้ตัวหลังเพื่อจ่ายไฟให้กับโมดูล ESP-01 และสร้างการสื่อสารระหว่าง ESP-01 กับคอมพิวเตอร์ โดยทำงานเป็นสะพานอนุกรมได้อย่างมีประสิทธิภาพ

เสบียง

  1. โมดูล ESP-01
  2. Arduino UNO (พร้อมสาย USB)
  3. สายจัมเปอร์ดูปองท์
  4. เขียงหั่นขนม

ขั้นตอนที่ 1: การเชื่อมต่อสายไฟ

การเชื่อมต่อสายไฟ
การเชื่อมต่อสายไฟ
การเชื่อมต่อสายไฟ
การเชื่อมต่อสายไฟ
การเชื่อมต่อสายไฟ
การเชื่อมต่อสายไฟ

การต่อสายไฟกับโมดูล Arduino UNO และ ESP-01 สามารถทำได้ง่าย ๆ โดยใช้สายจัมเปอร์และเขียงหั่นขนม การเชื่อมต่อระหว่างบอร์ดพัฒนา Arduino และโมดูล ESP ได้อธิบายไว้ในตาราง ในกรณีนี้ การเชื่อมต่อ RX และ TX จะไม่ย้อนกลับ เนื่องจากการสื่อสารไม่ได้เกิดขึ้นระหว่างโมดูล Arduino และ ESP แต่ระหว่าง ESP กับคอมพิวเตอร์ ดังนั้น ในกรณีนี้ บอร์ด Arduino UNO ถูกใช้เป็นบริดจ์อนุกรมผ่าน USB ออนบอร์ดเป็นตัวแปลงอนุกรม

การเชื่อมต่อพิน RX ระหว่างบอร์ด Arduino และโมดูล ESP ควรทำผ่านตัวแบ่งแรงดันไฟฟ้า เนื่องจาก ESP-01 ทำงานที่ระดับลอจิก 3.3 V และรับระดับลอจิก 5 V จาก Arduino UNO อาจทำให้โมดูล ESP เสียหายได้ คุณสามารถสร้างตัวแบ่งแรงดันไฟฟ้า 3.3 V อย่างง่ายโดยใช้ตัวต้านทานเพียง 2 ตัวดังแสดงในรูป หรือคุณสามารถใช้ตัวแปลงระดับลอจิก

ข้อควรระวัง: สำหรับการตั้งค่าของฉัน ฉันเพิ่งต่อพิน RX โดยตรง (ไม่แนะนำ!) และทุกอย่างทำงานได้ แต่ถ้าคุณตัดสินใจที่จะละทิ้งการแปลงระดับลอจิก ให้ดำเนินการตามความเสี่ยงของคุณเอง!

ในการสร้างการเชื่อมต่อกราวด์ร่วมกัน พิน Arduino UNO Ground จะเชื่อมต่อกับกราวด์ของโมดูล ESP

Arduino UNO ใช้เพื่อจ่ายไฟ 3.3 V ไปยังพิน VCC ของโมดูล ESP โดยตรง เชื่อมต่อพิน 3.3 V กับเขียงหั่นขนมโดยใช้สายจัมเปอร์ เนื่องจาก 3.3 V จะใช้ไม่เพียงสำหรับพิน VCC ของ ESP แต่ยังรวมถึงพิน CH_PD ของ ESP เพื่อเปิดใช้งานชิป ESP

หมุด RESET บน Arduino UNO เชื่อมต่อกับกราวด์เพื่อข้ามรหัสใด ๆ ที่อัปโหลดผ่าน Arduino เพื่อให้รหัสถูกส่งจากคอมพิวเตอร์ไปยัง ESP-01 แทน

รูปตารางแสดงการเชื่อมต่อทั้งชุดสำหรับการกะพริบของเฟิร์มแวร์ แต่ในขั้นตอนนี้ ห้ามเชื่อมต่อหมุดรีเซ็ตของ ESP และ GPIO_0 เนื่องจากเราจะอ่านข้อมูลเฟิร์มแวร์ในขั้นตอนต่อไปเท่านั้น

ขั้นตอนที่ 2: ตรวจสอบเวอร์ชันเฟิร์มแวร์

ตรวจสอบเวอร์ชั่นเฟิร์มแวร์
ตรวจสอบเวอร์ชั่นเฟิร์มแวร์

หากต้องการค้นหาเวอร์ชันเฟิร์มแวร์ ESP-01 ของคุณใน Arduino IDE Serial Monitor ให้พิมพ์:

AT+GMR

หมายเหตุ: คำสั่ง AT ทั้งหมดจะต้องพิมพ์เป็นตัวพิมพ์ใหญ่โดยไม่มีช่องว่าง

นี่คือผลลัพธ์แบบอนุกรมสำหรับ ESP-01 ของฉัน (โมดูล ESP ของคุณอาจไม่แสดงข้อมูลเหมือนกันทุกประการ เนื่องจากขึ้นอยู่กับรุ่นและวันที่เผยแพร่ที่ระบุ):

AT+GMR

รุ่น AT:0.25.0.0(5 มิ.ย. 2558 16:27:16) รุ่น SDK:1.1.1 Ai-Thinker Technology Co. Ltd. 23 มิ.ย. 2558 23:23:50 น. ตกลง

ตอนนี้ หากต้องการอัปเกรดเฟิร์มแวร์อย่างเป็นทางการล่าสุดของ Espressif ESP8266EX ให้ไปที่ส่วนทรัพยากรของเว็บไซต์:

หมายเหตุ: รายการเฟิร์มแวร์ที่มีอาจไม่ทั้งหมดเข้ากันได้กับรุ่น ESP-01 ของคุณ ตรวจสอบส่วนการแก้ไขปัญหาที่ส่วนท้ายของบทช่วยสอนนี้สำหรับข้อมูลเพิ่มเติม

ขั้นตอนที่ 3: การเตรียมการตั้งค่า: ก่อนที่เฟิร์มแวร์จะกะพริบ

การเตรียมการตั้งค่า: ก่อนที่เฟิร์มแวร์จะกะพริบ
การเตรียมการตั้งค่า: ก่อนที่เฟิร์มแวร์จะกะพริบ

ตอนนี้เราจะเตรียม Arduino UNO สำหรับขั้นตอนการแฟลชเฟิร์มแวร์ ESP-01

ตรวจสอบให้แน่ใจว่าได้ถอดสาย Arduino RESET ออกจากกราวด์แล้ว นอกจากนี้ ยังต้องถอดสาย TX และ RX จาก Arduino UNO ออกจากโมดูล ESP-01

เปิด Arduino IDE และจากเมนูด้านบน ไปที่ File > Examples > 01. Basics > BareMinimum อัปโหลดภาพร่างไปยัง Arduino UNO ภาพร่างเปล่านี้จะช่วยให้แน่ใจว่าไม่มีการรบกวนการสื่อสารเกิดขึ้นกับโมดูล ESP

เชื่อมต่อสายเคเบิล RX และ TX ระหว่าง UNO และ ESP-01 อีกครั้ง เชื่อมต่อพิน RESET ของ UNO กับกราวด์ด้วย

พิน CH_PD หรือ CH_EN ย่อมาจาก 'Chip Power-Down' หรือ 'Chip Enable' และต้องดึงให้สูงหรือเชื่อมต่อกับ 3.3 V เพื่อเปิดใช้งานชิป ESP

ต้องใช้สายจัมเปอร์เพิ่มเติมสองเส้นสำหรับหมุด ESP ต่อไปนี้: GPIO_0 และ RESET

GPIO_2 ไม่ได้ใช้และไม่ได้เชื่อมต่อ

ต้องตั้งค่า ESP-01 ในโหมดการเขียนโปรแกรมเพื่อให้สามารถอัปโหลดโค้ดได้ แต่ ESP-01 ไม่มีฮาร์ดแวร์เพิ่มเติมที่จำเป็นสำหรับการทำงานโดยตรง ดังนั้นจึงจำเป็นต้องเชื่อมต่อทั้งหมดแยกกัน สำหรับการใช้งานของฉันเอง ฉันไม่ได้รำคาญกับการใช้สวิตช์ แต่เพียงแค่ใช้สายจัมเปอร์ตัวผู้-ตัวเมียสองตัวที่เชื่อมต่อกับหมุด GPIO_0 และ RESET ของโมดูล ESP-01 และเสียบเข้ากับหมุดกราวด์ทั่วไปของเขียงหั่นขนมจากกราวด์ของ Arduino UNO

ก่อนที่จะเริ่มขั้นตอนการกะพริบ GPIO_0 จะเชื่อมต่อกับกราวด์สำหรับขั้นตอนการกะพริบทั้งหมดเพื่อเปิดใช้งานโหมดการเขียนโปรแกรม

หมุด RESET เชื่อมต่อกับกราวด์สักครู่แล้วจึงถอดออก ซึ่งช่วยให้สามารถอัปโหลดเฟิร์มแวร์ใหม่ได้

ขั้นตอนที่ 4: ดาวน์โหลด Flashing Tool และ Firmware

ดาวน์โหลด Flashing Tool และ Firmware
ดาวน์โหลด Flashing Tool และ Firmware

เฟิร์มแวร์ที่ใช้มาจาก Espressif ซึ่งเป็นผู้ผลิตชิป ESP8266 ดั้งเดิม

ไปที่: https://www.espressif.com/en/products/hardware/esp8266ex/resources เพื่อเข้าถึงเครื่องมืออย่างเป็นทางการและไฟล์เฟิร์มแวร์ AT

ใต้แท็บ "เครื่องมือ" ให้ดาวน์โหลด Flash Download Tools (ESP8266 & ESP32) ซึ่งปัจจุบันเป็นเวอร์ชันล่าสุดคือ V3.6.8

ใต้แท็บ 'AT' ให้ดาวน์โหลดเฟิร์มแวร์ AT ที่เข้ากันได้ล่าสุด ซึ่งก็คือ ESP8266 AT Bin V1.6.2 สำหรับรุ่น ESP-01 ของฉัน ขึ้นอยู่กับรุ่น ESP-01 เนื่องจากสามารถมีขนาดหน่วยความจำแฟลชต่างกันได้ คุณจะพบข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ในส่วน DETECTED INFO ของโปรแกรม Flash Download Tools หลังจากคลิกที่ START เพื่อเริ่มขั้นตอนการกะพริบ ดังนั้น หากคุณไม่แน่ใจเกี่ยวกับขนาดแฟลชหรือไฟล์เฟิร์มแวร์ที่จะเลือก เพียงเรียกใช้โปรแกรมเพื่อรับข้อมูลที่ถูกต้องเกี่ยวกับโมดูล ESP ของคุณ

หลังจากกะพริบ คุณสามารถใช้คำสั่ง AT เพื่อทดสอบและทำงานกับ ESP-01 ดาวน์โหลดชุดคำสั่ง ESP8266 AT อย่างเป็นทางการ:

ขั้นตอนที่ 5: ขั้นตอนการกระพริบ

ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ
ขั้นตอนการกระพริบ

แตกไฟล์ zip เครื่องมือดาวน์โหลด Flash และเปิดไฟล์ exe ตรวจสอบให้แน่ใจว่าได้เรียกใช้ในฐานะผู้ดูแลระบบหากคุณใช้ Windows หน้าต่าง DOS จะเปิดขึ้นก่อน ตามด้วยหน้าต่างป๊อปอัป เลือกเครื่องมือดาวน์โหลด ESP8266 ซึ่งจะเปิดหน้าต่างที่มีตัวเลือกที่กำหนดค่าได้หลายแบบ

ในขั้นตอนนี้ ให้ดูที่ภาพหน้าจอเพื่อดูว่ามีตัวเลือกใดบ้างที่จะเลือกและสิ่งที่จะพิมพ์ในกล่องรหัสฐานสิบหกที่อยู่ถัดจากไฟล์เฟิร์มแวร์ที่เลือกแต่ละไฟล์

หมายเหตุ: เลือกไฟล์เฟิร์มแวร์ในลำดับเดียวกันเนื่องจากขั้นตอนแฟลชทำตามลำดับ ต้องเลือกไฟล์ blank.bin สามครั้งตามที่แสดงในภาพหน้าจอชุดคำสั่ง AT

หากต้องการค้นหารหัสฐานสิบหกหรือที่อยู่ที่ถูกต้อง ให้ตรวจสอบเอกสารชุดคำสั่ง AT อย่างเป็นทางการ ฉันได้แนบภาพหน้าจอของตารางที่ฉันใช้สำหรับการแฟลชโมดูล ESP ของฉัน

จากนั้นเพียงกดปุ่ม START และดูความมหัศจรรย์ที่เกิดขึ้น ข้อความปุ่มจะแสดง SYNC และส่วน DETECTED INFO จะแสดงข้อกำหนดของโมดูล ESP ของคุณ จากนั้นข้อความจะแสดง DOWNLOAD และแถบแสดงความคืบหน้าจะเปิดใช้งานเมื่อไฟล์เฟิร์มแวร์ถูกอัปโหลดไปยังหน่วยความจำแฟลช ESP หลังจากขั้นตอนการแฟลชเฟิร์มแวร์เสร็จสิ้น คุณจะเห็น: FINISH

ปิดโปรแกรม Flash Download Tools นี่เป็นสิ่งจำเป็นในการเพิ่มพอร์ตอนุกรมเพื่อให้ Arduino IDE Serial Monitor เข้าควบคุม

ถอดพิน ESP GPIO_0 ออกจากการเชื่อมต่อกราวด์ การดำเนินการนี้จะปิดใช้งานโหมดการเขียนโปรแกรม

เชื่อมต่อ RESET กับ Ground เป็นเวลา 1 วินาทีแล้วตัดการเชื่อมต่อ การดำเนินการนี้จะรีเซ็ตโมดูล

เปิด Arduino IDE จากเมนูด้านบน เลือกเครื่องมือ > พอร์ต > เลือกพอร์ต COM ที่ถูกต้อง เปิด Serial Monitor แล้วเลือก "Both NL & CR" และเลือก baud rate ที่ 115200 ซึ่งเป็นค่าเริ่มต้น

พิมพ์:

ที่

หากขั้นตอนการกะพริบเป็นไปอย่างถูกต้อง การตอบสนองจะเป็น:

ตกลง

ในการตรวจสอบเฟิร์มแวร์ใหม่ของคุณ ให้พิมพ์:

AT+GMR

นี่คือเอาต์พุต Serial Monitor สำหรับ ESP-01 ของฉัน:

AT+GMR

รุ่น AT:1.6.2.0(13 เม.ย. 2018 11:10:59) เวอร์ชัน SDK:2.2.1(6ab97e9) เวลาคอมไพล์:7 มิ.ย. 2018 19:34:26 น. เวอร์ชัน Bin(Wroom 02):1.6.2 ตกลง

ขั้นตอนที่ 6: เปลี่ยนอัตราบอดอย่างถาวร

เปลี่ยนอัตราบอดอย่างถาวร
เปลี่ยนอัตราบอดอย่างถาวร

ส่วนนี้เป็นทางเลือก อัตราบอดเริ่มต้นคือ 115200 แต่ถ้าคุณต้องการเปลี่ยนเป็นความเร็วบอดอื่น คุณสามารถพิมพ์คำสั่งต่อไปนี้ใน Arduino Serial Monitor

ตัวอย่างเช่น หากคุณต้องการเปลี่ยนเป็น 9600 baud rate / 8 data bits / 1 stop bits / no parity bit / ไม่มีการควบคุมการไหล

พิมพ์ใน:

AT+UART_DEF=9600, 8, 1, 0, 0

การตอบสนองควรเป็น:

ตกลง

คำสั่งด้านบนจะเปลี่ยนอัตราบอดอย่างถาวรเป็น 9600 แต่คุณสามารถเลือกความเร็วบอดมาตรฐานใดก็ได้

ขั้นตอนที่ 7: การแก้ไขปัญหา

การแก้ไขปัญหา
การแก้ไขปัญหา
การแก้ไขปัญหา
การแก้ไขปัญหา

หากมีความผิดปกติใด ๆ หลังจากการแฟลชเฟิร์มแวร์สำเร็จ เช่น ใน Serial Monitor หลังจากที่คุณเลือกอัตรา baud เริ่มต้นที่ 115200 และพิมพ์: AT แต่ไม่เห็นการตอบสนองใดๆ หรือหากคุณพิมพ์ AT+GMR แล้วได้รับอย่างอื่น ข้อมูลประเภทอื่นที่ไม่ใช่ข้อมูลเวอร์ชันเฟิร์มแวร์ แสดงว่าคุณอาจแฟลชเฟิร์มแวร์ผิด ในกรณีดังกล่าว ในโปรแกรม Flash Download Tools หลังจากที่คุณกดปุ่ม START เพื่อเริ่มขั้นตอนการกะพริบของเฟิร์มแวร์ ปุ่มสีเขียวแสดงสถานะจะอ่าน SYNC และนั่นคือสเตจที่ข้อมูลโมดูล ESP จะถูกดึงออกมาและเผยแพร่ภายใต้ DETECTED INFO ข้อมูลนี้มีความสำคัญต่อการพิจารณาเฟิร์มแวร์ที่ถูกต้องและแก้ไขไฟล์ที่จะแฟลช

ต่อไปนี้สำหรับโมดูล ESP-01 ของฉัน:

ผู้จำหน่ายแฟลช:

E0h: ไม่มี devID แฟลช:4014h QUAD;คริสตัล 8Mbit:26 Mhz

ข้อมูลที่ตรวจพบของคุณจะขึ้นอยู่กับรุ่น ESP-01 แต่วิธีนี้จะช่วยให้คุณสรุปขนาดแฟลชที่ถูกต้องได้ ใน ESP ของฉันคือ 8Mbit ซึ่งเทียบเท่ากับ 1 MB นี่หมายความว่าฉันควรเลือก 512 KB + 512 KB จากไฟล์เฟิร์มแวร์ และนี่ก็หมายความว่าเฟิร์มแวร์ 1.7.0 หรือ 1.7.1 จะทำงานไม่ถูกต้องสำหรับโมดูล ESP ของฉัน ซึ่งฉันยืนยันด้วยการแฟลชเฟิร์มแวร์และการทดสอบเหล่านี้ด้วย นอกจากนี้ ในคำอธิบายของเฟิร์มแวร์ 1.7.0 และ 1.7.1 บนเว็บไซต์ทรัพยากร Espressif อย่างเป็นทางการ ข้อมูลต่อไปนี้ถูกระบุไว้: "ถูกจำกัดโดยขนาดของไฟล์ AT bin รองรับเฉพาะ `1024+1024 flash map` โดย ค่าเริ่มต้น." 1024+1024 หมายความว่าสำหรับโมดูล ESP ที่มีขนาดแฟลชรวม 2048 KB หรือ 2 MB

หมายเหตุ: ในกรณีที่คุณสงสัย คุณสามารถดาวน์เกรดหรืออัปเกรดระหว่างเฟิร์มแวร์เวอร์ชันต่างๆ ได้โดยไม่มีข้อจำกัดใดๆ หากมีอะไรผิดพลาด คุณสามารถแฟลชอีกครั้งโดยใช้พารามิเตอร์อื่นหรือลองใช้เฟิร์มแวร์ตัวอื่น

แนะนำ: