15.The usage of Wi-Fi OTA(Over-The-Air)
The Arduino demo of ESP32 provides the function of OTA (updating/uploading a new program to ESP32 using Wi-Fi)
Last updated
The Arduino demo of ESP32 provides the function of OTA (updating/uploading a new program to ESP32 using Wi-Fi)
Last updated
การกำหนดค่าของ BiBoard ของเราคือ 16MB Flash และพาร์ติชันเฉพาะมีดังนี้:
OTA ดำเนินการพื้นที่ข้อมูล OTA เป็นหลัก ได้แก่ พื้นที่ APP1 และ APP2 หลักการคือ:
BiBoard เรียกใช้เฟิร์มแวร์ด้วยฟังก์ชัน OTA ในขณะนี้ การบูตชี้ไปที่พื้นที่ APP1
คำสั่ง OTA ถูกส่งไปยัง ESP32 ผ่าน Wi-Fi และไฟล์ไบนารีของโปรแกรมอัปเกรดจะถูกถ่ายโอนไปยังพื้นที่ APP2
หากการส่ง APP2 เสร็จสิ้นและการตรวจสอบยืนยันสำเร็จ ข้อมูล OTA จะชี้ไปที่พื้นที่ APP2 และครั้งต่อไปที่เริ่มต้นจากพื้นที่เฟิร์มแวร์ที่อัปเดตแล้ว (APP2) ข้อมูล APP1 จะถูกเก็บไว้ ครั้งต่อไป OTA จะเขียนไปยังพื้นที่ APP1 เพื่อเขียนทับเฟิร์มแวร์เก่า
หากการส่ง APP2 ไม่เสร็จสมบูรณ์เนื่องจากข้อผิดพลาดในการส่งเครือข่าย เนื่องจาก APP2 ไม่ผ่านการตรวจสอบ ข้อมูล OTA จะไม่ชี้ไปที่พื้นที่ APP2 โปรแกรมในพื้นที่ APP1 จะยังคงทำงานหลังจากเริ่มต้นการรีเซ็ต และพื้นที่ APP2 ที่เสียหายจะถูกลบและเขียนทับอย่างสมบูรณ์ระหว่าง OTA ถัดไป
ในการสาธิต ก่อนอื่นให้กำหนดค่า WiFi และกำหนดค่าโหมด WiFi เป็น STA (สถานี โหมดสถานีฐาน) เปิดใช้งานฟังก์ชัน WiFi และป้อนรหัสผ่านบัญชี "WiFi.begin(ssid, password);"
เมื่อเชื่อมต่อ Wi-Fi สำเร็จ ที่อยู่ IP จะถูกพิมพ์ผ่านพอร์ตอนุกรม หากการเชื่อมต่อผิดพลาด ESP32 จะรีสตาร์ท
ในการสาธิต คุณสามารถกำหนดค่าหมายเลขพอร์ต คีย์ OTA หรือแฮชของคีย์ และพื้นที่และประเภทของ OTA (ระบุโดยค่าเริ่มต้น)
ต่อไปนี้เป็นข้อมูลโค้ดบางส่วนที่คล้ายกับฟังก์ชันการโทรกลับ ซึ่งใช้ในการตัดสินสถานะของแต่ละขั้นตอนของ OTA
หลังจากกำหนดค่าตามการสาธิต ให้เรียก "ArduinoOTA.handle();" ในฟังก์ชันลูป ฟังก์ชัน analogWrite ต่อไปนี้ใช้เพื่อแยกแยะผลกระทบของการอัพเดตเฟิร์มแวร์ต่างๆ (โดยการเปลี่ยนค่า)
ครั้งแรกที่คุณใช้พอร์ตอนุกรมเพื่อดาวน์โหลด เครื่องมือไพธอน "esptool" จะถูกเรียก คุณสามารถใช้ OTA ได้หลังจากการดาวน์โหลดเสร็จสิ้น ในตัวเลือกพอร์ต คุณจะพบพอร์ตพิเศษตามที่อยู่ IP ซึ่งเป็นที่อยู่ OTA
เลือกที่อยู่นี้ มุมขวาล่างคือที่อยู่ IP ของ ESP32 Dev Module บน BiBoard ของคุณ (192.168.1.178)
ในเวลาเดียวกัน คำเตือนจะปรากฏขึ้น: "ไม่รองรับการมอนิเตอร์แบบอนุกรมบนพอร์ตเครือข่าย เช่น 192.168.1.178 สำหรับโมดูล ESP32 Dev ในล่าสุดนี้"
ESP32 OTA ของ Arduino เหมาะสำหรับการอัปเดตโปรแกรมเท่านั้น และไม่สามารถทำงานดีบักพอร์ตอนุกรมได้ หากคุณต้องการดีบัก BiBoard โปรดเชื่อมต่ออินเทอร์เฟซ USB-C
ดาวน์โหลดโปรแกรม ดังรูป