你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 FOTA 例程之 Paho MQTTClient embeddedC 使用

[复制链接]
STMCU-管管 发布时间:2018-9-29 15:54
前言
1 O! T/ y. }9 N; l
8 G9 u6 R' ?" A3 x! L( uMQTT协议的全称叫“消息队列遥测传输”协议。它是一个轻量级的通信协议。旨在为在低带宽、高延时、不稳定网络中的 物联网设备提供消息传输服务。它运行在 TCP/IP协议之上,采用客户端/服务器,发布/订阅消息模式工作,并提供一对多的 消息分发。STM32 FOTA demo就是通过 MQTT协议进行 MCU固件新版本信息的推送。Paho是一个开源的 MQTT客户端 实现,它提供了多种开发语言下的实现。在此 demo中,用的是 embeddedC这个版本。可以在 http://github.com/eclipse/paho.mqtt.embedded-c下载到最新的版本。
! a! j4 p1 o/ x1 S
( E2 y8 x+ H  @, c  }Paho MQTTClient EmbeddedC 的代码构成 ! C  z+ c- [* l9 n3 j  R( g

+ O9 b$ b3 y1 V& p/ N9 u从 github上下载下来的源代码,包括三个部分:
# c/ z% X7 i6 ?7 t' wMQTTPacket : 该文件夹下包括了底层的 C代码,提供基本的简单的解析数据,以及将数据串行化的功能。是其他两个上层接 口的基础,也可以单独使用。 1 E' f" y, L$ O( q3 ~0 }4 b- \
MQTTClient :该文件夹下提供 C++的上层接口,现在提供 Linux, Arduino和 mbed的实现。 : l1 F* T, ~4 ]) ^
MQTTClient-C:该文件夹下提供 C的上层接口,针对那些不支持 C++编程的平台。 , K- u( {( I# S0 ]! @4 ~
Demo要用到的就是 MQTTPacket和 MQTTClient-C这两个文件夹下的源文件。 3 E# V9 }2 a; p* E
! i* }  ?. [- J9 S3 X# y
使用 Paho MQTTClient EmbeddedC $ [/ g/ q0 U* T+ ^% c# I6 ~

- `0 P6 @/ {$ F2 }3 z- x下面来看看如何使用 Paho MQTTClient EmbeddedC来在 MCU端实现 MQTT通信。 1 T8 H* _: s, M8 K
3 F7 y7 H/ c1 y  a  J
配置网络传输接口
4 Z* p7 U' [- TMQTT是一个 TCP之上的应用层协议,它发送和接收数据都要通过下层的 TCP/IP协议栈进行。所以 MQTT与下层的协议之 间一定有一个接口。
0 F' ^* `5 r" C) T8 A7 L) MPaho对这个数据收发的接口进行了形式上的定义:
: w" l( ^. U2 A, m( R/ }- w0 Q+ ]' J( P, N
QQ截图20180929154457.png
QQ截图20180929154513.png

& q1 T# J  s% r; CPaho的实现会通过结构体 Network中的 mqttread和 mqttwrite成员函数作为接口来从底层网络读取数据以及向底层网络发送 数据。因此 Paho的适配工作需要注册这些成员函数,并实现之: 2 O8 {) N4 K; {3 A! ~; @7 j
; p- m* S4 p& L6 N, @
在 STM32 FOTAdemo中,Network结构体是在 baidu_iot_network_wrapper.h中定义的:
9 Z$ a; _9 r. c/ }5 K
QQ截图20180929154617.png
baidu_iot_network_wrapper.c文件中,有 MQTT的网络接口函数的具体实现。
) T+ K! t, Q. d: P2 @$ M
QQ截图20180929154947.png
新建一个 MQTT 客户端
通过 MQTTClientInit函数可以新建一个 MQTT客户端。我们来看看在 Paho中,MQTT客户端都定义了哪些属性。 MQTTClient的定义在 MQTTClient.h文件中,如下:
) M; X( w" N& j5 {

, t1 g+ E- v! |, U
...5 M9 w' O, u" }! U6 x4 W

- B0 b: n& r! C5 Y' b% V% N6 n了解更多,请下载后阅读! r* v9 M+ y4 s

0 \8 A. X0 n: }/ a( Y" j# Y% w. I下载地址1>>                           下载地址2>>                                   更多实战经验>>1 U* U  c3 t3 G+ z) |: {
$ \7 U* X8 m) d1 @0 y  u
收藏 评论2 发布时间:2018-9-29 15:54

举报

2个回答
sxhhhjicbb_3021 回答时间:2018-12-27 16:23:44
感谢,好东西没人响应
wmjk 回答时间:2019-2-22 22:58:40
请问Demo的例程从哪里下载

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版