- OTA Programming คืออะไร?
- ESP8266 NodeMCU
- ส่วนประกอบที่จำเป็น
- การเตรียม NodeMCU เพื่อรับ OTA Update Wirelessly
- ESP8266 โปรแกรม LED กะพริบสำหรับ OTA Transfer
- ไฟ LED กะพริบบน ESP8266 ผ่านการอัปเดต OTA
OTA Programming คืออะไร?
OTA Programming (Over the Air) เป็นกระบวนการที่อนุญาตให้อุปกรณ์อัพเกรดเฟิร์มแวร์หรือซอฟต์แวร์แบบไร้สายโดยไม่ต้องเข้าถึงทางกายภาพ ใช้เทคโนโลยีไร้สายเช่น Wi-Fi, Bluetooth, GPRS หรือ 4G / 3G แทนการสื่อสารแบบอนุกรมแบบใช้สาย OTA ใช้ในการตั้งโปรแกรมอุปกรณ์เช่นไมโครคอนโทรลเลอร์โทรศัพท์มือถือคอมพิวเตอร์กล่องรับสัญญาณเป็นต้นโดยทั่วไปการอัปเดต OTAจะถูกส่งไปเพื่ออัปเดตซอฟต์แวร์แก้ไขข้อบกพร่องเพิ่มคุณสมบัติบางอย่างเป็นต้นด้วยการใช้อุปกรณ์ IoT ที่เพิ่มขึ้น OTA จะถูกถ่ายโอนโดยใช้ คลื่นความถี่ที่มีอัตราการส่งข้อมูลต่ำ (868 MHz, 900 MHz, 2400 MHz)
ที่นี่ในการกวดวิชานี้เราจะส่งการปรับปรุง OTA เพื่อ ESP8266 NodeMCU กะพริบไฟ LED
ESP8266 NodeMCU
NodeMCU เป็นแพลตฟอร์ม IoT แบบโอเพ่นซอร์ส ประกอบด้วยเฟิร์มแวร์ที่ทำงานบน ESP8266 Wi-Fi SoC ที่เปิดใช้งาน Wi-Fi ราคาประหยัดจาก Espressif Systems และฮาร์ดแวร์ที่ใช้โมดูล ESP-12 มี GPIO, SPI, I2C, ADC, PWM และ UART พิน สามารถตั้งโปรแกรมด้วย Arduino IDE บนบอร์ด NodeMCU มี CP2102 IC ซึ่งมีฟังก์ชัน USB to TTL หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ ESP8266 ให้ตรวจสอบโครงการอื่น ๆ ที่ใช้ ESP8266
ส่วนประกอบที่จำเป็น
- NodeMCU ESP8266
- สายไมโคร USB
- Arduino IDE
การเตรียม NodeMCU เพื่อรับ OTA Update Wirelessly
ขั้นแรกให้เชื่อมต่อ NodeMCU ESP8266 กับพีซีโดยใช้สายไมโคร USB จากนั้นในการอัปโหลดเฟิร์มแวร์โดยใช้ OTA เราจำเป็นต้องอัปโหลดร่างแบบอนุกรมโดยใช้ micro USB เพื่อสร้างที่อยู่ IP ของ ESP นี่เป็นขั้นตอนที่จำเป็นในการอัปโหลดเฟิร์มแวร์แบบไร้สายในครั้งต่อไป เลือกพอร์ตอนุกรมที่สายเคเบิลที่แนบมาจาก เครื่องมือ -> พอร์ต
ESP8266 มาพร้อมกับไลบรารีและตัวอย่างซึ่งสามารถเข้าถึงได้โดยตรงจาก Arduino IDE เปิด Arduino IDE จากนั้นเปิดตัวอย่าง BasicOTA
แก้ไขภาพร่างโดยแทนที่“ your-ssid” และ“ your-password” ด้วย Wi-Fi SSID และรหัสผ่านของคุณจากนั้นอัปโหลดร่าง
เปิดซีเรียลมอนิเตอร์หลังจากอัปโหลดโปรแกรมสำเร็จ ตั้งค่า Baud Rate เป็น 115200 บน Serial Monitor และกดปุ่ม Reset บน NodeMCU ESP8266 การเชื่อมต่อ NodeMCU ESP8266 กับ Wi-Fi จะใช้เวลาพอสมควรในการตรวจสอบข้อมูลรับรอง Wi-Fi หาก SSID และรหัสผ่านถูกต้อง NodeMCU ESP8266 จะเชื่อมต่อกับ Wi-Fi และที่อยู่ IP ของ ESP จะแสดงบนมอนิเตอร์แบบอนุกรม
ESP8266 โปรแกรม LED กะพริบสำหรับ OTA Transfer
รหัสที่สมบูรณ์สำหรับการถ่ายโอนโปรแกรม LED กะพริบผ่าน OTA จะได้รับในตอนท้ายที่นี่เรากำลังอธิบายส่วนสำคัญบางส่วนของรหัส
การนำเข้าไลบรารีที่ต้องการเป็นขั้นตอนแรกในการเขียนโค้ด ไลบรารี ESP8266WiFi.h มีรูทีน Wi-Fi เฉพาะของ ESP8266 ที่จำเป็นในการเชื่อมต่อกับเครือข่าย นอกจากนี้ยังมีวิธีการและคุณสมบัติในการใช้งาน ESP8266 ในโหมดสถานีหรือโหมดจุดเชื่อมต่ออ่อน ESP8266mDNS.h อนุญาตให้ร่างเพื่อตอบสนองต่อการสอบถาม DNS แบบหลายผู้รับ
# รวม
กำหนดตัวแปรสำหรับ SSID และรหัสผ่านของเครือข่าย Wi-Fiที่จะเชื่อมต่อกับ ESP เราต้องเชื่อมต่อพีซีและ ESP ของเราเข้ากับเครือข่าย Wi-Fi เดียวกัน
#ifndef STASSID # กำหนด STASSID "your- ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const ถ่าน * รหัสผ่าน = STAPSK;
ESP8266 ตั้งเป็นโหมดสถานีและการเชื่อมต่อ Wi-Fi จะเริ่มโดยการให้ข้อมูลประจำตัว ESP ต้องใช้เวลาพอสมควรในการเชื่อมต่อกับโมดูล Wi-Fi หาก SSID และรหัสผ่านถูกต้องระบบจะเชื่อมต่อกับ Wi-Fi และหาก SSID และรหัสผ่านไม่ถูกต้องระบบจะรีบูตทุก ๆ 1 วินาที
Serial.begin (115200); // ตั้งค่า Baud Rate เป็น 115200 Serial.println ("Booting"); // ขั้นตอนในการเชื่อมต่อ ESP กับ Wi-Fi WiFi.mode (WIFI_STA); // ตั้ง ESP เป็นโหมดสถานี WiFi.begin (ssid, รหัสผ่าน); // Wi-Fi Credentials while (WiFi.waitForConnectResult ()! = WL_CONNECTED) // การเชื่อมต่อ ESP กับ wi-fi ใช้เวลาพอสมควรดังนั้นโปรดรอจนกว่าจะเชื่อมต่อ { Serial.println ("Connection Failed! Rebooting… "); ล่าช้า (1,000); ESP.restart (); }
ที่อยู่ IP ของ ESP จะพิมพ์บนจอภาพอนุกรมเมื่อเชื่อมต่อกับโมดูล Wi-Fi WiFi.localIP () ให้ที่อยู่ IP ของ ESP
หลังจากอัปโหลดรหัสสำเร็จแล้วให้เปิดจอภาพแบบอนุกรมที่ 115200 Baud Rate กดปุ่มรีเซ็ตและหลังจากนั้นไม่กี่วินาทีคุณจะสามารถเห็นที่อยู่ IP ของ ESP บน Serial Monitor ตอนนี้คุณจะสามารถอัปโหลดเฟิร์มแวร์แบบไร้สายได้
ไฟ LED กะพริบบน ESP8266 ผ่านการอัปเดต OTA
ก่อนอัปโหลดภาพร่างถัดไปให้ไปที่ Tools และเปลี่ยน PORT เป็น ESP ที่อยู่ IP เพื่ออัปโหลดเฟิร์มแวร์แบบไร้สายไปยัง NodeMCU
ตอนนี้อัปโหลดภาพร่าง LED กะพริบด้านล่างบน NodeMCU แบบไร้สายโดยใช้ Arduino IDE และตรวจสอบให้แน่ใจว่าพีซีและ ESPของคุณเชื่อมต่อกับเครือข่าย Wi-Fi เดียวกันและ ESP ใช้พลังงานจากแหล่งพลังงานบางส่วน
หลังจากอัปโหลดโค้ดเรียบร้อยแล้ว LED บน NodeMCU ESP8266 จะเริ่มกะพริบทุกๆ 1 วินาที คุณยังสามารถตั้งชื่อโฮสต์และรหัสผ่านในร่างเพื่อความปลอดภัยขณะอัปโหลดเฟิร์มแวร์บน ESP