Esp8266学习6. ArduinoOTA的使用
Esp8266学习6. ArduinoOTA的使用
一、 OTA功能简介
ESP8266 提供了 OTA(Over-The-Air)升级功能,可以通过 Wi-Fi 网络升级设备,而无需连接 USB 线进行编程。
ESP8266使用的是ArduinoOTA库,开源地址:
https://github.com/jandrassy/ArduinoOTA
使用ArduinoOTA会有一定局限:
- 占用更多的存储空间;
- 升级需要使用IDE,且电脑要和开发板在同一个网络内;
- 使用的网络端口不能充当普通串口用来查看日志等作用。
但由于它对OTA功能进行了高度的封装,使用起来极为简单,升级时省去了物理连线的麻烦。
二、引用库与代码编写
1. 安装ArduinoOTA库
在Library中搜索 ArduinoOTA并安装。
2. 使用AruduinoOTA
ArduinoOTA库已经进行了高度封装,使用只需要下面2步操作:
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>void setup() {// other setup codeArduinoOTA.begin();
}void loop() {// other loop codeArduinoOTA.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 codeArduinoOTA.begin();Serial.println("OTA ready");
}void loop() {// other loop code// OTA codeArduinoOTA.handle();
}
4. 给OTA设置密码
在启动OTA前,可以设置密码:
// OTA设置并启动ArduinoOTA.setHostname("ESP8266");ArduinoOTA.setPassword("12345678");ArduinoOTA.begin();
5. 烧录程序
启动开发板,可以看到日志输出:
三、使用OTA
1. 连接网络串口
确保 Arduino IDE和开发板在同一个网络内,在Arduino的菜单 Tools-Port: "串口号"菜单下,可以看到多了网络串口:
点击连接此网络串口。
2. 更新程序
后面对代码可以略做修改,点击Upload,程序就会通过网络上传到开发板。