ESP32-OTA

news2024/11/27 20:39:04

文章目录

      • 1. 什么是OTA?
      • 2. OTA的基本原理
      • 3. ESP32远程OTA
        • 步骤:
          • 3.1 将需要升级的程序放在该目录下
          • 3.2 启动HTTP服务器
          • 3.3 配置
          • 3.4 烧录程序
          • 3.5 上电测试
          • ESP32端
      • 4. 问题:
      • 5. 通过命令控制OTA
      • 6. 参考:

1. 什么是OTA?

OTA(Over-The-Air)是一种通过网络无线传输固件或软件更新的技术。它允许远程更新设备上的固件或软件,而无需物理连接或手动干预。OTA 技术在许多领域得到广泛应用,包括智能家居、物联网设备、嵌入式系统等。

OTA 的主要优势包括:

  1. 远程更新:通过 OTA,可以在设备部署在远程位置时对其进行更新,无需人工干预或物理连接。
  2. 方便性和灵活性:设备可以通过无线网络自动下载和安装更新,用户不需要手动介入,提供了更大的便利性和灵活性。
  3. 效率和成本节约:OTA 可以大大降低更新固件或软件的成本和工作量,不再需要人工逐个设备更新,节约了时间和资源。
  4. 功能增强和错误修复:通过 OTA,可以在设备上快速部署新功能、修复错误或漏洞,提供更好的用户体验和安全性。

2. OTA的基本原理

OTA的原理是在服务器端(本地服务器或者远程服务器)放置新的固件,被升级设备访问服务器获取固件后即可将固件放到被升级设备的OTA分区升级程序。

3. ESP32远程OTA

刚开始参考的是乐鑫官方的教程,但是根据其教程部署http服务器后会访问失败。然后修改了一下http服务器的搭建方式,使用python搭建http服务器后成功。

步骤:

根据乐鑫官方搭建http服务器的部分使用删除线描述。

将ota需要用到的ca_cert.pem文件放到服务器

image-20230527210441216

输入命令openssl req -x509 -newkey rsa:2048 -keyout ca_key.pem -out ca_cert.pem -days 365 -nodes

输入配置信息

image-20230527210728893

3.1 将需要升级的程序放在该目录下

我用的是宝塔,具体上传方式可以根据自己常用的来。

把需要升级的.bin程序文件放到目录下,因为使用python搭建http服务器的原因,所以ca_cert.pem和ca_key.pem这两个文件不需要放到服务器

image-20230527211156418

3.2 启动HTTP服务器

命令:

openssl s_server -WWW -key ca_key.pem -cert ca_cert.pem -port 8070

nohup python -m SimpleHTTPServer 8070 &

  • nohup是使程序运行在后台的一种方式,也可以不用nohup &,程序直接运行在终端,方便查看日志

下图出现nohup.out表示服务器运行成功,nohup.out将原先在终端中输出的内容放到nohup.out中。我用的是腾讯云服务器,刚装的系统中是有python的,如果没有python需要自行安装一下

image-20230527224648972

3.3 配置

使用ESPIDF新建ota工程,ESPIDF开发环境搭建教程:https://blog.csdn.net/weixin_51954217/article/details/130462085?spm=1001.2014.3001.5501

image-20230527225447462

点击界面左下角的设置按钮,进入SDK configuration配置工程

image-20230527211742837

注意:服务器地址设置为http,不要https

3.4 烧录程序

image-20230527225725316

3.5 上电测试

image-20230527212215237

查了一下好像是SSL证书的问题

image-20230527213113621

又排查了一下,是因为刚才设置的域名为https的原因,然后将https改为http后用浏览器直接访问也可以。

http服务器直接使用python运行,命令:nohup python -m SimpleHTTPServer 8070 &同上面3.2启动mqtt服务器

image-20230527222213120

成功

用浏览器也是可以访问的到的

image-20230527222747889

ESP32端

image-20230527222456705

因为ota的程序是读取dht11温湿度的程序,然后dht11没有连接,所以会出现读取失败。但是说明ota成功。

板子重启后还是运行的ota程序

4. 问题:

image-20230527212215237

查了一下好像是SSL证书的问题

image-20230527213113621

5. 通过命令控制OTA

待补充

6. 参考:

  • https://blog.csdn.net/felix_tao/article/details/126075783

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/577200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何用 GPT-4 帮你写游戏(以24点游戏举例)

目录 给我一个24点游戏 游戏规则 GPT给的代码 ​改进 再改进 最近呢掀起了一阵GPT-4的热潮,很多人都想用GPT-4,这里呢我就打一个广告(嘿嘿),如果不知道国内如何使用GPT的,可以看看这个博客:G…

STC89C52+DHT20设计的环境温湿度检测仪

一、项目背景 本项目基于STC89C52单片机和DHT20温湿度传感器,实现了一款环境温湿度检测仪。通过传感器采集环境的温度和湿度数据,利用IIC接口的OLED显示屏显示出来,便于用户实时监测环境温湿度状态。 在现代社会,人们对环境温湿度的要求越来越高。无论是工作场所还是居住…

局部特征匹配(LoFTR) 基于全局匹配的光流学习(GMFlow)

文章目录 特征匹配(稀疏匹配与稠密匹配)《LoFTR: Detector-Free Local Feature Matching with Transformers》【CVPR21】《GMFlow: Learning Optical Flow via Global Matching》【CVPR22】光流的定义第一个问题第二个问题方法该框架下存在的一个问题 Pr…

智慧园区管理平台优势详解

随着数字化和智能化的时代到来,越来越多的园区开始使用智慧园区管理平台来提高管理效率,降低管理成本和提升服务质量。智慧园区管理平台是一种通过智能化技术与物联网技术进行连接,对园区进行综合管理、智能化监控的信息化平台。下面将详细介…

