• 【ESP32_8266_WiFi (十五)】ESP8266 OTA 操作说明


    ESP8266 OTA 操作说明

    所谓OTA,就是Over-The-Air的缩写。有人将其翻译为“空中下载”,也有翻译为“隔空传输”。无论如何翻译,对于ESP2866来说,通过OTA我们无需将ESP8266与电脑连接,而仅仅通过WiFi就可以用Arduino IDE向ESP8266上传程序。

    1 通过数据线上传初始示例程序

    首先,请将以下示例程序通过Arduino IDE上传到ESP8266。

    /**********************************************************************
    项目名称/Project          : 零基础入门学用物联网
    程序名称/Program name     : OTA_Flash_Example
    团队/Team                : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
    作者/Author              : CYNO朔
    日期/Date(YYYYMMDD)     : 20200713
    程序目的/Purpose          : 
    本示例程序用于演示ESP8266的OTA功能。通过本程序,我们将启动ESP8266的OTA程序上传功能。
    我们将无需使用连接线将ESP8266与电脑进行连接,而可以使用WiFi对ESP8266上传程序。
     
    如需了解本程序的详细说明,请参考以下链接:
    http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-tips/esp8266-ota/
    -----------------------------------------------------------------------
    其它说明 / Other Description:
    本程序为太极创客团队制作的免费视频教程《零基础入门学用物联网 》中一部分。该教程系统的
    向您讲述ESP8266的物联网应用相关的软件和硬件知识。以下是该教程目录页:
    http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/                    
    ***********************************************************************/
    #include 
    #include 
    #include 
     
    // 闪烁时间间隔(秒)
    const int blinkInterval = 2; 
     
    // 设置wifi接入信息(请根据您的WiFi信息进行修改)
    const char* ssid = "taichimaker";
    const char* password = "12345678";
     
    Ticker ticker;
     
    void setup() {
      Serial.begin(9600);            
      Serial.println("");
      pinMode(LED_BUILTIN, OUTPUT);
     
      ticker.attach(blinkInterval, tickerCount);  // 设置Ticker对象
      
      connectWifi();
     
      // OTA设置并启动
      ArduinoOTA.setHostname("ESP8266");
      ArduinoOTA.setPassword("12345678");
      ArduinoOTA.begin();
      
      Serial.println("OTA ready");
    }
    void loop() {
      ArduinoOTA.handle();
    }
     
    // 在Tinker对象控制下,此函数将会定时执行。
    void tickerCount(){
      digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    }
     
    void connectWifi(){
      //开始连接wifi
      WiFi.begin(ssid, password);
     
      //等待WiFi连接,连接成功打印IP
      while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi Connected!");  
      Serial.print("IP address:\t");            
      Serial.println(WiFi.localIP());          
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70

    2 通过Arduino IDE正确选择OTA端口

    程序上传后,请重新启动Arduino IDE。并且通过Arduino IDE正确选择ESP8266的OTA端口。

    在这里插入图片描述

    3 认证并上传程序

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

    程序上传结束后,ESP8266将会自动重启开发板,新的程序也将在重启后开始运行。


    4 OTA的局限性

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


    内容来自 -----> 太极创客
    详情可见太极创客官网,内有Arduino、ESP32等详细教程
    http://www.taichi-maker.com

  • 相关阅读:
    四、ref与DOM-findDomNode-unmountComponentAtNode
    Centos7原生hadoop环境,搭建Impala集群和负载均衡配置
    从JDK8升级到JDK17
    MEX有关的学习
    20个常用的 Git 指令用法
    Spring框架两大核心模块(8月5号)
    【物联网产品架构】如何构建物联网产品路线图
    海量数据处理利器 Roaring BitMap 原理介绍
    Vue48-ref属性
    c++网络编程
  • 原文地址:https://blog.csdn.net/K3169/article/details/127893874