版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:



</div>
                                                <!--一个博主专栏付费入口-->
         
         <!--一个博主专栏付费入口结束-->
        <link rel="stylesheet" href="">
                                    <link rel="stylesheet" href="">
            <div class="htmledit_views" >
                                        <p><a href="https://github.com/espressif/esp-idf" rel="nofollow">乐鑫最新的代码下载地址</a></p>

一、esp32 OTA的配置

我是在esp-idf\examples\system\ota\simple_ota_example例子上面修改的

进入simple_ota_example文件夹里面make menuconfig  选择partition Table ->Factory app,two OTA definitions

ESP32 固件更新OTA_github

选择好之后保存退出。并且编译(我之前用的是esp8266不带系统的,做OTA的时候要生成2个文件,esp32这里生成的是一个文件。已经合并了,并且函数接口已经官方写好,使用非常简单)

 

二、程序修改

1、在例子里面 修改URL 为自己本机http服务器的地址

2、注释掉esp_https_ota_begin的如下代码(不同版本可能注释掉的不一样,我之前用的是3.1.3注释的不是这里)

这个是要配置服务器证书,我们用不到,在上面的的配置里面已经注释掉了 //.cert_pem = (char *)server_cert_pem_start,

三、启动HTTP 服务器

1、首先编译刚才配置好的工程,然后再工程里面会多出一个build文件夹,在CMD里面进入到build文件夹,在build里面新建一个文件夹get,然后把生存的simple_ota.bin文件拷贝进去,如下图 esp32生成的只有一个文件 ,他们文件合并了。

ESP32 固件更新OTA_wifi连接_02

2、启动http服务

首先启动http服务一定要到build文件夹的路径,否则程序更新的时候回产生esp_ota_write failed! err=0x5379错误,如下图启动http服务

ESP32 固件更新OTA_wifi连接_03

启动http服务之后就可以在浏览器上面打开,打开服务器运行后,构建目录的内容可以通过网址 http://localhost:8070/ 浏览到。

ESP32 固件更新OTA_wifi连接_04

四、程序下载

程序的下载根据编译的结果下载四个文件就行,如下图

ESP32 固件更新OTA_wifi连接_05

ESP32 固件更新OTA_服务器_06

五、运行结果

ESP32 固件更新OTA_wifi连接_07

从这里可以看到,更新是成功的,我在程序的开始还加了一个

    const esp_partition_t *running = esp_ota_get_running_partition();

    // Display the running partition
    ESP_LOGI(TAG, "\n\nRunning partition: %s\n", running->label);

 

然后再串口上面可以看到 不断的更新,打印出来的信息是 Running partition: ota_0 和Running partition: ota_1 说明一直在不停的自动更新。

 

 




</div>
                                                <!--一个博主专栏付费入口-->
         
         <!--一个博主专栏付费入口结束-->
        <link rel="stylesheet" href="">
                                    <link rel="stylesheet" href="">
            <div class="htmledit_views" >
                                        <p><a href="https://github.com/espressif/esp-idf" rel="nofollow">乐鑫最新的代码下载地址</a></p>