ESP32+UART+TCP_Client+OTA

     在上一篇博客的基础上添加了OTA空中升级功能。

     实现的功能是一个WiFi-DTU模块,ESP32板子通过串口与下位机连接,我目前使用的下位机为51,ESP32第一次启动时,通过微信小程序连接wifi,连接上后ESP32作为tcp_client客户端与服务器进行通信,在服务器与51单片机之间传输数据,考虑到可能会有程序升级的需求,给ESP32添加了一个OTA功能。

参考文档:

乐鑫OTA官方文档:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-reference/system/ota.html

乐鑫ESP-SDK:https://www.espressif.com/zh-hans/support/download/sdks-demos?keys=&field_type_tid%5B%5D=624&field_type_tid%5B%5D=13

关于OTA的例子的路径:example/system/ota/simple_ota_example/main

      参考的乐鑫关于OTA升级例子里面的README文件,在后面启动https的时候,关于OpenSll那部分看不懂,升级总出现出错,后面给服务器安装了nginx服务器才成功实现升级。

      在乐鑫提供的ota例程里面编译不会出现问题,但是将其中的代码移植到其他工程就会出现问题,我对CMake编译不熟悉,我看网上对这个编译的问题说的比较少,不知道是不是我用法不正确,在其他工程中编译需要修改main文件夹下的CMakeLists.txt文件,让编译器包含组件,在编译时能够找到需要的头文件。

开启OTA功能

由于我编译出来的bin文件超过了1M,所有我在上图中选择了第三项,使用了自定义的分区表,分布表信息如下。

自定义分区表信息

指定更新固件的网址

最里层CMakeLists.txt

       然后将simple_ota_example.c里面的ota任务函数拷贝到自己的工程中即可,然后在需要升级的地方启动这个任务就可以了。在浏览器里面输入固件更新的网址,只要能下载固件文件就表示https服务器没问题。

获取需要更新的固件

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值