不用特斯拉,用ESP8266也能實(shí)現(xiàn)OTA!
什么是OTA?
自2012年特斯拉在Model S上完成了首次整車OTA,就真正翻開了智能汽車的篇章。迄今為止特斯拉已經(jīng)進(jìn)行了上百次OTA,幾乎每隔一段時(shí)間就會(huì)實(shí)施一次升級(jí),從而讓用戶持續(xù)不斷獲得駕駛新車的感覺。

所謂OTA,就是Over-The-Air的縮寫。有人將其翻譯為“空中下載”,也有翻譯為“隔空傳輸”。
通過OTA我們無需將ESP8266與電腦使用數(shù)據(jù)線連接,而僅僅通過WiFi就可以用Arduino IDE向ESP8266上傳程序。換句話說,OTA可以為封裝好的項(xiàng)目固件升級(jí)提供很多便利。
假如您想了解如何實(shí)現(xiàn)ESP8266的OTA操作??梢詠砦覀冎谱鞯摹读慊A(chǔ)入門學(xué)用物聯(lián)網(wǎng)教程》中“ESP8266-OTA”這節(jié)課里了解詳細(xì)操作方法。
請(qǐng)注意~~ESP8266 OTA 的視頻在第23集!

找不到視頻嗎?沒問題,請(qǐng)看下圖中紅色方框標(biāo)注的就是了。

還找不到視頻嗎?沒問題,請(qǐng)點(diǎn)擊以下鏈接:
https://www.bilibili.com/video/BV1L7411c7jw?p=23

為了便于您學(xué)習(xí),以下是ESP8266實(shí)現(xiàn)OTA的基本操作介紹。請(qǐng)配合視頻使用以下資料。
1. 通過數(shù)據(jù)線上傳初始示例程序
請(qǐng)將以下鏈接中的示例程序通過Arduino IDE上傳到ESP8266。
https://wwa.lanzous.com/iqVeDelvh5i
2. 通過Arduino IDE正確選擇OTA端口
程序上傳后,請(qǐng)重新啟動(dòng)Arduino IDE。并且通過Arduino IDE正確選擇ESP8266的OTA端口。
如下圖所示:

3. 認(rèn)證并上傳程序
點(diǎn)擊Arduino IDE的上傳按鍵, IDE將會(huì)彈出對(duì)話框讓用戶輸入OTA上傳密碼。請(qǐng)根據(jù)示例程序中的setPassword
函數(shù)所設(shè)置的信息來輸入密碼。完成密碼輸入后,點(diǎn)擊確定。如果密碼無誤,您將看到程序開始上傳。

程序上傳結(jié)束后,ESP8266將會(huì)自動(dòng)重啟開發(fā)板,新的程序也將在重啟后開始運(yùn)行
4. OTA的局限性
4.1 程序占用空間變大
在OTA上傳新程序過程中, ESP8266開發(fā)板將會(huì)保持舊程序的運(yùn)行。這將導(dǎo)致ESP8266開發(fā)板的程序占用空間翻倍。假如您的程序非常復(fù)雜,占用空間很大,那么使用OTA上傳就不太適合了。
4.2 Arduino IDE無法通過OTA端口與開發(fā)板進(jìn)行串口通訊
當(dāng)Arduino IDE的上傳端口選為“網(wǎng)絡(luò)端口”,Arduino
IDE將無法獲取ESP8266的串口通訊數(shù)據(jù)。不過ESP8266的串口通訊并不會(huì)因?yàn)镺TA功能而受到影響。換句話說,您可以使用其它電腦串口通訊軟件,如Putty等,來實(shí)現(xiàn)ESP8266與電腦之間的串口通訊。
4.3 使用OTA上傳程序的電腦與ESP8266必須連接同一WiFi
若要使用OTA上傳功能,那么電腦和ESP8266必須要在同一WiFi中,否則是無法實(shí)現(xiàn)OTA上傳的。

本節(jié)教程是太極創(chuàng)客團(tuán)隊(duì)開發(fā)的免費(fèi)《零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)》教程的一部分,假如您希望了解教程的詳細(xì)信息,可以通過以下鏈接進(jìn)入該教程頁面。
https://www.bilibili.com/video/BV1L7411c7jw
本教程共分為四章。
第一章主要講解ESP8266-NodeMCU開發(fā)板的硬件知識(shí)。ESP8266-NodeMCU是一款開源物聯(lián)網(wǎng)開發(fā)板。我們將主要針對(duì)它進(jìn)行物聯(lián)網(wǎng)的學(xué)習(xí)和開發(fā)使用。
第二章主要講解互聯(lián)網(wǎng)基本知識(shí)。在學(xué)習(xí)如何開發(fā)物聯(lián)網(wǎng)以前,首先我們要對(duì)互聯(lián)網(wǎng)具備一定的認(rèn)知。這一章內(nèi)容將會(huì)為您提供充分的互聯(lián)網(wǎng)知識(shí)以備后續(xù)課程學(xué)習(xí)使用。
以上兩章主要是基礎(chǔ)知識(shí)。那么第三章就正式進(jìn)入物聯(lián)網(wǎng)學(xué)習(xí)了。第三章是以C/C++語言通過Arduino IDE來開發(fā)NodeMCU,未來我們還將開發(fā)使用MicroPython語言來開發(fā)NodeMCU。
