一、版本号

1、目的

在用腾讯云这个平台做ota的时候,我发现固件升级这里,他判断设备成功与否的条件,只是4G模块接收成功固件包,而并不是设备升级后再上报成功或是失败。所以我们通常的做法就是,把我们程序的版本号也上传。通过版本号判别是否ota成功。

2、平台部分

直接在平台增加一个字符串的物联型,用来作版本号上传。

3、程序部分

做一个const变量,作版本号。

然后初始化完成之后,先发版本号。

截不了那么长的图,直接贴代码

void Up_Version(void)
{
  uint8_t txbuf[256] = {0};
  sprintf((char *)txbuf,"AT+TCMQTTPUB=\"$thing/up/property/M9P2EZ31V0/Device01\",1,\"{\\\"method\\\":\\\"report\\\"\\,\\\"clientToken\\\":\\\"123\\\"\\,\\\"params\\\":{\\\"VERSION\\\":\\\"%s\\\"}}\"\r\n",verson);
  Esp8266_send((uint8_t *)txbuf, strlen((char*)txbuf));
  Esp8266.send_cmd = UPDATE;
  Esp8266.at_cmd = TCOTASET;
  g16_Timer10MS_AtSend_Count = 0;
}

二、平台操作

1、上传固件

2、升级验证

1、升级前

串口打印可以看到上报的版本号是v1.0.0

从这边或者小程序可以看到,现在版本号是v1.0.0

2、升级后

在平台点固件升级。

点击升级

升级成功

然后通过发送到腾讯云的报文

可以看到是升级成功的。但是腾讯云这里小程序因为很久没搞了,小程序升级是可以点的,不知道为什么这个版本号不能显示,但是无伤大雅,能够在平台网页上看到是1.0.1,升级成功

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