您现在的位置是:首页 >技术教程 >基于GD32F1的OTA的开发-Part One--阿里云搭建网站首页技术教程
基于GD32F1的OTA的开发-Part One--阿里云搭建
简介基于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上面,供大家测试和使用。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。