您现在的位置是:首页 >技术教程 >基于GD32F1的OTA的开发-Part One--阿里云搭建网站首页技术教程

基于GD32F1的OTA的开发-Part One--阿里云搭建

HHONGQI123 2023-06-10 04:00:03
简介基于GD32F1的OTA的开发-Part One--阿里云搭建

本文分为三个部分,这里是第一部分:
第一部分,介绍阿里云搭建;
第二部分,介绍bootloader设计;
第三部分,OTA更新操作

背景介绍之@物联网平台搭建**

为了完成GD32的OTA的升级,需要搭建一个物联网服务器。本人以阿里云为例,讲解云平台服务器搭建的过程。服务器与设备之间的通讯采用MQTT方式。

一 申请阿里云平台

  • 1.1 个人用户可以登录阿里云的平台:https://www.aliyun.com/,注册账户。可以用淘宝或者支付宝账号登录。

  • 1.2 点击免费使用
    在这里插入图片描述

  • 1.3 申请阿里云——物联网平台

在这里插入图片描述

  • 1.4 创建产品。参数选择按照以下的方式
    重要的参数配置如下:
    节点类型: 直连设备
    通讯方式:蜂窝(2g,4g)
    数据格式:透传
    其它参数不重要,可以随便选择。
    在这里插入图片描述
    1.5 创建设备
    有了产品之后,可以创建设备。设备的名字可以根据需要设置。
    在这里插入图片描述
  • 1.6 点击设备的参数,设备采用是一机一密码的方式。由于这次更新的协议,采用MQTT,所以MQTT参数很重要。用于后期的设备的登录、订阅之类的。
    在这里插入图片描述

二 选择无线模块。

选择一款可以支持无线的模块,同时需要购买好sim卡和天线。在淘宝上面和立创商城上面有不少模块可以选择。如果能支持的阿里云的特供设备,链接操作更加简单。本文采用基于串口的塔石的E30的无线传感器模块,该模块在淘宝专卖店有卖。不过一定要记得购买sim卡和天线。

三 驱动代码编写

接下来就是编写gd32的驱动代码,用来配置无线模块,订阅主题。

  • 3.1 上电检测,判断收到ok
    这一部分是确认模块上电正常。
do
	{
		//   进行上电
		WLESS_UP();                         //  进行 上电 测试
		rt_thread_mdelay(25000);           // 等待25s,来确保无线模块回复
		//  检测上电汇报,收到AT Ready
		error=Response_Check(p_infor->p_wless_infor,"
AT Ready
");   //  配置成功	
		if(error == ERROR)                //  进行延迟测试
		{
			WLESS_RESET();               //  断电复位
			WireLess_Infor_Init(p_infor->p_wless_infor);  // 系统初始化
			rt_thread_mdelay(1000);     // 延时等待25秒		
		}		
	}while(error==ERROR);   // 如果上电不成功,一直检测,确保回复
  • 3.2 配置工作模式,选择MQTT
    接下来,让模块进入指令模式。配置模块工作模式:设备透传模式,协议采用MQTT
WireLess_Config(p_infor->p_wless_infor,"+++",Resp_Topic);   // 退出透传状态,进行配置指令;如果没有成功,等待在这里;
WireLess_Config(p_infor->p_wless_infor,"AT+WORKMODE=0",Resp_Topic);     // 设置数据透传模式
WireLess_Config(p_infor->p_wless_infor,"AT+DTUMODE=2,1",Resp_Topic);    // 设置MQTT透传  mQTT 是2 
  • 3.3 配置服务器地址,密码、账号
    接下来比较重要是的把第二部分的生成MQTT的参数内容填入下面的驱动中。服务器的地址、用户ID、密码和账号。
WireLess_Config(p_infor->p_wless_infor,"AT+IPPORT=xxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1",Resp_Topic); 
WireLess_Config(p_infor->p_wless_infor,"AT+CLIENTID="xxx.xxx|securemode=2,signmethod=hmacsha256,timestamp=1682001470711|",1",Resp_Topic);
WireLess_Config(p_infor->p_wless_infor,"AT+USERPWD="xxx&xxx","xxx453B5C38B90342DEF9118A996177E0D7D2E24A0D8D9C82A2A97",1",Resp_Topic);
}	
  • 3.4 配置主题和心跳
    配置主题和心跳。其中心跳要在30到1200之间,订阅主题要在阿里云的产品的协议中要配置好。
char topic[100]="AT+MMQTTSUB=0,"/xxx/xxx/user/get","","",""";  // 配置主题
WireLess_Config(p_infor->p_wless_infor,topic,Resp_Topic);
WireLess_Config(p_infor->p_wless_infor,"AT+MQTTKEEP=120",Resp_Topic);  // 设置心跳

4 测试服务器

  • 4.1 如果设备配置成功,阿里云上面会显示设备是在线,到这里说明一切配置成功。
    在这里插入图片描述

  • 4.2 从阿里云订阅主题发送内容,譬如hello,my world
    在这里插入图片描述
    在这里插入图片描述

  • 4.3 设备把收到内容通过串口发送出来[
    -。

后期笔者会把相关代码整理好,公布在gitee上面,供大家测试和使用。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。