Esp8266学习6. ArduinoOTA的使用

Esp8266学习6. ArduinoOTA的使用

  • 一、 OTA功能简介
  • 二、引用库与代码编写
    • 1. 安装ArduinoOTA库
    • 2. 使用AruduinoOTA
    • 3. 连接WIFI
    • 4. 给OTA设置密码
    • 5. 烧录程序
  • 三、使用OTA
    • 1. 连接网络串口
    • 2. 更新程序

Esp8266学习6. ArduinoOTA的使用_第1张图片

一、 OTA功能简介

ESP8266 提供了 OTA(Over-The-Air)升级功能,可以通过 Wi-Fi 网络升级设备,而无需连接 USB 线进行编程。

ESP8266使用的是ArduinoOTA库,开源地址:
https://github.com/jandrassy/ArduinoOTA

使用ArduinoOTA会有一定局限:

  • 占用更多的存储空间;
  • 升级需要使用IDE,且电脑要和开发板在同一个网络内;
  • 使用的网络端口不能充当普通串口用来查看日志等作用。

但由于它对OTA功能进行了高度的封装,使用起来极为简单,升级时省去了物理连线的麻烦。

二、引用库与代码编写

1. 安装ArduinoOTA库

在Library中搜索 ArduinoOTA并安装。
Esp8266学习6. ArduinoOTA的使用_第2张图片

2. 使用AruduinoOTA

ArduinoOTA库已经进行了高度封装,使用只需要下面2步操作:

#include 
#include 
#include 
#include 

void setup() {
  // other setup code
  ArduinoOTA.begin();
}

void loop() {
  // other loop code
  ArduinoOTA.handle();
}

3. 连接WIFI

const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";

void setup() {
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi Connected!");
  Serial.print("IP address:\t");            
  Serial.println(WiFi.localIP());   
  
  // OTA code
  ArduinoOTA.begin();
  Serial.println("OTA ready");
}

void loop() {
  // other loop code
  
  // OTA code
  ArduinoOTA.handle();
}

4. 给OTA设置密码

在启动OTA前,可以设置密码:

  // OTA设置并启动
  ArduinoOTA.setHostname("ESP8266");
  ArduinoOTA.setPassword("12345678");
  ArduinoOTA.begin();

5. 烧录程序

启动开发板,可以看到日志输出:
Esp8266学习6. ArduinoOTA的使用_第3张图片

三、使用OTA

1. 连接网络串口

确保 Arduino IDE和开发板在同一个网络内,在Arduino的菜单 Tools-Port: "串口号"菜单下,可以看到多了网络串口:

Esp8266学习6. ArduinoOTA的使用_第4张图片
点击连接此网络串口。

2. 更新程序

后面对代码可以略做修改,点击Upload,程序就会通过网络上传到开发板。

你可能感兴趣的:(#,ESP单片机,OTA,ESP8266)