【QT5】与MQTT服务器连接并订阅发送消息,移植MQTT库,两个数据库用来存储和查询书籍和学生信息
如题,QT5使用MQTT服务器需要移植MQTT库,这个程序同时写了两个数据库用来存储和查询学生和图书的信息,稍加修改和增添功能可与嵌入式下位机端构成完整的图书管理系统。作为一个物联网项目上位机工程模板,可自行搭建emqx服务器,与stm32+esp01联动,可参考我之前文章。
目录
一.本文介绍
如题,QT5使用MQTT服务器需要移植MQTT库,这个程序同时写了两个数据库用来存储和查询学生和图书的信息,稍加修改和增添功能可与嵌入式下位机端构成完整的图书管理系统。
作为一个物联网项目上位机工程模板,可自行搭建emqx服务器,与stm32+esp01联动,可参考我之前文章。
我这里使用的是QT5.14.1,当然别的版本也可以,但是需要重新编译移植qt-MQTT库。
话不多说直接上文字!
二.关于MQTT概述
采纳这篇文章:MQTT协议,终于有人讲清楚了
MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。它是一个C/S架构的消息发布与订阅的传输协议
三.移植qt的MQTT库
默认的QT是没有mqtt库的,但是QT官方提供了mqtt的源码,我们通过编译出头文件并移植到自己的编译器库目录下以使用。
1.下载qt-MQTT的源码
在分支中选择需要使用的MQTT版本,并且下载到本地。
注意一定要选择对应自己QT版本的MQTT源码 ,由于我是5.14.1版本,所以这里下载5.14.1版本的源码。
2.打开工程文件和编译
下载到本地之后,在Qt Creator中打开这个项目的.pro文件,用你当前的编译器(一般都是MinGW)编译一下。
编译后会报错找不到头文件qmqttxxxxx.h: No such file or directory
这时候我们去目录指定编译器的include路径下,新建QtMqtt文件夹。然后将qt-MQTT源码中的src/mqtt/ 目录下的所有头文件拷贝到前面新建的QtMqtt文件夹目录下面后重新编译。
编译完成之后,在编译生成文件路径的/bin目录中得到所需的动态链接库文件Qt5Mqtt.dll和Qt5Mqttd.dll。Debug版本目录中是Qt5Mqtt.dll,Release版本目录中是Qt5Mqttd.dll
3.移植库文件配置永久编译环境
上刚刚编译出来的两个dll库文件拷贝到QT编译器的目录中,由于我使用的MinGW_64编译器,所以我将其拷贝到QT\5.14.1\mingw73_64\bin 目录下。
然后将编译生成文件路径下的静态链接库相关文件拷贝到Qt安装目录的/lib下。
最后再拷贝编译生成文件路径下mkspecs/两个文件夹到Qt安装目录中
4.使用方法
和常规库一样,在pro文件中添加 QT +=mqtt,然后include所使用的头文件即可。
四.代码编写
这里我直接参考的是刚刚下载源码中的一个客户端的例程。
数据库使用的Sqlite,程序可做一个物联网工程的上位机模板使用,直接上传了。
五.工程文件下载
更多推荐
所有评论(0)