目录

1、指定MCU工程目录

2、其他平台工程目录

3、Gizwits 代码结构及原理

3.1、WIFI配网

3.2、下行处理(动作执行)

3.3、上行处理(数据采集)



我们通过机智云生成的代码分为指定型号或其他平台,从下图可以看出,我们通过选定型号,输入创建设备时的**就可以生成代码工程,然后下载解压即可使用。

从下图可以看出,我们的STM32和Arduino基本上可以直接用机智云自动生成的工程,其他平台就需要进一步移植。

第二步:机智云自动生成代码工程及原理介绍


1、指定MCU工程目录

将我们生成的代码解压后会看到以下结构,此工程就是我们的STM32的完整功能,可直接在这基础上修改使用,并且支持STM32CubeMX开发,只是该工程是基于HAL库,并不是标准库。

第二步:机智云自动生成代码工程及原理介绍

具体我们了解下Gizwits 文件夹,它是机智云协议层,包括串口通信协议和用户事件处理(这个文件很重要)。

开发说明文档主要介绍了通信协议的 API 函数,以及在二次开发中,设备的配置入网、数据采集、事件和 WIFI 状态的处理。更新日志,则记录当前和过往工程版本的更新功能信息。

第二步:机智云自动生成代码工程及原理介绍


2、其他平台工程目录

结构和上面都差不多,但是这里我们就不能当成一个完整的工程使用,首先需要进行协议的移植。我们在移植时只需要关注Gizwits和Utils协议文件夹即可,后面会介绍具体是怎么移植的。第二步:机智云自动生成代码工程及原理介绍


3、Gizwits 代码结构及原理

第二步:机智云自动生成代码工程及原理介绍机智云 MCU 工程代码的大概运行流程如下:

①初始化

先对用到外设和协议进行初始化(系统时钟、用户外设(按键、其他)接口、gizwits 串口协议系统(WIF 接口、1MS 时基定时器、数据缓冲区))(注意:gizwits 串口协议需要运行在毫秒的时基)。

②WIFI配网

WIFI 设备通过按键配置入网,连接到云端服务器后,WIFI设备会收到来自云端或 APP 端给发过来的数据点、状态等信息。

③MCU通过WIFI接收云端数据并存储到缓冲区

接收云端数据完成后,通过协议帧的格式发送到MCU端这边,MCU 端将收到的数据存到缓冲区中

④MCU从缓冲区解析数据并执行逻辑

MCU每隔一段时间对缓冲区进行抓包,抓包正确后进行深度的解析,解析后推送到我们的数据事件处理,也就是动作执行,根据数据点相应的事件去实行自己的逻辑。

⑤获取数据通过WIFI发送到云端

MCU端将采样到传感器数据按协议栈帧格式打包传送给 WIFI 设备,而 WIFI 设备则将数据上传给云端服务器

3.1、WIFI配网

设备需要配置才能进行联网,并与云端进行通信,而联网可通过两种接入模式,分别为AirLink 模式和 SoftAP 模式:

1)AirLink 模式:设备当处于该模式下,会不断接收特定编码的 WIFI 广播包,手机连接可用的 WIFI 网络后,通过指定的 App(如 Demo App)发送编码后的 WIFI 网络的 SSID 和密码广播,设备接收到之后自动尝试连接此 WIFI 网络,连接成功即配置完成。

AirLink模式配网步骤

①通过按键使ESP8266进入AirLink模式
②手机连上路由器,注意手机要是在wifi模式下
③打开APP进行一键配置,然后填写你手机所连的wifi账号密码,选择乐鑫,然后确认设备状态操作,等待一会就能配网成功了

2)SoftAP 模式:设备在 AP 模式下,相当于热点,手机可以直接与设备连接,并将可用的WIFI 网络 SSID 和密码发送给设备,设备接收到配置信息后自动尝试连接路由器,连接成功则自动切换到正常使用的模式。以上就是对两种模式的介绍,进入两种模式都是调用 gizwitsSetMode()配置接口函数

SoftAP模式下配网步骤

①ESP8266进入SoftAP模式

②手机连上ESP8266建立的AP,就是wifi,账号是XPG-GAgent-XXXX密码是123456789

③打开APP进行一键配置,然后填写路由器的账号密码,然后进行配网

SoftAP模式就是指先连上ESP8266建立的AP,然后在通过输入路由器的名称和密码让ESP8266连上路由器,就配网成功了

设置ESP8266的配网模式在gizwits_protocol.c中的gizwitsSetMode()函数中,开发者可以不用关心怎么实现的,由官网提供,可参考下图:

第二步:机智云自动生成代码工程及原理介绍

3.2、下行处理(动作执行)

下行处理:处理云端/APP 发送过来的控制事件

第二步:机智云自动生成代码工程及原理介绍

除了用户的事件,还有关于 WIFI 模块连接状态的事件、NTP 网络时间获取事件,就在逻辑时间处理下面:

第二步:机智云自动生成代码工程及原理介绍

3.3、上行处理(数据采集)

上行处理:上报设备状态

第二步:机智云自动生成代码工程及原理介绍

在用户创建数据点同时,代码上也会 MCU SDK 自生成一个对应数据点的用户设备状态结构体,它可保存设备的当前状态值:

第二步:机智云自动生成代码工程及原理介绍第二步:机智云自动生成代码工程及原理介绍

用户只需将读到的数据赋值到用户区当前设备状态结构体即可,赋值完的数据是通过gizwitsHandle 上报到云端,开发者不需要关注变化上报和定时上报

第二步:机智云自动生成代码工程及原理介绍


 

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2021-11-28
  • 2021-10-20
猜你喜欢
  • 2021-09-23
  • 2022-03-07
  • 2021-10-26
  • 2022-12-23
  • 2021-11-28
  • 2021-09-09
相关资源
相似解决方案