大数据:云平台,阿里云VPC创建,创建安全组,云服务器ECS,

大数据:云平台 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学&…

Seata之@GlobalTransactional验证

下订单 -> 减库存 -> 扣余额 -> 改(订单)状态 1.数据库初始情况: 2.正常下单 http://localhost:2001/order/create?userId1&productId1&count10&money100 3.超时异常,没加GlobalTransactional 模拟Accou…

RabbitMQ系列(24)--RabbitMQ集群搭建

前言:当RabbitMQ服务器遇到内存崩溃、机器掉电或者主板故障等情况,该怎么办?单台RabbitMQ服务器可以满足每秒1000条消息的吞吐量,那如果应用需要RabbitMQ服务满足每秒10万条消息的吞吐量呢?购买昂贵的服务器来增强单机RabbitMQ服务的性能不…

阿里云ECS部署chat-web代理访问

1、ECS服务器申请 使用阿里云账号购买了一个美国(弗吉尼亚)的2C/2G的CentOS7.9 x64服务器。 2、系统版本升级 CentOS7.9默认的python和pip版本都是3.6的,需要升级到3.9以上,升级步骤百度,大致如下: wget…

vue diff算法与虚拟dom知识整理(12) patch精细化比较新增子节点

上文中我们编写了patch函数中对相同节点的几种处理 将简单的都写完了 但还留下了最麻烦的子节点比较 既新旧节点都有子节点 需要 精细化比较 我们先将src下的入口文件index.js 代码改成这样 import h from "./snabbdom/h"; import patch from "./snabbdom/pat…

C++实现Canny边缘检测(原理+底层代码)

文章目录 一、算法原理二、环境配置三、算法详解3.1、数据结构 Mat3.2、高斯滤波器的C实现3.3、用一阶偏导有限差分计算梯度幅值和方向 三、项目实战:C实现Canny边缘检测 一、算法原理 canny边缘检测算法步骤: 1、使用高斯滤波器对图像进行平滑处理。 2、…

recurdyn履带问题

1.问题:整车履带仿真出错,车辆越障时遇到障碍物直接弹开 思路: 关于这类模型需要调节履带和地面之间的接触参数、Bushing force,还有驱动函数。 弹飞了是因为接触刚度太大了,调小一些,在100以内继续调节…

从代码角度理解DETR

一个cnn的backbone, 提图像的feature, 比如, HWC.同时对这个feature做position_embedding.然后二者相加 (在Transformer里面就是二者相加)输入encoder,输入decoder (这里有object queries.)然后接Prediction Heads, 比如分类和回归. 下面的代码参考自: https://github.com/fac…

单片机原理及应用——持续更新

目录 一、单片机概述 1、单片机简介 2、单片机的特点 3、MSC-51系列与AT89S5x系列单片机 (1)MSC-51系列单片机 (2)AT89S5x系列单片机 二、AT89S52单片机的片内硬件结构 1、AT89S52单片机的硬件组成 2、AT89S52单片机的引…

Springboot +spring security,OAuth2 四种授权模式概念

一.简介 这篇文章来讲下Spring Security OAuth2 四种授权模式。 二.什么是OAuth2 OAuth 2.0 是一种用于授权的开放标准,允许用户授权第三方应用程序访问他们的资源,例如照片、视频或其他个人信息。OAuth 2.0 提供了一些不同的授权模式,包括…

我有一个朋友,分享给我的字节跳动测试开发真题

朋友入职已经两周了,整体工作环境还是非常满意的!所以这次特意抽空给我写出了这份面试题,而我把它分享给小伙伴们,面试&入职的经验! 大概是在3月中的时候他告诉我投递了简历,5月的时候经过了3轮面试收获…

Windows10中搭建ftp服务器以实现文件传输

开启ftp服务: 1、打开控制面板》程序和功能》 启用或关闭Windows功能 2、找到Internet Information Services,开启以下服务 勾选之后,ftp服务开启成功。 配置IIS,搭建ftp 1、WinS键搜索iis,回车打开》右击网站 》添加…

QUIC 协议:特性、应用场景及其对物联网/车联网的影响

什么是 QUIC 协议 QUIC(Quick UDP Internet Connections)是由谷歌公司开发的一种基于用户数据报协议(UDP)的传输层协议,旨在提高网络连接的速度和可靠性,以取代当前互联网基础设施中广泛使用的传输控制协议…

/dev/kmem /proc/kallsyms

文章目录 前言概述使用 /dev/kmem使用 /proc/kallsyms验证进阶 前言 上篇文章我们介绍了 /dev/mem,今天再来介绍下它的好兄弟 /dev/kmem crw-r----- 1 root kmem 1, 1 May 26 06:10 /dev/mem crw-r----- 1 root kmem 1, 2 May 26 06:10 /dev/kmem对比一下&#xf…

第十四届全国大学生数学竞赛决赛(非数类)游记+答案解析

2023/5/27 20:08:今天早上9:00~12:00考了数学竞赛国赛。广州是真的热啊!西安才17度,还下着小雨,到广州之后那个艳阳直接给我人干废了,去酒店的路上步行了20分钟真的要死了已经。 拿到卷子的我是崩溃的,用正…

计算机视觉:填充(padding)技术

本文重点 在前面的课程中,我们学习了使用3*3的过滤器去卷积一个5*5的图像,那么最终会得到一个3*3的输出。那是因为 33 过滤器在 55 矩阵中,只可能有 33 种可能的位置。 这背后的数学解释是,如果我们有一个nn的图像,用ff的过滤器做卷积,那么输出的维度就是(n−f+1)(n−f…