不用特斯拉,用ESP8266也能实现OTA!
什么是OTA?
自2012年特斯拉在Model S上完成了首次整车OTA,就真正翻开了智能汽车的篇章。迄今为止特斯拉已经进行了上百次OTA,几乎每隔一段时间就会实施一次升级,从而让用户持续不断获得驾驶新车的感觉。

所谓OTA,就是Over-The-Air的缩写。有人将其翻译为“空中下载”,也有翻译为“隔空传输”。
通过OTA我们无需将ESP8266与电脑使用数据线连接,而仅仅通过WiFi就可以用Arduino IDE向ESP8266上传程序。换句话说,OTA可以为封装好的项目固件升级提供很多便利。
假如您想了解如何实现ESP8266的OTA操作。可以来我们制作的《零基础入门学用物联网教程》中“ESP8266-OTA”这节课里了解详细操作方法。
请注意~~ESP8266 OTA 的视频在第23集!

找不到视频吗?没问题,请看下图中红色方框标注的就是了。

还找不到视频吗?没问题,请点击以下链接:
https://www.bilibili.com/video/BV1L7411c7jw?p=23

为了便于您学习,以下是ESP8266实现OTA的基本操作介绍。请配合视频使用以下资料。
1. 通过数据线上传初始示例程序
请将以下链接中的示例程序通过Arduino IDE上传到ESP8266。
https://wwa.lanzous.com/iqVeDelvh5i
2. 通过Arduino IDE正确选择OTA端口
程序上传后,请重新启动Arduino IDE。并且通过Arduino IDE正确选择ESP8266的OTA端口。
如下图所示:

3. 认证并上传程序
点击Arduino IDE的上传按键, IDE将会弹出对话框让用户输入OTA上传密码。请根据示例程序中的setPassword
函数所设置的信息来输入密码。完成密码输入后,点击确定。如果密码无误,您将看到程序开始上传。

程序上传结束后,ESP8266将会自动重启开发板,新的程序也将在重启后开始运行
4. OTA的局限性
4.1 程序占用空间变大
在OTA上传新程序过程中, ESP8266开发板将会保持旧程序的运行。这将导致ESP8266开发板的程序占用空间翻倍。假如您的程序非常复杂,占用空间很大,那么使用OTA上传就不太适合了。
4.2 Arduino IDE无法通过OTA端口与开发板进行串口通讯
当Arduino IDE的上传端口选为“网络端口”,Arduino
IDE将无法获取ESP8266的串口通讯数据。不过ESP8266的串口通讯并不会因为OTA功能而受到影响。换句话说,您可以使用其它电脑串口通讯软件,如Putty等,来实现ESP8266与电脑之间的串口通讯。
4.3 使用OTA上传程序的电脑与ESP8266必须连接同一WiFi
若要使用OTA上传功能,那么电脑和ESP8266必须要在同一WiFi中,否则是无法实现OTA上传的。

本节教程是太极创客团队开发的免费《零基础入门学用物联网》教程的一部分,假如您希望了解教程的详细信息,可以通过以下链接进入该教程页面。
https://www.bilibili.com/video/BV1L7411c7jw
本教程共分为四章。
第一章主要讲解ESP8266-NodeMCU开发板的硬件知识。ESP8266-NodeMCU是一款开源物联网开发板。我们将主要针对它进行物联网的学习和开发使用。
第二章主要讲解互联网基本知识。在学习如何开发物联网以前,首先我们要对互联网具备一定的认知。这一章内容将会为您提供充分的互联网知识以备后续课程学习使用。
以上两章主要是基础知识。那么第三章就正式进入物联网学习了。第三章是以C/C++语言通过Arduino IDE来开发NodeMCU,未来我们还将开发使用MicroPython语言来开发NodeMCU。
