我是靠谱客的博主 阳光长颈鹿,最近开发中收集的这篇文章主要介绍【STM32】 利用paho MQTT&WIFI 连接阿里云一、平台介绍二、软件架构三、详细介绍3.1 数据分层,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ST联合阿里云推出了云接入的相关培训(基于STM32的端到端物联网全栈开发),所采用的的板卡为NUCLEO-L4R5ZI板,实现的主要功能为采集温湿度传感器上传到阿里云物联网平台,并可以通过物联网平台设置端的温度阈值。对于STM32端的开发,主要涉及两面:基于paho MQTT协议栈连接阿里云;基于Linkkit 协议栈连接阿里云。本文主要讲述基于paho MQTT连接阿里云相关知识。

在这里部讲述MQTT协议相关的知识。通过阅读官方给的demo代码,对比发现,该例程与现在网上查到的移植paho MQTT有很大的不同,阿里及ST设计的这个框架比较好,只需添加对应的底层驱动代码即可能够兼容WIFI、2G/3G/4G、以太网连接阿里云。

一、平台介绍

NUCLEO-L4R5ZI板卡MCU为STM32L4R5ZI;X-NUCLEO-IKS01A3为ST官方的传感器电路板;EXT-AT3080为庆科基于无线模块EMW3080设计WIFI电路板。

二、软件架构

以下是官方给的软件架构,只需设计底层的WIFI驱动即可。

 

网络分层。黄色部分为阿里提供的MQTT接口,蓝色部分为ST官方提供的网络层架构,绿色部分对应着具体的底层操作函数,比如说收发数据、连接网络等。针对不同的硬件,只需更改绿色部分的代码即可。

三、详细介绍

3.1 数据分层

emw3080采用AT指令,在此也简单介绍一下该例程中STM32接收emw3080指令的数据流走向。如下图所示。

 

WiFiRxBuffer位于串口中断中,用于存储WIFI模块发送给模块的所有数据(最原始的数据)。而RxBuffer用于判断AT指令的返回值。socks_buffer用于保存TCP客户端发过来的具体数据(+CIPEVENT:SOCKET,1,10,1234567890),而MQTT_read_buf为MQTT协议栈所需要的数据,这样一来也做到数据分层。

3.2 整体框架

在程序中会定义以下三个变量。

MQTTClient Client;
//MQTT客户端
Network sNetwork;
//MQTT的网络,里面会包含网络soket
net_hnd_t
hnet;
//网络接口定义

那么这三者是如何连接起来的,如下图所示。

该例程中STM32中要实现MQTT收发数据,函数的调用过程见下图。

 

 

最后

以上就是阳光长颈鹿为你收集整理的【STM32】 利用paho MQTT&WIFI 连接阿里云一、平台介绍二、软件架构三、详细介绍3.1 数据分层的全部内容,希望文章能够帮你解决【STM32】 利用paho MQTT&WIFI 连接阿里云一、平台介绍二、软件架构三、详细介绍3.1 数据分层所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(304)

评论列表共有 0 条评论

立即
投稿
返回
顶部