当前位置:   article > 正文

机智云代码移植_基于ST和机智云的 ICUBEGizWits 使用指南(一)

gizwits代码结构

6642e13c4919355a0d1fdab5a6c2254e.gif

导读 使用过STM32开发版、或是使用过机智云自助开发平台的MCU代码自动生成工具(STM32)的电子爱好者对STM32Cube或多或少都有些了解,其中最耳熟能详的工具是具有配置MCU管脚、外设,产生初始化代码等功能的STM32CubeMX,那机智云和ST合作芯片开发工具 I-CUBE-GizWits又有作用呢?

顾名思义,I-cube-gizwits软件包是STM32 Cube的扩展软件包,基于STM32 Cube HAL库,可运行在基于ARM Cortex-M处理器的STM32微控制器上。具有以下特点优势:

  1. 基于STM32 Cube,图形化操作,能够快速配置MCU外设,以及工程配置,提高开发效率。

  2. 支持导出多个格式的工程:

  3. IAR Embedded Workbench for ARM ;

  4. KEIL uVision;

  5. System Workbench for STM32;

  6. 采用平台无关API,MCU/WIFI芯片平台切换成本低;

  7. 嵌入式机智云GAgent联网服务,自动完成了联网功能,能够快速玩转机智云物联网云平台;

I-cube-gizwits软件包嵌入了机智云的GAgent,设备可以通过GAgent访问机智云云平台。GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。GAgent提供了机智云云平台与单片机之间的通信协议,开发者可以根据该协议实现MCU与GAgent之间的通信。

083310e650a65f7337df2b1bbc66231f.png

[ 准备工作 ]

言归正传,在了解I-cube-gizwits后,接下来开始进入实践开发。

在开发前,需要准备和了解以下内容

1).硬件

1)B-L475E-IOT01A2开发板

2)Micro USB线

2). 软件:

下面三种开发工具任选其一:1) IAR Embedded Workbench for ARM2) KEIL uVision53) System Workbench for STM32

3). 其他:

1)机智云开发者账号:用于产品接入、设备管理、OTA服务、MCU开发等的功能使用。2)I-cube-gizwits固件包

4). 了解:

I-cube-gizwits固件包文件夹结构简介:

370f7df85d5eb201e848d5114966bbe6.png

083310e650a65f7337df2b1bbc66231f.png

开始开发 ]

现在进入开发阶段,由于篇幅过长,将分成以下几部分讲解:

  1. 在机智云自助开发平台创建产品

  2. Gagent API详解

  3. 项目源码修改

  4. OTA升级实现

  5. FAQ

1、在机智云自助开发平台创建产品

登录机智云自助开发平台 dev.gizwits.com,新建一个“产品”(假设本次项目为GizTest),并创建云端“数据点”(即设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据)。

9327ab63f474a851da66e01679cdfa22.png

以本次的项目“GizTest”为例,简单描述一下云端数据点和产品的功能点的关系,本次的项目“GizTest”,它需要实现的功能是:

(1) 获取开发板陀螺仪X、Y、Z轴数值;(2) 获取开发板相对湿度和温度传感器数值;(3) 获取开发板LED的状态以及控制LED开关;

那我们需要在云端建立对应的数据点,如下图。64e427ad14044d1d0e0d2cdc1d5729ea.png

下表是所有数据点的具体设置:f343fc664e27c79d4b92252f51c1e7fc.png

添加数据点完成之后点击“应用”,完成整个产品的数据点的新建工作。

1d9a22bda83ce0ed35a79e51db61e3ba.png

2、 GAgent API的几个重要参数

gagent_soc.h文件中API

(1)gagent_soc.h文件内容预览089213081357fcb4c2d710a222c1934a.png

(2)API功能简介1)gagentInit

  • 功能:gagent相关参数初始化

  • 函数定义:void gagentInit(struct devAttrs attrs)

  • 参数:struct devAttrs attrs :对应初始化参数的结构体

    struct devAttrs{    unsigned short mBindEnableTime;    unsigned char mstrProtocolVer[MCU_PROTOCOLVER_LEN];    unsigned char mstrP0Ver[MCU_P0VER_LEN];    unsigned char mstrDevHV[MCU_HARDVER_LEN];    unsigned char mstrDevSV[MCU_SOFTVER_LEN];    unsigned char mstrProductKey[PK_LEN];    unsigned char mstrPKSecret[PKS_LEN];    unsigned char mDevAttr[MCUATTR_LEN];    unsigned char mstrSdkVerLow[SDK_USER_VER_LEN];       //gagent 微信公众号ID,默认为机智云微信宠物屋ID            uint8 *szWechatDeviceType;       //gagent 默认连接服务器域名            uint8 *szGAgentSever;       //gagent 默认连接服务器端口,默认为80            uint32 *gagentSeverPort;       //gagent softap Name ,默认值:XPG-GAgent-xxxx(后面4位为MAC后4位)            uint8 *szGAgentSoftApName;       //gagent softap 密码 ,默认值:123456789,若内容为空则热点不加密;            uint8 *szGAgentSoftApPwd;       //m2m keepalive 默认值 120s            uint32 *m2mKeepAliveS;       //m2m 心跳间隔 默认值为 50s            uint32 *m2mHeartbeatIntervalS;       //gagent 时区秒,默认为东八区:8*(60*60)            int32 *timeZoneS;       //串口心跳间隔S,默认值 55秒            uint32 *localHeartbeatIntervalS;       //串口数据传送ACK时间,默认值600ms+数据长度耗时            uint32 *localTransferIntervalMS;};
  • 返回:无

2)gagentUploadData

  • 功能:上传数据到客户端

  • 函数定义:int32 gagentUploadData(uint8 szDID, uint8 src, uint32 len,uint8 flag, void *arg,gagentUploadDataCb fun )

  • 参数:

     uint8 *szDID	:要上传的数据对应的设备DID                (本平台[B-L475E-IOT01A2]szDID参数请设置为NULL) uint8 *src    :要上传数据的内容指针 uint32 len    :上传数据的大小 uint8 flag   	:1:数据大小循环通道都需要上传      		      0:数据只上传小循环                (本平台[B-L475E-IOT01A2]flag参数请设置为1) void *arg 	:上传数据回调函数的参数,不能为NULLgagentUploadDataCb fun :上传数据的结果回调函数
  • 返回:GAT_OK 0 成功GAT_ERR_FAIL -1 失败

    3)gagentGetNTP

    • 功能:获取NTP时间

    • 函数定义:void gagentGetNTP(_tm *time)

    • 参数:

      _tm *time       :保存获取的NTP时间的结构体指针typedef struct{    uint16 year;    uint8 month;    uint8 day;    uint8 hour;    uint8 minute;    uint8 second;    uint32 ntp;}_tm;
  • 返回:无

4)gagentReset

  • 功能:重置模组,会清除配置信息和解除用户与之间的关系,该函数会导致模组重启

  • 函数定义:void gagentReset(void)

  • 参数:无

  • 返回:无

相关推荐:

  • 智能直饮水控制中心

  • 远程控制车库电动卷帘门

  • 不写代码能实现APP消息推送吗

  • APP第三方登录实现

  • 快速开发一个简单好看的APP控制页

25b7ff1bc85822bc9786b77e5d32731d.png

扫一扫,开启您的IoT开发之旅

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/646687
推荐阅读
相关标签
  

闽ICP备14008679号