Neptune开发板 MQTT-OTA升级实验 原创

远道可思
发布于 2021-9-8 23:13
浏览
7收藏

本次将通过MQTT下发OTA升级指令,完成OTA升级固件实验。

1、环境准备
1.1 开发环境、编译环境搭建,参考官方文档,参考链接如下:
Neptune开发板的环境搭建及使用
1.2 Neptune开发板 openharmony V1.1.0 LTS 版本获取
git clone https://gitee.com/hihopeorg_group/neptune-harmony-os1.1-iot.git
2、材料准备
1、Neptune HarmonyOS物联网 IOT模组
3、使用库介绍
本次使用库都是使用W800 SDK内置的mqtt库与ota库完成:
MQTT库位于:
//device/winnermicro/neptune/sdk_liteos/src/app/mqtt
OTA库位于:
//device/winnermicro/neptune/sdk_liteos/src/app/ota
关于本次MQTT使用就不过多赘述详见Neptune开发板 使用libemqtt 点亮LED和关闭LED
W800 SDK提供HTTP OTA升级功能,同时只需使用此函数即可完成:
Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区
关于参数设置(本次设置一个参数即可):

typedef struct _HTTPParameters
{
    CHAR*                  Uri;        
    CHAR*                  ProxyHost;  
    UINT32                  UseProxy ;  
    UINT32                  ProxyPort;
    UINT32                  Verbose;
    CHAR*                  UserName;
    CHAR*                  Password;
    HTTP_AUTH_SCHEMA      AuthType;

} HTTPParameters;

例如ota库中wm_http_fwup.c中只需要设置URL参数即可。
Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区

4、编写代码
关于MQTT部分直接使用Neptune开发板 使用libemqtt 点亮LED和关闭LED中代码
4.1 OTA升级部分:

static int HTTP_OTA(void)
{
    HTTPParameters httpParams;
    memset(&httpParams, 0, sizeof(HTTPParameters));
    httpParams.Uri = URL_ADDR;
    printf("Location: %s\n",httpParams.Uri);
	httpParams.Verbose = TRUE;
	return http_fwup(httpParams);
}

4.2 增加MQTT命令
Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区
5、搭建HTTP文件服务器:
使用HFS搭建:参考本篇文章
6、编译,烧录,测试
1、查看版本号:V0.1,测试结果:

Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区
2、连接MQTT服务器并下达LED亮灭指令测试结果:
Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区

3、下达OTA指令测试结果:
Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区
4、升级成功,版本号为V0.2,测试结果:
Neptune开发板 MQTT-OTA升级实验-鸿蒙开发者社区
需要注意的问题在//device/winnermicro/neptune/sdk_liteos/src/os/liteos/wm_osal_liteos.c129~132行需屏蔽,否则OTA不成功。

129    if (stk_start != NULL) {
130        printf(" --- task name %s\n", name);
131       assert(stk_start == NULL);
132    }

总结:本次实验基本达到要求,完成了MQTT下发指令,HTTP OTA升级的需求,但对外网HTTP OTA需要再做多参数的才能完成,同时发现了MQTT不能长效化的运行,有bug的出现需要再调试,对wm_osal_liteos.c中129~132行出现的问题还需了解

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
ota_sample.rar 6.54K 31次下载
已于2021-9-9 07:20:12修改
7
收藏 7
回复
举报
2条回复
按时间正序
/
按时间倒序
鸿联
鸿联

OTA升级固件的文章不多,赞一个!

1
回复
2021-9-9 18:13:52
Soon_L
Soon_L

学习收藏

1
回复
2021-10-5 17:54:07
回复
    相关推荐