news 2026/4/16 17:16:27

【OTA】基于STM32F103C8T6和ESP8266-01S实现云轻量服务器的OTA升级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【OTA】基于STM32F103C8T6和ESP8266-01S实现云轻量服务器的OTA升级

【OTA】基于STM32F103C8T6和ESP8266-01S实现云轻量服务器的OTA升级

文章目录

  • 前言
  • 一、实验目的
  • 二、实验过程
    • 1.搭建云服务器
      • 1.1 搭建方式选择——公有云轻量应用服务器
      • 1.2 购买公有云厂商的服务器——阿里云服务器举例
      • 1.3 搭建 HTTP 服务——宝塔管理、Nginx托管
      • 1.4 上传固件——APP2的BIN文件和CRC的TXT文件
    • 2.硬件设计
    • 3.软件设计
      • 3.1 MCU资源分配
      • 3.2 OTA升级软件整体流程
      • 3.3 BOOT流程
      • 3.4 APP1流程
      • 3.5 APP2流程
  • 三、实验结果
  • 四、参考文章
  • 总结

前言

OTA的功能,买车的人很熟悉了,车子不用送到工厂,在家联网就可以完成软件升级;
OTA具有以下优点:
1.减少人力物力,提高社会运转效率
2.增强用户粘性,会持续关注下一个版本的迭代;比如扫地机器人,用户买回家半年后,发现它突然“变聪明了”,这种“赚到了”的感觉会极大提升品牌好感

缺点也有:
1.成本增加,WIFI模块成本,MCU资源的占用;
2.变砖风险,升级过程中的意外不可控风险,有时可能还不如一个稳定的代码不更新;比如智能门锁,如果OTA过程中“变砖”或因为固件Bug导致无法开锁,对用户来说就是灾难。因此这类设备的OTA通常会采用极其保守的“双分区镜像(A/B Partition)”备份技术,确保万无一失

随着物联网以及通讯的发展,提高社会运转效率,OTA是大势所趋。

提示:以下是本篇文章正文内容,下面案例可供参考

一、实验目的

实现远程联网自动更新固件功能

二、实验过程

1.搭建云服务器

云服务器的核心作用是存放固件(.bin)和 CRC 文件(.txt),并提供一个公网可访问的「下载链接」,让 ESP8266 能通过 HTTP 协议下载这些文件

「宝塔面板 + Nginx」的组合,本质上是快速搭建了一个「静态文件 HTTP 服务器」

1.1 搭建方式选择——公有云轻量应用服务器

开发调试、局域网测试 本地电脑 HTTP 服务器
小批量设备、长期稳定运行 公有云轻量应用服务器
大批量设备、大固件文件 公有云对象存储(OSS)
需要设备管理、版本控制 开源物联网平台

在以上的选择中,我们选择了阿里云的公有云轻量应用服务器

1.2 购买公有云厂商的服务器——阿里云服务器举例

阿里云服务器购置链接

1.3 搭建 HTTP 服务——宝塔管理、Nginx托管

宝塔面板的核心作用 ——「简化复杂操作的可视化工具」
你不用直接敲 Linux 命令安装 Nginx、配置文件、管理目录权限,宝塔面板帮你做了「底层工作的封装」
宝塔是你的「操作助手」,帮你规避了复杂的 Linux 命令和 Nginx 配置语法,让你通过鼠标点击完成服务器搭建

Nginx是一款高性能的开源软件,主要用于Web 服务器、反向代理、负载均衡和缓存
Nginx 的核心作用 ——「公网请求的「中转站」和「文件分发者」
Nginx 是整个流程的「核心执行者」,也是让你的.bin 文件能被外网访问的关键,你可以把它理解为「24 小时不关机的文件下载管理员」

1.4 上传固件——APP2的BIN文件和CRC的TXT文件

2.硬件设计

蓝牙模块为串口1,PA9和PA10,负责用户接收发送信息;
WIFI模块为串口2,PA2和PA3,负责云服务器发送接收信息;

3.软件设计

3.1 MCU资源分配

MCU使用STM32F103C8T6 FLASH为64K;起始地址为0x08000000;
分为Bootloader(启动引导区),APP1(主应用区 / 默认运行区),APP2(OTA 升级区 / 备用应用区)

3.2 OTA升级软件整体流程

3.3 BOOT流程

3.4 APP1流程

3.5 APP2流程

三、实验结果

WIFI连接成功,默认需要2.4Ghz网络,手机热点需要调一下;
WIFI连云服务器成功;
从云服务器下载APP2的CRC校验码成功;
从云服务器下载APP2的固件成功
MCU计算固件的CRC校验码成功
与云服务器的校验码作比较成功
跳转到APP2应用程序


四、参考文章

ESP8266远程OTA升级stm32

总结

本文仅仅简单介绍了【OTA】基于STM32F103C8T6和ESP8266-01S实现云轻量服务器的OTA升级,评论区欢迎讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 13:54:38

Hunyuan-HY-MT1.5镜像推荐:免配置部署支持民族语言翻译实战测评

Hunyuan-HY-MT1.5镜像推荐:免配置部署支持民族语言翻译实战测评 近年来,随着多语言交流需求的不断增长,高质量、低延迟的翻译模型成为跨语言沟通的关键基础设施。特别是在中国这样一个多民族国家,对少数民族语言的支持不仅是技术…

作者头像 李华
网站建设 2026/4/16 11:15:15

d3dx10_38.dll文件丢失找不到问题 彻底解决办法分享给你

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/16 11:10:27

腾讯混元翻译模型1.5:民族语言支持部署教程

腾讯混元翻译模型1.5:民族语言支持部署教程 1. 引言 随着全球化进程的加速,跨语言沟通需求日益增长,尤其是在多民族、多方言共存的中国社会,对高质量、低延迟、支持小语种的翻译系统提出了更高要求。传统商业翻译API虽然覆盖广泛…

作者头像 李华
网站建设 2026/4/16 12:57:13

HY-MT1.5-1.8B性能调优:批处理大小对翻译速度影响实测

HY-MT1.5-1.8B性能调优:批处理大小对翻译速度影响实测 在大模型驱动的自然语言处理领域,翻译模型正朝着更高精度、更强泛化能力与更低部署门槛的方向演进。腾讯混元团队推出的 HY-MT1.5 系列翻译模型,凭借其在多语言支持、上下文理解与边缘部…

作者头像 李华
网站建设 2026/4/15 13:10:16

Matlab/Simulink中基于光伏和蓄电池的三端口

Matlab/simulink 基于光伏和蓄电池的三端口最近在捣鼓一个离网微电网项目,需要把光伏板、蓄电池和直流母线整合成一套能自主调节能量的系统。传统方案总得用两三个独立变换器,不仅成本高,控制时序还容易打架。尝试用Matlab/Simulink搭了个三…

作者头像 李华
网站建设 2026/4/16 11:10:18

基于51单片机的汽车智能雨刮器控制系统设计

第2章 自动雨刷器的总体设计 第2.1节 总体设计 2.1.1 设计思路 该设计的总体思路是通过软件控制雨刮器电机根据相应的环境进行不同的旋转,原理是利用雨水传感器感应雨量,将感应信号传输到单片机系统。 例如,当检测到小雨时,电动机…

作者头像 李华