我们在平常开发过程中都是使用ESP8266直接连接电脑烧录程序,但实际应用到某一场景后再想对程序进行修改或添加新特性就会比较麻烦(指将开发板从场景拔下来插到电脑上烧录新程序再插回去)。本篇文章将介绍如何使用OTA技术去除移动开发板这一过程,直接将新程序更新至目标开发板。

OTA介绍

空中下载技术(Over-the-Air Technology,OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。经过公网多年的应用与发展,已十分成熟,网络运营商通过OTA技术实现SIM卡远程管理,还能提供移动化的新业务下载功能。

正篇

本次OTA技术使用到的开源项目如下:

下载项目压缩包到本地磁盘,并解压至Arduino项目存放文件夹/libraries(如不清楚自己的项目存放文件夹可以打开Arduino,点击左上角文件 - 首选项即可查看。)

Arduino项目存放文件夹图示

将以下代码根据注释指引分别加入当前项目的对应区域:

// 头文件
#include <ElegantOTA.h>

// 由于此项目需要ESP8266WebServer,故如原项目没有ESP8266WebServer需要添加
#include <ESP8266WebServer.h>

ElegantOTA.begin(&server);  // 将本行代码加在项目中的server.begin();之前
// 也可以根据需要替换为
ElegantOTA.begin(&server, "username", "password");  // 为OTA页面添加用户名&密码验证

部分代码可能需要进行微调才能正常运行。可根据需要在插入的代码之前添加注释以做标记。

使用方法&效果

首次

添加OTA代码并修改好后烧录进开发板。

后续开发

打开Arduino,点击项目 - 导出已编译的二进制文件,将代码保存成*.bin文件(默认在项目文件夹中)

导出图示1
导出图示2,导出的bin文件和项目文件位于同一文件夹下

打开浏览器,输入http://开发板IP地址/update进入固件更新页面

固件更新页面图示

点击选择文件,选择刚刚生成的*.bin文件,点击确定后,系统将自动上传固件并升级

升级中…(升级图示1)
升级图示2,如图即为升级完成

升级完成后,开发板将自动重启并完成初始化,非常方便。

说点什么
你是我一生只会遇见一次的惊喜...
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...