基于Arduino IDE开发,ESP32远程烧录OTAWebUpdater

一、前言

        由于有时候单片机放置的位置受到遮挡或其他原因,引出烧录线比较麻烦,因ESP32有强大的WiFi功能,固想寻找有无可能通过无线远程烧录的办法。经过查阅借鉴,找到了通过OTA的方式进行无线烧录。

        关于OTA等一些介绍可进行上网查阅,本文仅进行实操过程记录,学习记录如下。

二、准备

在Arduino IDE工具中选择开发板。选择好开发板型号后,打开示例程序OTAWebUpdater,路径如下图。

注意,这个库是默认的,不需要额外下载。

一开始以为是需要自行安装的库,下载了之后找不到网上一些教程的例程。如下图,是另外的库,具体用法有兴趣可以自行了解。由于许久没打开这个软件了,有些设置是默认的,发现把开发板的型号配置好,就能找到如上图的例程。

三、实现过程

首先,打开示例程序OTAWebUpdater,找到如下代码。

此处,对host,ssid,password进行修改。

注意,此处修改的是你需要连入wifi的信息,确保无误。

将代码烧录到单片机,烧录完成后,打开串口助手。

代码设置的串口波特率为115200,接受设置ASCII码格式。准备完毕,按复位EN键,重启单片机,复位后会列出一些基本信息,随后一直发送.....,点点,就是在连接中。连接完成后,发送连接消息,并发送自己的IP地址,随后停止发送。

在此过程中,如果发现一直在发点点,就应该是前面的ssid和password错误,检查下。

获取IP地址后,打开浏览器,输入IP地址回车。出现如下界面。

输入

账号:admin

密码:admin

输入账号密码后,登录如下界面。

此处账号密码在程序中设置,需要可以自行更改。

下面我们准备我们需要烧录的测试代码。

在例程代码中添加所需代码。

定义LED引脚,我这里板子接的是2号脚。

const int led = 2;

初始化引脚。

pinMode(led, OUTPUT);

闪烁代码。

  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);

如果LED灯能够闪烁,则证明通过OTA的方式烧录成功。

Arduino IDE编译出来的是ino文件,此处我们需要bin文件。

这里建议先将代码ino文件另存为在自己想放的地方,保存好路径,以免导出bin文件保存默认为路径,等下找不到。

选择“导出已编译的二进制文件”。

随后,选择文件,选择我们生成的bin,点击Update。

看网上很多参考都是直接成功的,但是我这里出现了点问题。

具体解决方法参考文章:

如何实现 ESP32 固件的 OTA 在线升级更新_esp32 serverindex update-CSDN博客初始配置、启动nginx后用浏览器访问127.0.0.1时出现404 not found解决方法_nginx 127.0.0.1不能访问-CSDN博客解决步骤:

找到Server Index Page部分代码,将action='#'改成action='update'。

修改完毕,重新烧录。

(注意,此处例程代码和测试代码两份都需要修改,修改完代码,需要将例程代码重新通过串口烧录进去到ESP32,因为这个网页是写在ESP32上的,不仅仅是把需要通过OTA烧录的测试代码修改就可以了。)

这里我修改完之后,会出现404,但是灯是可以闪烁的,则证明可以烧录。

我又重新试了下,不会出现404,结果如下图。

至此,ESP远程烧录实验完毕。电灯大师成就+1

  • 41
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值