OTA简介
什么是OTA下载?空中下载(OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。之前做的OLED网络时钟更新代码要反复拆装十分不便,于是在机缘巧合下了解到了esp8266的OTA技术,show time!
OTA怎么用
在网上疯狂的搜也没有找到合适的、简洁明了的示例,于是在B站找到了太极创客.,感谢UP的团队整理了这么多的资料,他们官网也有OTA资料,可以去借鉴,以下是个人理解,有错欢迎指正
基本控制原理
先让8266连上WiFi,然后让8266和PC在同一局域网下进行Over-The-Air传输代码,当单片机正常运行时,收到PC发来的OTA指令,单片机要保存当前的代码,在跳转到OTA传输函数去执行传输新代码,如果这时候取消传输了,程序还能回到原始代码,这全靠loop里面的 ArduinoOTA.handle()函数了,具体的底层我们先不管,接下来是代码,如下:
#include <ESP8266WiFi.h>
#include <ArduinoOTA.h>//引入OTA库,这是关键
// 设置wifi接入信息,PC也要连这个WiFi
const char* ssid = "ssid";
const char* password = "password";
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());
}
void setup() {
Serial.begin(9600);
Serial.println("");
connectWifi();
// OTA设置并启动,以下两行是账户密码设置,使工程具有保密性,也可去除,直接下载
ArduinoOTA.setHostname("ESP8266");
ArduinoOTA.setPassword("12345678");
ArduinoOTA.begin();
Serial.println("OTA ready");
}
void loop() {
ArduinoOTA.handle();//OTA回调函数,相当于OTA中断处理
}
烧录代码
点击 工具 选择OTA 端口,再点击上传即可(一定要都在同一个WiFi下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)