• 基于 arduino开发的esp8266 通过阿里云实现固件升级


    简介:

      既然是固件升级那么要求我们必须要每个固件指定一个版本,当然这个东西还不能只有你自己知道,你还要将这个版本信息通过 发布PUB 的方式让别人知道;然后再说说更新这回事,其实就是阿里云那边为你准备一个固件的下载链接,你要做的就是通过他所指定的方法获取该固件的URL,再通过你系统只带的 HttpUpdate 的方式,进行升级就可以了,这时候要注意的就是版本号咯,版本号也是要跟着改变的撒。

    代码实现:

    第一步:指定版本号,及 device/inform 这个 Topic

    #define ALINK_OTA_BODY_FORMAT     "{"id":"123","params":{"version": "1.0.1"}}"
    #define ALINK_OTA_TOPIC_PROP_POST "/ota/device/inform/" PRODUCT_KEY "/" DEVICE_NAME

    第二步:在之前的心跳位置,加入上报版本的信息

    boolean ota = client.publish(ALINK_OTA_TOPIC_PROP_POST, ALINK_OTA_BODY_FORMAT);

    第三步:订阅升级先关的 Topic,否则收不到系统下发的升级信息

    #define ALINK_TOPIC_OTA_UPGRADE "/ota/device/upgrade/" PRODUCT_KEY "/" DEVICE_NAME
    
    client.subscribe(ALINK_TOPIC_OTA_UPGRADE);  /* 订阅升级操作的 Topic 这个写在 setup 函数中就可以 */

    第四步:接收更新信息,并升级固件

    // 接收到固件更新相关的 Topic 的时候进行相关的操作
    WiFiClient client;
    update_url.replace("https://", "http://"); /* 简化操作,替换成 HTTP 协议 */
    t_httpUpdate_return ret = ESPhttpUpdate.update(client, update_url);

    参考资料设备端

    参考资料控制台

  • 相关阅读:
    变量和简单的数据类型
    homebrew 取消每次安装检查更新
    小程序设置全屏
    linux 文本换行
    删除mac上的缓存文件
    laravel admin 中监听后台管理数据变化
    laravel快速添加观察者
    软件安装
    跨域数据
    将spring mvc 发布到服务器端
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/12161836.html
Copyright © 2020-2023  润新知