ESP32入门基础之空中升级(OTA)
Posted while(1)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP32入门基础之空中升级(OTA)相关的知识,希望对你有一定的参考价值。
文章目录
参考资料:
1 OTA简介
2 OTA操作流程
3 OTA操作实例
3.1 使用http实现简单的OTA升级
参考例程:examples\\system\\ota\\simple_ota_example
3.1.1 例程简介
3.1.2 在本地生成简单的HTTP服务器
-
选择要升级的程序(bin文件);
-
打开命令行界面,并进入到包含要升级的程序的目录文件夹下;
-
输入命令 python2 -m SimpleHTTPServer 8070(有些可能是python -m SimpleHTTPServer 8070),并执行;
-
保持命令行模式软件不要关闭;
-
在浏览器输入http://xxx.xxx.xxx.xxx:8070,验证http服务器是否成功;
命令行界面也有提示输出,执行的是GET操作;
-
在接下来的实验中也要保持命令行模式不要关闭。
3.1.3 配置simple_ota_example例程
- 不要关闭http服务器的命令行界面;
- 重新打开一个命令行界面,进入simple_ota_example例程, 使用 idf.py menuconfig 指令进入菜单配置模式;
- 配置好串口、所连接的wif、确保分区表有两个OTA分区
- 配置要升级的程序的URL
- 最后编译程序并烧录到ESP32开发板
- 到此说明程序升级完成
3.1.4 程序分析
- 芯片初始化及wifi连接
void app_main(void)
{
/*省略了代码,主要作用是芯片初始化、wifi连接等*/
xTaskCreate(&simple_ota_example_task, "ota_example_task", 8192, NULL, 5, NULL);
}
void simple_ota_example_task(void *pvParameter)
{
ESP_LOGI(TAG, "Starting OTA example");
esp_http_client_config_t config = {
.url = CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL, //这里即升级程序的URL,在菜单中配置
.cert_pem = (char *)server_cert_pem_start, //https所需要的认证,但这里是http,所以并不需要用到
.event_handler = _http_event_handler,
};
esp_err_t ret = esp_https_ota(&config); //连接http,并下载升级程序
if (ret == ESP_OK) {
esp_restart(); //下载程序成功,重启即执行升级程序
} else {
ESP_LOGE(TAG, "Firmware upgrade failed");
}
//一切正常的话不会执行到这里,如下升级程序下载失败则执行下列程序
while (1) {
vTaskDelay(1000 / portTICK_PERIOD_MS);
ESP_LOGI(TAG, "while ---");
}
}
感觉这个例程没有太大的实用性,只是帮助了解OTA的基本操作。
以上是关于ESP32入门基础之空中升级(OTA)的主要内容,如果未能解决你的问题,请参考以下文章
ESP32学习笔记(25)——OTA(空中升级)接口使用(简化API)